磨豆机是一块直立的木板,带有均匀分布的三角形钉子。球从板的开口处落下。每次球击中钉子时,它有 50% 的机会向左或向右下落。成堆的球堆积在板底部的插槽中。
我将程序写入生成随机左或右的位置。我希望输出是类似的基础:
Drop a ball? Yes...
LRLRLRR
Drop a ball? Yes...
RRLLLRR
Drop a ball? Yes...
LLRLLRR
Drop a ball? Yes...
RRLLLLL
Drop a ball? Yes...
LRLRRLR
0
0
0 0 0
我有它显示 Bean Machine 的球路径输出的位置,但我不明白我应该如何显示具有球和插槽的数组以及插槽中的球......
这是我的代码的主要部分,我没有发布典型的显示方法等,因为我确定他们没有出现这个问题
import java.util.Scanner;
import java.util.Random;
public class BeanMachine {
//constants
static final int LEFT = 0;
static final int RIGHT = 1;
static final char BALL = 'O';
//constants for options
static final int STANDARD_GAME = 0;
static final int QUIT = -1;
//Scanner for input
static Scanner keyboard = new Scanner(System.in);
//two-dimensional array to represent the bean machine
int ballsNo;
int slotsNo;
char[][]slots = new char[ballsNo][slotsNo];
//***MAIN METHOD***********************************************************
public static void main(String[] args) {
displayBanner();
int userChoice = QUIT;
boolean done = false;
System.out.print("Enter the number of balls you want to drop: ");
int ballsNo = keyboard.nextInt();
System.out.print("Enter the number of slots you want in the bean machine: ");
int slotsNo = keyboard.nextInt();
do {
displayMenu();
userChoice = getUserChoice();
switch (userChoice) {
case STANDARD_GAME:
dropBall(slotsNo);
break;
case QUIT:
done = true;
break;
default:
System.out.println("Continue playing?");
}
} while(!done);
}//end of main method
//***CLEAR SLOTS***********************************************************
public void clearSlots(int ballsNo1, int slotsNo1){
for (ballsNo = 0; ballsNo < ballsNo1; ballsNo++) {
for (ballsNo = 0; slotsNo < slotsNo1; slotsNo++) {
slots[ballsNo][slotsNo] = 0;
}
}
}
//***DROP BALL*****************************************************************
static int dropBall(int slotsNo) {
int rights = 0;
int position = 0;
while (position < slotsNo-1){
if (Math.random() < 0.5) {
System.out.println("L");
}
else{
System.out.println("R");
rights++;
}
position++;
}
return rights;
}//end of dropBall
//***DISPLAY BOARD**********************************************************
static void displayBoard(int ballsNo, int slotsNo, char [][] slots){
int count = 0;
while(count<=slotsNo){
System.out.println(slots[ballsNo][slotsNo]);
count++;
}
}
}//end of class