質問編集履歴
3
コードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -736,4 +736,4 @@
|
|
736
736
|
|
737
737
|
|
738
738
|
|
739
|
-
``
|
739
|
+
``````
|
2
コードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -594,7 +594,7 @@
|
|
594
594
|
|
595
595
|
下記追加コードです
|
596
596
|
|
597
|
-
```java
|
597
|
+
``````java
|
598
598
|
|
599
599
|
package reversi;
|
600
600
|
|
1
コードの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -587,3 +587,153 @@
|
|
587
587
|
Eclipseにてブレークポイントを置いてみましたが、なぜか引っかからずに特定できません。
|
588
588
|
|
589
589
|
よろしくお願いします。
|
590
|
+
|
591
|
+
|
592
|
+
|
593
|
+
|
594
|
+
|
595
|
+
下記追加コードです
|
596
|
+
|
597
|
+
```java
|
598
|
+
|
599
|
+
package reversi;
|
600
|
+
|
601
|
+
import java.util.*;
|
602
|
+
|
603
|
+
|
604
|
+
|
605
|
+
public class RandomCPU {
|
606
|
+
|
607
|
+
|
608
|
+
|
609
|
+
int color; //BLACK or WHITE
|
610
|
+
|
611
|
+
|
612
|
+
|
613
|
+
public RandomCPU(){
|
614
|
+
|
615
|
+
color = -1;
|
616
|
+
|
617
|
+
}
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
int[] decide(GameState state){
|
622
|
+
|
623
|
+
|
624
|
+
|
625
|
+
ArrayList<int[]> array = new ArrayList<int[]>();
|
626
|
+
|
627
|
+
|
628
|
+
|
629
|
+
//盤面の空マスを置けるかチェック
|
630
|
+
|
631
|
+
for(int y=0; y<8; y++){
|
632
|
+
|
633
|
+
for(int x=0; x<8; x++){
|
634
|
+
|
635
|
+
|
636
|
+
|
637
|
+
//すでに駒があるときはパス
|
638
|
+
|
639
|
+
if(state.data[x][y] != 0)
|
640
|
+
|
641
|
+
continue;
|
642
|
+
|
643
|
+
|
644
|
+
|
645
|
+
//置けるマスのとき、候補として記憶
|
646
|
+
|
647
|
+
if(state.canReverse(x, y) == true){
|
648
|
+
|
649
|
+
int pos[] = {x,y};
|
650
|
+
|
651
|
+
array.add(pos);
|
652
|
+
|
653
|
+
}
|
654
|
+
|
655
|
+
|
656
|
+
|
657
|
+
}
|
658
|
+
|
659
|
+
}
|
660
|
+
|
661
|
+
|
662
|
+
|
663
|
+
//ランダム選択
|
664
|
+
|
665
|
+
if(array.size() <= 0){
|
666
|
+
|
667
|
+
int pos[] = {-1, -1};
|
668
|
+
|
669
|
+
return pos;
|
670
|
+
|
671
|
+
}
|
672
|
+
|
673
|
+
Random rnd = new Random();
|
674
|
+
|
675
|
+
int index = rnd.nextInt(array.size());
|
676
|
+
|
677
|
+
|
678
|
+
|
679
|
+
return array.get(index);
|
680
|
+
|
681
|
+
}
|
682
|
+
|
683
|
+
|
684
|
+
|
685
|
+
}
|
686
|
+
|
687
|
+
|
688
|
+
|
689
|
+
|
690
|
+
|
691
|
+
package reversi;
|
692
|
+
|
693
|
+
|
694
|
+
|
695
|
+
import javax.swing.*;
|
696
|
+
|
697
|
+
|
698
|
+
|
699
|
+
public class othello extends JFrame {
|
700
|
+
|
701
|
+
|
702
|
+
|
703
|
+
public othello() {
|
704
|
+
|
705
|
+
setTitle("Othello");
|
706
|
+
|
707
|
+
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
708
|
+
|
709
|
+
|
710
|
+
|
711
|
+
MainPanel panel = new MainPanel();
|
712
|
+
|
713
|
+
getContentPane().add(panel);
|
714
|
+
|
715
|
+
pack();
|
716
|
+
|
717
|
+
}
|
718
|
+
|
719
|
+
|
720
|
+
|
721
|
+
public static void main(String[] args){
|
722
|
+
|
723
|
+
|
724
|
+
|
725
|
+
othello othello= new othello();
|
726
|
+
|
727
|
+
othello.setVisible(true);
|
728
|
+
|
729
|
+
|
730
|
+
|
731
|
+
}
|
732
|
+
|
733
|
+
|
734
|
+
|
735
|
+
}
|
736
|
+
|
737
|
+
|
738
|
+
|
739
|
+
``
|