gpt4 book ai didi

Java bean 机器

转载 作者:行者123 更新时间:2023-11-29 04:04:45 27 4
gpt4 key购买 nike

这是我想完成的:

Write a program that stimulates a bean machine Your program should prompt the user to enter the number of balls and the number of slots in the machine. Simulate the falling of each ball by printing its path.

EX.


Enter the number of balls: 5
Enter the number of slots: 7


LRLRLRL
RRLRLLL
LLRRLLR
LRLLRLR
RRRLRRL
_ _ 0
_ _ 0
0 0 0

到目前为止,这是我的代码:

import javax.swing.JOptionPane;        
public static void main(String[] args) {
int balls=0;
int slots=0;
char [] direction= new char [slots];
int slot=0;
int i=0;
int path=0;

balls= Integer.parseInt(JOptionPane.showInputDialog("Enter" +
" the number of balls to be dropped:"));
slots= Integer.parseInt (JOptionPane.showInputDialog("Enter " +
"the number of slots:"));

for (int j=1;j<=balls;j++){
while(i<slots){
path= (int)(Math.random()*100);
if (path <50){
direction [slots]='L';
}
else{
direction [slots]='R';
}
i++;
slot++;
}
System.out.println("The pathway is" +direction[0]+direction[1]+direction[2]+direction[3]+direction[4]);

}
}

我遇到了一些问题:

  1. 在我尝试打印路径的代码的最后一行中,我基本上必须猜测用户选择的槽数。有没有更好的方法来打印这个?
  2. 如何打印用户在上面显示的模式中输入的数字“球”?
  3. 我的代码还有其他问题吗?

最佳答案

好吧,对于初学者来说,我在 direction[slots] = 'L';(或 'R')。这是因为 direction 的长度始终为 0,因为当 slots 为 0 时,您将其初始化为 slots。移动行

char [] direction= new char [slots];

输入slots之后。

接下来,您始终将“L”或“R”分配给紧跟在数组末尾之后的位置。这是我收到 ArrayIndexOutOfBoundsException 的另一个原因。将分配更改为

direction[i] = 'L'; // or 'R'

接下来,您不要在 while 循环之后重置 i。所以只为第一个球计算路径,然后为所有其他球重新使用。我会让它变成一个 for 循环,像这样:

for (i = 0; i < slots; i++) {
// your code here (make sure you don't change i inside the loop)
}

最后,正如其他人所说,您应该使用循环来打印出路径。你知道 direction 数组有多长(如果你不知道的话,它是 direction.length),所以你可以遍历它并打印出每个字母。

完成这些更改后,您的程序应该可以运行(编辑:,除了它不会跟踪每个球最终出现在哪个插槽中)。它仍有一些改进空间,但发现这些东西是乐趣的一部分——不是吗?

关于Java bean 机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/686588/

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