我有一个Java程序,计算机将决定哪个玩家先行,并从数组中选择随机数字。当玩家删除数字时,数组会减少。所有这些都将使用随机完成。但是当我运行我的代码时,它不是我期望的那样。我可以知道我哪里错了吗?使用随机数字的Java游戏
这是我的代码:
[的Class]
public class StickBag {
private int numOfSticks;
public StickBag(int numOfSticks)
{
this.numOfSticks = numOfSticks;
}
public int getNumOfSticks() {
return numOfSticks;
}
public void setNumOfSticks(int numOfSticks) {
this.numOfSticks = numOfSticks;
}
public int remove(int n)
{
numOfSticks = numOfSticks - n;
return numOfSticks;
}
}
[主要]
public class StickGameApp {
public static void main(String[] args) {
StickBag s1 = new StickBag(25);
System.out.println("Welcome to the game of sticks!");
System.out.println("There are initially " + s1.getNumOfSticks() + " sticks on the board.");
int minP = 1;
int maxP = 2;
int randP;
int minN = 1;
int maxN = 10;
int randNum;
randP = minP + (int)(Math.random()*(maxP));
randNum = minN + (int)(Math.random()*(maxN));
for (int i=0; i<10; i++)
{
if(s1.getNumOfSticks() > randNum)
{
System.out.println("Computer player " + randP + " choose " + randNum + " sticks ");
s1.remove(randNum);
}
else
{
System.out.println("Computer player " + randP + " wants to choose " + randNum + " sticks but is unable to.");
System.out.println("Computer player " + randP + " loses ");
}
}
}
}
当运行的代码,它显示如下:
欢迎来到st游戏icks!
板上最初有25根支杆。
电脑玩家2选择6支
电脑玩家2选择6支
电脑玩家2选择6支
电脑玩家2选择6支
电脑玩家2希望选择6支,但无法。 电脑播放器2丢失
电脑播放器2想要选择6支,但无法。 电脑播放器2丢失
电脑播放器2想要选择6支,但无法。 电脑播放器2丢失
电脑播放器2想要选择6支,但无法。 电脑播放器2丢失
电脑播放器2想要选择6支,但无法。 电脑播放器2丢失
电脑播放器2想要选择6支,但无法。 电脑玩家2输
但我希望它显示是这样的:
欢迎棒的游戏!
板上最初有25根支杆。
电脑播放器1选择5支。
电脑播放器2选择7支。
电脑播放器1选择7支。
电脑玩家2想要选择7支,但无法。
电脑玩家2,你输了。
我可以知道我哪里错了吗?
1.您的播放器在for循环之外被选中。因此,曾经选择过的玩家永远不会改变。 2.无论游戏结束与否,你都可以定义一个10的迭代。你需要根据我猜的棍子的数量来确定循环的结束。 3.如果您使用随机,则无法确定结果(您希望显示的结果)。 – kism3t
谢谢你指出我的错误。我相当新的Java,但现在我明白了为什么。欣赏它 –