我正在制作一个模拟足球比赛的计划。我有一个按钮,当我点击它时,两个团队中的一个随机会给出一个点。因此,一次点击后,得分可以是1-0或0-1,并且在两次cliks之后2-0,0-2或1-1。
问题在于,每次点击,都是0-1或1-0。所以得分并不依赖。
我知道原因是我在执行的'操作中说int homescore = 0
和int awayscore = 0
'码。在0-0之后,它随机给出一支球队1分。因此,当我第二次点击按钮时,分数将再次从0-0开始,而不是新分数。
有人知道如何解决这个问题吗?也许这很容易,但我没有经常编程。
这是我正在谈论的代码的一部分:
private void resultbuttonActionPerformed(java.awt.event.ActionEvent evt) {
Random dice = new Random();
int number;
int homescore = 0;
int awayscore = 0;
for (int counter =1; counter<=1; counter++){
number = dice.nextInt(2); // Creates a 0 or a 1
if (number == 1){ // If 1: Point to home team
homescore = ++homescore;}
else { // If 0: Point to away team
awayscore = ++awayscore;
}
}
homescorelabel.setText(String.valueOf(homescore));
awayscorelabel.setText(String.valueOf(awayscore));
答案 0 :(得分:0)
将分数放入主要方法/类中。 此外,不需要for循环,因为它只运行一次。
答案 1 :(得分:0)
overflow: auto
您每次都重新定义它 - &gt;尝试摆脱h方法。
答案 2 :(得分:0)
正如您所解释的那样,
int homescore = 0;
int awayscore = 0;
在您执行的操作中,将始终从零开始递增一个值。您需要做的是获取现有值并向其增加一个值。这有两种简单的方法。
设置一个字段变量来存储主场比分和远距离比分并从中递增。
class GameClass {
private int homescore = 0;
private int awayscore = 0;
private void resultbuttonActionPerformed(java.awt.event.ActionEvent evt) {
Random dice = new Random();
int number;
for (int counter =1; counter<=1; counter++){
number = dice.nextInt(2); // Creates a 0 or a 1
if (number == 1){ // If 1: Point to home team
homescore = ++homescore;
} else { // If 0: Point to away team
awayscore = ++awayscore;
}
}
homescorelabel.setText(String.valueOf(homescore));
awayscorelabel.setText(String.valueOf(awayscore));
}
}
请注意,我刚刚在这里展示了这个类(GameClass)。当您递增其中一个分数时,您将增加该字段,以便在每次单击按钮时保留该分数。
从标签中获取当前分数。
private void resultbuttonActionPerformed(java.awt.event.ActionEvent evt) {
Random dice = new Random();
int number;
int homescore = Integer.parseInt(homescorelabel.getText());
int awayscore = Integer.parseInt(awayscorelabel.getText());
for (int counter =1; counter<=1; counter++){
number = dice.nextInt(2); // Creates a 0 or a 1
if (number == 1){ // If 1: Point to home team
homescore = ++homescore;
} else { // If 0: Point to away team
awayscore = ++awayscore;
}
}
homescorelabel.setText(String.valueOf(homescore));
awayscorelabel.setText(String.valueOf(awayscore));
}