java对象数组,arraylist对象问题

fruv7luv  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(217)

我要上大学的第一门编程课,我的问题是:
我有这样一个对象的数组列表:“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,并包含另一个攻击性的情绪变量。
我认为这是一个无限循环

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题