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

質問編集履歴

5

BoardクラスのSystem.out.println(d+1);をd+1→dに変更

2019/11/28 07:16

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -195,7 +195,7 @@
195
195
  while ( n < p.size()-1 && p.get(n) != s) {
196
196
  cx += direction[d].x;
197
197
  cy += direction[d].y;
198
- System.out.println(d+1);
198
+ System.out.println(d);
199
199
  ste[cx][cy].doReverse(ste[cx][cy].obverse);
200
200
  n++;
201
201
  }

4

手番、パス関連のコードを削除しました。

2019/11/28 07:16

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,16 +2,11 @@
2
2
 
3
3
  ```
4
4
  java環境で8×8盤面のオセロを作成した。
5
- - 石ないマスには置けない。
5
+ - 石かれている、ひっくり返せないマスには置けない。
6
+ - 手番は考慮しない。
6
7
  - 石を点(x,y)に置き、ひっくり返せる周囲の石を反転させたい。
7
8
  ```
8
9
 
9
- ### 注釈
10
- ```
11
- 手番やパスの処理がおかしい点は無視して下さい。
12
-
13
- ```
14
-
15
10
  ### 発生している問題
16
11
  ```
17
12
  石を反転させる処理に問題が生じる

3

StoneクラスとBoardクラスを分割しました。

2019/11/27 04:46

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -71,4 +71,234 @@
71
71
  上記のsetStoneAndReverse(int x, int y, int s){}において、反転を行った方角を示すdirection[d]を出力した。
72
72
  - 意図しない石が反転された際、予想外の方向にも反転を行っていることが分かった。
73
73
  - このことから方角を取得するgetLine(int x, int y, Point d){}に問題があると考えた。
74
+ ```
75
+
76
+ ### Stoneクラス
77
+ ```java
78
+ class Stone {
79
+ public final static int black = 1;
80
+ public final static int white = 2;
81
+ public int obverse = 0;
82
+
83
+ Stone() {
84
+ obverse = 0;
85
+ }
86
+
87
+ //表面の色を設定
88
+ void setObverse(int color) {
89
+ if ( color == black || color == white)
90
+ obverse = color;
91
+ else
92
+ System.out.println("黒か白でなければいけません");
93
+ }
94
+
95
+ //白黒を入れ替える
96
+ void doReverse(int color) {
97
+ if ( color == black )
98
+ obverse = white;
99
+ else if ( color == white )
100
+ obverse = black;
101
+ else
102
+ System.out.println("黒か白でなければいけません");
103
+ }
104
+
105
+ //表面の色で中心p, 半径radの円を塗り潰す
106
+ void paint(Graphics g, Point p, int rad) {
107
+ if (obverse == black) {
108
+ g.setColor(Color.black);
109
+ g.fillOval(p.x - 32, p.y - 32, 2*rad, 2*rad);
110
+ }
111
+ else if (obverse == white) {
112
+ g.setColor(Color.white);
113
+ g.fillOval(p.x - 32, p.y - 32, 2*rad, 2*rad);
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ ### Boardクラス
120
+ ```java
121
+ class Board {
122
+ Stone[][] ste = new Stone[8][8];
123
+ public int num_grid_black;
124
+ public int num_grid_white;
125
+ private Point[] direction = new Point[8];
126
+ public int[][] eval_black = new int[8][8];
127
+ public int[][] eval_white = new int[8][8];
128
+
129
+ //コンストラクタ初期化
130
+ Board() {
131
+
132
+ for(int i=0; i<8; i++) {
133
+ for(int j=0; j<8; j++) {
134
+ ste[i][j] = new Stone();
135
+ }
136
+ }
137
+ ste[3][3].setObverse(1);
138
+ ste[3][4].setObverse(2);
139
+ ste[4][3].setObverse(2);
140
+ ste[4][4].setObverse(1);
141
+ //方向ベクトル
142
+ direction[0] = new Point(1,0);
143
+ direction[1] = new Point(1,1);
144
+ direction[2] = new Point(0,1);
145
+ direction[3] = new Point(-1,1);
146
+ direction[4] = new Point(-1,0);
147
+ direction[5] = new Point(-1,-1);
148
+ direction[6] = new Point(0,-1);
149
+ direction[7] = new Point(1,-1);
150
+ }
151
+
152
+
153
+ //盤面の中か?
154
+ boolean isOnBoard(int x, int y) {
155
+ if ( x<0 || 7<x || y<0 || 7<y)
156
+ return false;
157
+ else
158
+ return true;
159
+ }
160
+
161
+ //盤面(x,y)から方向dに向かって石を順番に取得
162
+ ArrayList<Integer> getLine(int x, int y, Point d) {
163
+ ArrayList<Integer> line = new ArrayList<Integer>();
164
+ int cx = x + d.x;
165
+ int cy = y + d.y;
166
+ while ( isOnBoard(cx, cy) && ste[cx][cy].obverse > 0 ) {
167
+ line.add(ste[cx][cy].obverse);
168
+ cx += d.x;
169
+ cy += d.y;
170
+ }
171
+ return line;
172
+ }
173
+
174
+
175
+ //盤面(x,y)に石sを置いた場合に反転できる石の数を数える
176
+ int countReverseStone(int x, int y, int s) {
177
+ //既に石が置かれていたら、置けない
178
+ if (ste[x][y].obverse != 0) return -1;
179
+ //8方向をチェック
180
+ int cnt = 0;
181
+ for (int d=0; d<8; d++) {
182
+ ArrayList<Integer> line = new ArrayList<Integer>();
183
+ line = getLine(x, y, direction[d]);
184
+ int n = 0;
185
+ while ( n < line.size() && line.get(n) != s) n++;
186
+ if (1 <= n && n < line.size()) cnt += n;
187
+ }
188
+ return cnt;
189
+ }
190
+
191
+ //石を置き他を反転させる
192
+ void setStoneAndReverse(int x, int y, int s) {
193
+ //8方向をチェック
194
+ for (int d=0; d<8; d++) {
195
+ ArrayList<Integer> p = new ArrayList<Integer>();
196
+ p = getLine(x, y, direction[d]);
197
+ int cx = x;
198
+ int cy = y;
199
+ int n = 0;
200
+ while ( n < p.size()-1 && p.get(n) != s) {
201
+ cx += direction[d].x;
202
+ cy += direction[d].y;
203
+ System.out.println(d+1);
204
+ ste[cx][cy].doReverse(ste[cx][cy].obverse);
205
+ n++;
206
+ }
207
+ }
208
+ }
209
+
210
+
211
+
212
+ //盤面を見る
213
+ void evaluateBoard()
214
+ {
215
+ num_grid_black = 0;
216
+ num_grid_white = 0;
217
+ for ( int i=0; i<8; i++) {
218
+ for (int j=0; j<8; j++) {
219
+ eval_black[i][j] = countReverseStone(i, j, 1);
220
+ if (eval_black[i][j] > 0) num_grid_black++;
221
+ eval_white[i][j] = countReverseStone(i, j, 2);
222
+ if (eval_white[i][j] > 0) num_grid_white++;
223
+ }
224
+ }
225
+ }
226
+
227
+
228
+ //盤面をコンソールに表示する
229
+ void printBoard() {
230
+ for ( int i=0; i<8; i++) {
231
+ for (int j=0; j<8; j++) {
232
+ System.out.printf("%2d ", ste[j][i].obverse);
233
+ }
234
+ System.out.println("");
235
+ }
236
+ }
237
+
238
+ //盤面の評価結果をコンソールに表示する
239
+ void printEval() {
240
+ System.out.println("Black(1):");
241
+ for ( int i=0; i<8; i++) {
242
+ for ( int j=0; j<8; j++) {
243
+ System.out.printf("%2d " , eval_black[j][i]);
244
+ }
245
+ System.out.println("");
246
+ }
247
+ System.out.println("White(2):");
248
+ for ( int i=0; i<8; i++) {
249
+ for ( int j=0; j<8; j++) {
250
+ System.out.printf("%2d " , eval_white[j][i]);
251
+ }
252
+ System.out.println("");
253
+ }
254
+ }
255
+
256
+
257
+ //画面描画
258
+ void paint(Graphics g, int unit_size) {
259
+
260
+ //背景
261
+ g.setColor(Color.black);
262
+ g.fillRect(0, 0, unit_size*10, unit_size*10);
263
+
264
+ //盤面
265
+ g.setColor(new Color(0, 85, 0));
266
+ g.fillRect(unit_size, unit_size, unit_size*8, unit_size*8);
267
+
268
+ //横線
269
+ g.setColor(Color.black);
270
+ for (int i = 0; i<9 ; i++) {
271
+ g.drawLine(unit_size*(i+1), unit_size, unit_size*(i+1), unit_size*9 );
272
+ }
273
+
274
+ //縦線
275
+ g.setColor(Color.black);
276
+ for (int i = 0; i<9 ; i++) {
277
+ g.drawLine(unit_size, unit_size*(i+1), unit_size*9, unit_size*(i+1) );
278
+ }
279
+
280
+ // 目印
281
+ for (int i=0; i<2; i++) {
282
+ for (int j=0; j<2; j++) {
283
+ g.fillRect(unit_size*(3+4*i)-(unit_size/16), unit_size*(3+4*j)-(unit_size/16), (unit_size/8), (unit_size/8));
284
+ }
285
+ }
286
+
287
+ //各マスの中心座標を計算した後描画
288
+ Point p = new Point();
289
+ int rad = ((unit_size/2) * 4 ) / 5;
290
+ for(int i=0; i<8; i++) {
291
+ for(int j=0; j<8; j++) {
292
+ p.x = (unit_size*(i+1) + unit_size*(i+2))/2;
293
+ p.y = (unit_size*(j+1) + unit_size*(j+2))/2;
294
+ ste[i][j].paint(g, p, rad);
295
+ }
296
+ }
297
+ }
298
+
299
+ //クリックされたマス(x,y)に石sを配置する
300
+ void setStone(int x, int y, int s) {
301
+ ste[x][y].setObverse(s);
302
+ }
303
+ }
74
304
  ```

2

line.add(ste[cx][cy].obverse); に修正しました。また質問のレイアウトを変更しました。

2019/11/27 04:42

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- javaでオセロを作成したが反転が上手く行えません!
1
+ javaでオセロを作成したが反転に問題生じて困っている
body CHANGED
@@ -1,123 +1,34 @@
1
- java環境で石を反転させる時に、隣合う挟まれていない石まで反転されてしまいます。
2
- 修正カ所などがあれば御指摘くださ
1
+ ### 前提・実現したこと
3
2
 
4
- ```ここに言語を入力
3
+ ```
5
- import java.awt.*;
6
- import javax.swing.*;
4
+ java環境で8×8盤面のオセロを作成した。
7
- import java.awt.event.*;
8
- import java.util.*;
5
+ - 石を置けないマスには置けない。
6
+ - 石を点(x,y)に置き、ひっくり返せる周囲の石を反転させたい。
7
+ ```
9
8
 
10
- class Stone {
9
+ ### 注釈
11
- public final static int black = 1;
10
+ ```
12
- public final static int white = 2;
13
- public int obverse = 0;
11
+ 手番やパスの処理がおかしい点は無視して下さい。
14
12
 
15
- Stone() {
13
+ ```
16
- obverse = 0;
17
- }
18
14
 
19
- //表面の色を設定
15
+ ### 発生している問題
20
- void setObverse(int color) {
16
+ ```
21
- if ( color == black || color == white)
22
- obverse = color;
17
+ 石を反転させる処理に問題が生じる
23
- else
24
- System.out.println("黒か白でなければいけません");
25
- }
26
18
 
19
+ (例)
20
+ 初期配置から
21
+ 黒石[5][3]
27
- //黒を入れ替える
22
+ 石[3][2]
23
+ 黒石[2][4]
24
+ 白石[3][5]
28
- void doReverse(int color) {
25
+ の順に配置すると意図してない[4][4]の黒石が反転される。
29
- if ( color == black )
30
- obverse = white;
31
- else if ( color == white )
32
- obverse = black;
33
- else
34
- System.out.println("黒か白でなければいけません");
35
- }
36
26
 
37
- //表面の色で中心p, 半径radの円を塗り潰す
38
- void paint(Graphics g, Point p, int rad) {
39
- if (obverse == black) {
40
- g.setColor(Color.black);
41
- g.fillOval(p.x - 32, p.y - 32, 2*rad, 2*rad);
42
- }
27
+ ```
43
- else if (obverse == white) {
44
- g.setColor(Color.white);
45
- g.fillOval(p.x - 32, p.y - 32, 2*rad, 2*rad);
46
- }
47
- }
48
- }
49
28
 
50
- class Board {
51
- Stone[][] ste = new Stone[8][8];
52
- public int num_grid_black;
53
- public int num_grid_white;
54
- private Point[] direction = new Point[8];
55
- public int[][] eval_black = new int[8][8];
56
- public int[][] eval_white = new int[8][8];
57
-
58
- //コンストラクタ初期化
59
- Board() {
60
-
61
- for(int i=0; i<8; i++) {
62
- for(int j=0; j<8; j++) {
63
- ste[i][j] = new Stone();
64
- }
65
- }
66
- ste[3][3].setObverse(1);
67
- ste[3][4].setObverse(2);
68
- ste[4][3].setObverse(2);
69
- ste[4][4].setObverse(1);
70
- //方向ベクトル
71
- direction[0] = new Point(1,0);
72
- direction[1] = new Point(1,1);
73
- direction[2] = new Point(0,1);
74
- direction[3] = new Point(-1,1);
75
- direction[4] = new Point(-1,0);
76
- direction[5] = new Point(-1,-1);
77
- direction[6] = new Point(0,-1);
78
- direction[7] = new Point(1,-1);
79
- }
80
-
81
-
82
- //盤面の中か?
83
- boolean isOnBoard(int x, int y) {
84
- if ( x<0 || 7<x || y<0 || 7<y)
85
- return false;
86
- else
87
- return true;
88
- }
89
-
90
- //盤面(x,y)から方向dに向かって石を順番に取得
91
- ArrayList<Integer> getLine(int x, int y, Point d) {
92
- ArrayList<Integer> line = new ArrayList<Integer>();
93
- int cx = x + d.x;
94
- int cy = y + d.y;
95
- while ( isOnBoard(cx, cy) && ste[cx][cy].obverse != 0) {
96
- line.add(ste[cy][cx].obverse);
97
- cx += d.x;
98
- cy += d.y;
99
- }
100
- return line;
101
- }
102
-
103
-
104
- //盤面(x,y)に石sを置いた場合に反転できる石の数を数える
105
- int countReverseStone(int x, int y, int s) {
106
- //既に石が置かれていたら、置けない
107
- if (ste[x][y].obverse != 0) return -1;
108
- //8方向をチェック
29
+ ### 問題があると思われるソースコード
109
- int cnt = 0;
110
- for (int d=0; d<8; d++) {
111
- ArrayList<Integer> line = new ArrayList<Integer>();
112
- line = getLine(x, y, direction[d]);
113
- int n = 0;
30
+ ```java
114
- while ( n < line.size() && line.get(n) != s) n++;
115
- if (1 <= n && n < line.size()) cnt += n;
116
- }
117
- return cnt;
118
- }
119
-
120
- //石を置き他を反転させる
31
+ //石を置き他を反転させる
121
32
  void setStoneAndReverse(int x, int y, int s) {
122
33
  //8方向をチェック
123
34
  for (int d=0; d<8; d++) {
@@ -138,233 +49,26 @@
138
49
  }
139
50
  }
140
51
  }
52
+ ```
141
53
 
142
-
143
-
144
- //盤面を見る
145
- void evaluateBoard()
54
+ ```java
146
- {
147
- num_grid_black = 0;
148
- num_grid_white = 0;
149
- for ( int i=0; i<8; i++) {
150
- for (int j=0; j<8; j++) {
151
- eval_black[i][j] = countReverseStone(i, j, 1);
152
- if (eval_black[i][j] > 0) num_grid_black++;
153
- eval_white[i][j] = countReverseStone(i, j, 2);
154
- if (eval_white[i][j] > 0) num_grid_white++;
155
- }
156
- }
157
- }
158
-
159
-
160
- //盤面をコンソール表示する
55
+ //盤面(x,y)から方向dに向かって石順番取得
56
+ ArrayList<Integer> getLine(int x, int y, Point d) {
57
+ ArrayList<Integer> line = new ArrayList<Integer>();
161
- void printBoard() {
58
+ int cx = x + d.x;
162
- for ( int i=0; i<8; i++) {
163
- for (int j=0; j<8; j++) {
59
+ int cy = y + d.y;
164
- System.out.printf("%2d ", ste[j][i].obverse);
60
+ while ( isOnBoard(cx, cy) && ste[cx][cy].obverse != 0) {
165
- }
166
- System.out.println("");
61
+ line.add(ste[cx][cy].obverse);
167
- }
62
+ cx += d.x;
63
+ cy += d.y;
168
64
  }
169
-
170
- //盤面の評価結果をコンソールに表示する
171
- void printEval() {
65
+ return line;
172
- System.out.println("Black(1):");
173
- for ( int i=0; i<8; i++) {
174
- for ( int j=0; j<8; j++) {
175
- System.out.printf("%2d " , eval_black[j][i]);
176
- }
177
- System.out.println("");
178
- }
179
- System.out.println("White(2):");
180
- for ( int i=0; i<8; i++) {
181
- for ( int j=0; j<8; j++) {
182
- System.out.printf("%2d " , eval_white[j][i]);
183
- }
184
- System.out.println("");
185
- }
186
66
  }
187
-
67
+ ```
188
68
 
189
- //画面描画
190
- void paint(Graphics g, int unit_size) {
191
-
192
- //背景
69
+ ### 試したこと
193
- g.setColor(Color.black);
194
- g.fillRect(0, 0, unit_size*10, unit_size*10);
195
-
196
- //盤面
70
+ ```
197
- g.setColor(new Color(0, 85, 0));
198
- g.fillRect(unit_size, unit_size, unit_size*8, unit_size*8);
199
-
200
- //横線
201
- g.setColor(Color.black);
202
- for (int i = 0; i<9 ; i++) {
203
- g.drawLine(unit_size*(i+1), unit_size, unit_size*(i+1), unit_size*9 );
71
+ 上記のsetStoneAndReverse(int x, int y, int s){}において、反転を行った方角を示すdirection[d]を出力した。
204
- }
205
-
206
- //縦線
207
- g.setColor(Color.black);
208
- for (int i = 0; i<9 ; i++) {
209
- g.drawLine(unit_size, unit_size*(i+1), unit_size*9, unit_size*(i+1) );
210
- }
211
-
212
- // 目印
213
- for (int i=0; i<2; i++) {
214
- for (int j=0; j<2; j++) {
215
- g.fillRect(unit_size*(3+4*i)-(unit_size/16), unit_size*(3+4*j)-(unit_size/16), (unit_size/8), (unit_size/8));
216
- }
217
- }
218
-
219
- //各マスの中心座標を計算した後描画
220
- Point p = new Point();
221
- int rad = ((unit_size/2) * 4 ) / 5;
72
+ - 意図しない石が反転された際、予想外の方向にも反転を行っていることが分かった。
222
- for(int i=0; i<8; i++) {
223
- for(int j=0; j<8; j++) {
224
- p.x = (unit_size*(i+1) + unit_size*(i+2))/2;
225
- p.y = (unit_size*(j+1) + unit_size*(j+2))/2;
226
- ste[i][j].paint(g, p, rad);
227
- }
228
- }
229
- }
230
-
231
- //クリックされたマス(x,y)に石sを配置する
232
- void setStone(int x, int y, int s) {
73
+ - このことから方角を取得するgetLine(int x, int y, Point d){}に問題があると考えた。
233
- ste[x][y].setObverse(s);
234
- }
235
- }
236
-
237
- public class Reversi extends JPanel{
238
- private final static int UNIT_SIZE = 80;
239
- private Board board = new Board();
240
-
241
- private int turn = 1;
242
-
243
- //コンストラクタ初期化
244
- public Reversi() {
245
- setPreferredSize(new Dimension(800, 800));
246
- addMouseListener(new MouseProc());
247
- }
248
-
249
- public void paintComponent(Graphics g) {
250
- board.paint(g, UNIT_SIZE);
251
- }
252
-
253
-
254
- //turn 1は黒の番
255
- void changeTurn() {
256
- if ( turn == 1 ) turn = 2;
257
- else if ( turn == 2 ) turn = 1;
258
- }
259
-
260
- void MessageDialog(String str) {
261
- JOptionPane.showMessageDialog(this, str, "情報", JOptionPane.INFORMATION_MESSAGE);
262
- }
263
-
264
-
265
- //黒石と白石の数を比較し終了
266
- void EndMessageDialog(int num_black, int num_white) {
267
- if( num_black > num_white ) {
268
- String str = "[黒:" + num_black + ",白:" + num_white + "]で黒の勝ち";
269
- JOptionPane.showMessageDialog(this, str, "ゲーム終了", JOptionPane.INFORMATION_MESSAGE);}
270
- else if (num_black == num_white ) {
271
- String str = "[黒:" + num_black + ",白:" + num_white + "]で引き分け";
272
- JOptionPane.showMessageDialog(this, str, "ゲーム終了", JOptionPane.INFORMATION_MESSAGE);}
273
- else {
274
- String str = "[黒:" + num_black + ",白:" + num_white + "]で白の勝ち";
275
- JOptionPane.showMessageDialog(this, str, "ゲーム終了", JOptionPane.INFORMATION_MESSAGE);}
276
-
277
- System.exit(0);
278
- }
279
-
280
-
281
- //クリックされた時の処理用クラス
282
- class MouseProc extends MouseAdapter {
283
- public void mouseClicked(MouseEvent me) {
284
- Point point = me.getPoint();
285
- int btn = me.getButton();
286
- System.out.println("(" + point.x + "," + point.y + ")");
287
- board.evaluateBoard();
288
- if ( btn == MouseEvent.BUTTON1){
289
- int x = point.x / UNIT_SIZE - 1;
290
- int y = point.y / UNIT_SIZE - 1;
291
- System.out.println("[" + x + "]" + "[" + y + "]");
292
- if( 0 <= x && x < 8 && 0 <= y && y < 8 ) {
293
- if(board.eval_black[x][y] < 1){
294
- System.out.println("そこに石を置けません");
295
- }
296
- else {
297
- board.setStone(x, y, 1);
298
- board.setStoneAndReverse(x, y, 1);
299
- repaint();
300
- board.printBoard();
301
- board.evaluateBoard();
302
- board.printEval();
303
- changeTurn();
304
- if( board.num_grid_black >= 1){
305
- MessageDialog("白の番です");
306
- }
307
- else {
308
- changeTurn();
309
- MessageDialog("あなたはパスです");
310
- }
311
- }
312
- }
313
- }
314
- else if ( btn == MouseEvent.BUTTON3){
315
- int x = point.x / UNIT_SIZE - 1;
316
- int y = point.y / UNIT_SIZE - 1;
317
- System.out.println("[" + x + "]" + "[" + y + "]");
318
- if( 0 <= x && x < 8 && 0 <= y && y < 8 ) {
319
- if(board.eval_white[x][y] < 1){
320
- System.out.println("そこに石を置けません");
321
- }
322
- else {
323
- board.setStone(x, y, 2);
324
- board.setStoneAndReverse(x, y, 2);
325
- repaint();
326
- board.printBoard();
327
- board.evaluateBoard();
328
- board.printEval();
329
- changeTurn();
330
- if( board.num_grid_black >= 1){
331
- MessageDialog("黒の番です");
332
- }
333
- else {
334
- changeTurn();
335
- MessageDialog("あなたはパスです");
336
- }
337
- }
338
- }
339
- }
340
-
341
- //白、黒石の総数と石が置けなくなる場合を考える
342
- int num_black = 0;
343
- int num_white = 0;
344
- for(int i = 0; i<8; i++) {
345
- for(int j = 0; j<8; j++) {
346
- if( board.ste[i][j].obverse == 1 ) num_black++;
347
- if( board.ste[i][j].obverse == 2 ) num_white++;
348
- }
349
- }
350
-
351
- if( board.num_grid_black < 1 && board.num_grid_white < 1 )
352
- {
353
- EndMessageDialog(num_black, num_white);
354
- }
355
- }
356
- }
357
-
358
- //起動
359
- public static void main(String[] args) {
360
- JFrame f = new JFrame();
361
-
362
- f.getContentPane().setLayout(new FlowLayout());
363
- f.getContentPane().add(new Reversi());
364
- f.pack();
365
- f.setResizable(false);
366
- f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
367
- f.setVisible(true);
368
- }
369
- }
370
74
  ```

1

誤字

2019/11/27 04:33

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,6 @@
1
+ java環境で石を反転させる時に、隣合う挟まれていない石まで反転されてしまいます。
2
+ 修正カ所などがあれば御指摘ください。
3
+
1
4
  ```ここに言語を入力
2
5
  import java.awt.*;
3
6
  import javax.swing.*;