作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一个学习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();
}
}
最佳答案
创建一个名为重置(或类似的方法)的方法并使其执行以下操作:
您可能想要为按钮创建一个数组 [](或二维数组,如果您知道如何 >> [][]),这样也更容易管理。这可以更好地管理许多按钮,并消除当前代码中的大量无用的重复。
示例代码:
public static void reset() {
button1.setText("");
button1.setEnabled(true);
//etc...
count = 0;
}
然后在游戏结束时调用reset()(您可能还想让它检查谁赢了)。
希望这对 DFTBA 有所帮助。 :)
关于java - 井字棋 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961749/
我是一名优秀的程序员,十分优秀!