【发布时间】:2020-05-01 14:21:26
【问题描述】:
我正在编写一个类似于游戏的程序,叫做关上盒子。游戏要求玩家掷 2 个骰子,然后玩家选择分别覆盖两个数字(在布尔数组中)或两者的总和。
我很难返回应该掷两个骰子的 int 方法 roll() 的两个值。
这是我的主类代码:
public class clacker {
private int play;
private int die1;
private int die2;
private boolean[] table;
private final int high = 6;
private final int low = 1;
private int range;
public clacker()
{
range = high-low+1;
table = new boolean[13];
play = 0;
}
public void roll()
{
die1 = (int)(Math.random()*range+low);
die2 = (int)(Math.random()*range+low);
}
public void value(char ch)
{
if(ch == 'i' || ch == 'I')
{
table[die1] = true;
table[die2] = true;
displayBoard();
}
else if(ch == 'T' || ch == 't')
{
table[die1+die2] = true;
displayBoard();
}
else
{
roll();
}
}
public void displayBoard()
{
for(int i = 1; i<table.length; i++)
{
if(table[i] == false)
{
System.out.print(" " + i + " ");
}
else
{
System.out.print(" / ");
}
}
}
}
对于测试类:
public class clackerTest {
public static void main(String[] args) {
clacker oo = new clacker();
EasyReader kboard = new EasyReader();
System.out.println("Press anything to roll the dice. ");
char roll= kboard.readChar();
int dice1 = oo.roll();
int dice2 = oo.roll();
System.out.println("You rolled " + dice1 + " and a " + dice2 + "!");
System.out.println("Cover Individual or Total: (enter i or t)");
char roll2 = kboard.readChar();
}
}
【问题讨论】:
-
您需要返回一个包含两个值的数组,或者一个包含这些值的对象。或者在您的
main类适用时在其他地方管理它并只返回一个值 - 现在您正尝试同时执行这两项操作。