Java GUI 逻辑错误 Tic Tac Toe 当 O 获胜时它不会立即出现
Java GUI logic error Tic Tac Toe when O wins it doesn't appear immedetly
我的 Tic Tac Toe 游戏出现逻辑错误
我使用 Java 编写了代码
这是每次放置 X
时都会放置 O 的方法
/* creating method to place O*/
private void placeO(){
String[] arr = { b1.getText() , b2.getText() , b3.getText(),
b4.getText() , b5.getText() , b6.getText(),
b7.getText() , b8.getText() , b9.getText()};
boolean check = true;
try{
boolean result = checkForWinner(arr);
while(check){
/*if there is a winner or tie then stop */
if(result == true){
break;
}
int r = (int)( Math.random()* 8 ) ;
/*generate random number between 0 and 8 */
if(arr[r] == ""){
switch(r){
case 0 : b1.setText("O");break;
case 1 : b2.setText("O");break;
case 2 : b3.setText("O");break;
case 3 : b4.setText("O");break;
case 4 : b5.setText("O");break;
case 5 : b6.setText("O");break;
case 6 : b7.setText("O");break;
case 7 : b8.setText("O");break;
case 8 : b9.setText("O");
}
check = false;
}
}
}catch(Error e){
System.out.print(e);
}
}
每次我按下按钮都会发生这个事件
private void b8ActionPerformed(java.awt.event.ActionEvent evt) {
if(b8.getText() == ""){
b8.setText("X");
placeO();
}
}
我面临的问题是,每次 O 获胜时,消息都不会出现,直到我放置另一个 X
有没有办法解决这个错误逻辑?
在您放置“X”并将 boolean result = checkForWinner(arr);
放在“O”轮结束后,尝试在 private void b8ActionPerformed
中检查获胜者。
这应该可以解决逻辑错误。
我的 Tic Tac Toe 游戏出现逻辑错误 我使用 Java 编写了代码 这是每次放置 X
时都会放置 O 的方法 /* creating method to place O*/
private void placeO(){
String[] arr = { b1.getText() , b2.getText() , b3.getText(),
b4.getText() , b5.getText() , b6.getText(),
b7.getText() , b8.getText() , b9.getText()};
boolean check = true;
try{
boolean result = checkForWinner(arr);
while(check){
/*if there is a winner or tie then stop */
if(result == true){
break;
}
int r = (int)( Math.random()* 8 ) ;
/*generate random number between 0 and 8 */
if(arr[r] == ""){
switch(r){
case 0 : b1.setText("O");break;
case 1 : b2.setText("O");break;
case 2 : b3.setText("O");break;
case 3 : b4.setText("O");break;
case 4 : b5.setText("O");break;
case 5 : b6.setText("O");break;
case 6 : b7.setText("O");break;
case 7 : b8.setText("O");break;
case 8 : b9.setText("O");
}
check = false;
}
}
}catch(Error e){
System.out.print(e);
}
}
每次我按下按钮都会发生这个事件
private void b8ActionPerformed(java.awt.event.ActionEvent evt) {
if(b8.getText() == ""){
b8.setText("X");
placeO();
}
}
我面临的问题是,每次 O 获胜时,消息都不会出现,直到我放置另一个 X 有没有办法解决这个错误逻辑?
在您放置“X”并将 boolean result = checkForWinner(arr);
放在“O”轮结束后,尝试在 private void b8ActionPerformed
中检查获胜者。
这应该可以解决逻辑错误。