質問するログイン新規登録

質問編集履歴

3

コードの修正

2016/03/19 15:51

投稿

sobue
sobue

スコア331

title CHANGED
File without changes
body CHANGED
@@ -367,4 +367,4 @@
367
367
 
368
368
  }
369
369
 
370
- ``
370
+ ``````

2

コードの修正

2016/03/19 15:51

投稿

sobue
sobue

スコア331

title CHANGED
File without changes
body CHANGED
@@ -296,7 +296,7 @@
296
296
 
297
297
 
298
298
  下記追加コードです
299
- ```java
299
+ ``````java
300
300
  package reversi;
301
301
  import java.util.*;
302
302
 

1

コードの追加

2016/03/19 15:51

投稿

sobue
sobue

スコア331

title CHANGED
File without changes
body CHANGED
@@ -292,4 +292,79 @@
292
292
  ```
293
293
  この部分のエラー表示が出て駒が置けません。
294
294
  Eclipseにてブレークポイントを置いてみましたが、なぜか引っかからずに特定できません。
295
- よろしくお願いします。
295
+ よろしくお願いします。
296
+
297
+
298
+ 下記追加コードです
299
+ ```java
300
+ package reversi;
301
+ import java.util.*;
302
+
303
+ public class RandomCPU {
304
+
305
+ int color; //BLACK or WHITE
306
+
307
+ public RandomCPU(){
308
+ color = -1;
309
+ }
310
+
311
+ int[] decide(GameState state){
312
+
313
+ ArrayList<int[]> array = new ArrayList<int[]>();
314
+
315
+ //盤面の空マスを置けるかチェック
316
+ for(int y=0; y<8; y++){
317
+ for(int x=0; x<8; x++){
318
+
319
+ //すでに駒があるときはパス
320
+ if(state.data[x][y] != 0)
321
+ continue;
322
+
323
+ //置けるマスのとき、候補として記憶
324
+ if(state.canReverse(x, y) == true){
325
+ int pos[] = {x,y};
326
+ array.add(pos);
327
+ }
328
+
329
+ }
330
+ }
331
+
332
+ //ランダム選択
333
+ if(array.size() <= 0){
334
+ int pos[] = {-1, -1};
335
+ return pos;
336
+ }
337
+ Random rnd = new Random();
338
+ int index = rnd.nextInt(array.size());
339
+
340
+ return array.get(index);
341
+ }
342
+
343
+ }
344
+
345
+
346
+ package reversi;
347
+
348
+ import javax.swing.*;
349
+
350
+ public class othello extends JFrame {
351
+
352
+ public othello() {
353
+ setTitle("Othello");
354
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
355
+
356
+ MainPanel panel = new MainPanel();
357
+ getContentPane().add(panel);
358
+ pack();
359
+ }
360
+
361
+ public static void main(String[] args){
362
+
363
+ othello othello= new othello();
364
+ othello.setVisible(true);
365
+
366
+ }
367
+
368
+ }
369
+
370
+ ``