gpt4 book ai didi

java - Chutes and Ladders 游戏随机放置问题

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:57:48 26 4
gpt4 key购买 nike

我是一名学生,正在开发一款 Chutes and Ladders 游戏。我正在使用方法来确定应该在游戏板上放置多少个滑槽和梯子。我在 main using 参数中为每个参数指定了 10 个,但我一直在 6 到 11 之间的任何地方放置。

这两种方法是否相互干扰?

或者我为随机放置设置 for 循环的方式有问题吗?

我是这个网站的新手,如果您需要更多说明,请告诉我,我不想将整个程序放在这里。谢谢。

//main
ChutesAndLadders cl = new ChutesAndLadders();
cl.setBoard(new String[100]);
cl.makeChutes(10);
cl.makeLadders(10);

//methods
public String [] board;
private int chutes, ladders;
public int position;
public Random rand = new Random();


//set board
public void setBoard(String [] n){
board = n;
for(int i = 0; i < board.length; i++)
board[i] = " ";
}
//set and place chutes
public void makeChutes(int n){
chutes = n;
for(int i = 0; i <= chutes; i++)
board[rand.nextInt(board.length)] = "C" + chutes;

}
//set and place ladders
public void makeLadders(int n){
ladders = n;
int lcell = 0;
for(int i = 0; i <= ladders; i++)
board[rand.nextInt(board.length)] = "L" + ladders;

最佳答案

首先,你写道:

for(int i = 0; i <= chutes; i++)                    
board[rand.nextInt(board.length)] = "C" + chutes;

循环中的赋值语句会运行chutes+1次。 (在你的情况下是 11 次。)[使用 i < chutes相反。] 这在你的梯子代码中是一样的。这解释了为什么在代码运行完成后您可能有多达 11 个滑槽或梯子。

其次,您没有注意防止同一空间被多次分配滑槽或梯子。 rand.nextInt(board.length)不能保证每次运行时都生成唯一值(否则它不会真的是随机的。)这解释了为什么当代码运行完毕后您可能看不到多达 11 个滑槽和梯子。

为了使这一点更清楚,在其中放置一个常量值:

for(int i = 0; i < chutes; i++)                    
board[11] = "C" + chutes;

并注意您最终得到一个滑槽(在第 11 格)——除非梯子代码用梯子覆盖了它。

希望对您有所帮助。

祝你好运!

关于java - Chutes and Ladders 游戏随机放置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591684/

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