gpt4 book ai didi

java - 我的 tictactoe 游戏中的每个按钮都有相同的代码。如何缩短这个?

转载 作者:搜寻专家 更新时间:2023-11-01 02:29:25 25 4
gpt4 key购买 nike

这个 tictactoe 程序是一个 2 人游戏。在我开始编码之后,我制作的 GUI 是框架和按钮。实际上,我的程序正在使用这种编码。

private String letter= " ";
private int count= 0;


private void btn7ActionPerformed(java.awt.event.ActionEvent evt) {
count++;
if(count == 1 || count == 3 || count == 5 || count == 7 || count == 9){

letter = "X";

} else if(count == 2 || count == 4 || count == 6 || count == 8 || count == 10){

letter = "O";

}

if(evt.getSource() == btn1){

btn1.setText(letter);

} else if(evt.getSource() == btn2){

btn2.setText(letter);

} else if(evt.getSource() == btn3){

btn3.setText(letter);

} else if(evt.getSource() == btn4){

btn4.setText(letter);

} else if(evt.getSource() == btn5){

btn5.setText(letter);

} else if(evt.getSource() == btn6){

btn6.setText(letter);

} else if(evt.getSource() == btn7){

btn7.setText(letter);

} else if(evt.getSource() == btn8){

btn8.setText(letter);

} else if(evt.getSource() == btn9){

btn9.setText(letter);




}
}

private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {
count++;
if(count == 1 || count == 3 || count == 5 || count == 7 || count == 9){

letter = "X";

} else if(count == 2 || count == 4 || count == 6 || count == 8 || count == 10){

letter = "O";

}

if(evt.getSource() == btn1){

btn1.setText(letter);

} else if(evt.getSource() == btn2){

btn2.setText(letter);

} else if(evt.getSource() == btn3){

btn3.setText(letter);

} else if(evt.getSource() == btn4){

btn4.setText(letter);

} else if(evt.getSource() == btn5){

btn5.setText(letter);

} else if(evt.getSource() == btn6){

btn6.setText(letter);

} else if(evt.getSource() == btn7){

btn7.setText(letter);

} else if(evt.getSource() == btn8){

btn8.setText(letter);

} else if(evt.getSource() == btn9){

btn9.setText(letter);

是的,它确实有效,但我对这些代码的问题是我需要将代码放在每个按钮中,例如button7,button1(这些只是我的按钮的例子)是代码是按钮执行的 Action 。

我只想要每个按钮执行一个命令,我不想在每个按钮中复制粘贴,因为它们是相同的代码。我认为有一个代码可以做到这一点,你怎么看?请帮忙!

最佳答案

我真的不知道你是如何尝试解决这个游戏逻辑的,尽管你的代码可以压缩成这种形式:

int count = -1;
String letter = "";
JButton[] button = new JButton[9]; // These three being your Instance Variables
for (int i = 0; i < 9; i++, counter++)
{
final int counter = i;
button[i] = new JButton("");
button[i].addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
count++;
if (count % 2 != 0)
letter = "X";
else
letter = "O";
button[counter].setText(letter);
}
});
}

关于java - 我的 tictactoe 游戏中的每个按钮都有相同的代码。如何缩短这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151936/

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