我要上大学的第一门编程课,我的问题是:
我有这样一个对象的数组列表:“playername:string;area:int; numberofdices:int“,每个人都是一个玩家。首先,所有区域初始化为8,所有骰子初始化为24。
我想把这些玩家传递到2d数组中。例如,如果有3个玩家,我想让数组看起来像这样:
[[玩家1,area:1,麻木erofdices:3],[玩家1,area:1,麻木erofdices:2],[玩家2,area:1,麻木erofdices:8]……等等]所以,关键是我希望所有玩家都有8个区域,我想在区域之间随机划分骰子。(最小1,最大8)
我试过这个,但没用:
public static void random_board(ArrayList<Players> listofplayers,Players[][] gameboard) {
do {
for(int row = 0;row < gameboard.length;row++) {
for(int column = 0;column < gameboard[row].length;column++) {
// System.out.println(gameboard[row][column]);
if(gameboard[row][column] == null) {
Iterator<Players> it = listofplayers.iterator();
while (it.hasNext()) {
Players i = it.next();
Random r = new Random();
int number = r.nextInt(8) + 1;
if (i instanceof Players) {
if (((Players) i).numberofdices - number >= 1 && ((Players i).area > 1) {
gameboard[row][column] = new Players(((Players) i).name, 1, number);
((Players) i).setnumberofdices(((Players) i).getnumberofdices() - number);
((Players) i).setarea(i.getarea()-1);
if ( ((Players)i).getarea() == 1 ) {
gameboard[row][column] = new Players(((Players)i).name,((Players)i).area,((Players)i).numberofdices);
it.remove();
}
}
} else if (i instanceof Enemies) {
if (((Enemies) i).numberofdices - number >= 1 && ((Enemies) i).area > 1) {
gameboard[row][column] = new Enemies(((Enemies) i).name, 1, number,((Enemies)i).getAttacking_mood());
((Enemies) i).setnumberofdices(((Enemies) i).getnumberofdices() - number);
((Enemies) i).setarea(i.getarea()-1);
if ( ((Enemies)i).getarea() == 1 ) {
gameboard[row][column] = new Enemies(((Enemies)i).name,((Enemies)i).area,((Enemies)i).numberofdices,((Enemies)i).getAttacking_mood());
it.remove();
}
}
}
}
}
}
}
} while (!listofplayers.isEmpty());
我有一个players类,包含name,area,numberofdices变量,还有一个enemiies类,thar继承自players,并包含另一个攻击性的情绪变量。
我认为这是一个无限循环
暂无答案!
目前还没有任何答案,快来回答吧!