gpt4 book ai didi

java - 井字棋 java

转载 作者:行者123 更新时间:2023-11-30 04:45:54 25 4
gpt4 key购买 nike

我是一个学习Java编程的初学者,我正在玩井字棋游戏。

当我完成游戏后,我无法继续玩游戏,因为程序将退出。我应该在这段代码中添加什么。由于我没有使用paint方法,所以无法使用repaint()。

import java.awt.*;  
import java.awt.event.*;
import javax.swing.*;

public class TicTacToeV1 implements ActionListener {
/*Instance Variables*/
private JFrame window = new JFrame("Tic-Tac-Toe");
private JButton button1 = new JButton("");
private JButton button2 = new JButton("");
private JButton button3 = new JButton("");
private JButton button4 = new JButton("");
private JButton button5 = new JButton("");
private JButton button6 = new JButton("");
private JButton button7 = new JButton("");
private JButton button8 = new JButton("");
private JButton button9 = new JButton("");

private String letter = "";
public static int count = 0;
public TicTacToeV1(){
/*Create Window*/
window.setSize(300,300);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3,3));

/*Add Buttons To The Window*/
window.add(button1);
window.add(button2);
window.add(button3);
window.add(button4);
window.add(button5);
window.add(button6);
window.add(button7);
window.add(button8);
window.add(button9);

/*Add The Action Listener To The Buttons*/
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
button6.addActionListener(this);
button7.addActionListener(this);
button8.addActionListener(this);
button9.addActionListener(this);

/*Make The Window Visible*/
window.setVisible(true);

String input = JOptionPane.showInputDialog("Please select ur pawn: \n1) X\n2) O");
int pawn = Integer.parseInt(input);
if ( input.equals("2")){
setCount(1);
}
}

public static void setCount (int co){
count = co;
}

public void actionPerformed(ActionEvent a) {
count++;

/*Calculate Who's Turn It Is*/
if(count == 1 || count == 3 || count == 5 || count == 7 || count == 9|| count == 11){
letter = "X";

} else if(count == 2 || count == 4 || count == 6 || count == 8 || count == 10){
letter = "O";
}

/*Display X's or O's on the buttons*/
if(a.getSource() == button1){
button1.setText(letter);
button1.setEnabled(false);
} else if(a.getSource() == button2){
button2.setText(letter);
button2.setEnabled(false);
} else if(a.getSource() == button3){
button3.setText(letter);
button3.setEnabled(false);
} else if(a.getSource() == button4){
button4.setText(letter);
button4.setEnabled(false);
} else if(a.getSource() == button5){
button5.setText(letter);
button5.setEnabled(false);
} else if(a.getSource() == button6){
button6.setText(letter);
button6.setEnabled(false);
} else if(a.getSource() == button7){
button7.setText(letter);
button7.setEnabled(false);
} else if(a.getSource() == button8){
button8.setText(letter);
button8.setEnabled(false);
} else if(a.getSource() == button9){
button9.setText(letter);
button9.setEnabled(false);
}
}

public static void main(String[] args){
new TicTacToeV1();
}
}

最佳答案

创建一个名为重置(或类似的方法)的方法并使其执行以下操作:

  1. 重置每个文本值。
  2. 将计数重置为 0。

您可能想要为按钮创建一个数组 [](或二维数组,如果您知道如何 >> [][]),这样也更容易管理。这可以更好地管理许多按钮,并消除当前代码中的大量无用的重复。

示例代码:

public static void reset() {
button1.setText("");
button1.setEnabled(true);
//etc...
count = 0;
}

然后在游戏结束时调用reset()(您可能还想让它检查谁赢了)。

希望这对 DFTBA 有所帮助。 :)

关于java - 井字棋 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com