首页 > 解决方案 > Java:如何从不同的类中调用数组,并修改它们?

问题描述

我是Java编程的初学者,我正在尝试制作一个2人棋盘游戏,玩家根据骰子(1~6)的结果在棋盘上移动。

空白数组用于显示玩家的位置。 blank[i][0]是第一位玩家在棋盘上的位置,blank[i][1]显示第二位玩家的位置。

我在 中创建了数组,class Blank{}并希望在class Player{}. 这是代码class Blank{}和代码的一部分class Player{}

class Blank {
    
    Blank() {
        String[][] blank = new String[12][2];
        for (int i = 0; i < 12; i++) {
            for (int j = 0; j <2; j++)
                blank[i][j] = " ";  }
    }
}
class Player {
    
    int player1, player2;
    
    Blank blank = new Blank();
    
    Player() {
        player1 = 1;
        player2 = 2;}
    
    void readyPlayers() {
        blank[0][0] = player1;
        blank[0][1] = player2;}

    int getPlayer1() {
        int i = 0;
        for ( i = 0; i < 10; i++) {
            if (blank[i][0] == "1")
                break;}
        return i;}

   void setPlayer1(int p1Loc) {
        for(int i = 0; i < 10; i++)
            blank[i][0] = " ";
        blank[p1Loc][0] = player1;}

   void movePlayer1(int dice1) {
        int p1Loc = getPlayer1();
        for(int i = 0; i < dice1; i++) {
            p1Loc += 1;
            if (p1Loc == 10)
                p1Loc = 0;}
        
        setPlayer1(p1Loc);}

我认为 in 中的函数class Player{}会因为 line 起作用Blank blank = new Blank(),但是每个数组中都有这个blank[][]数组。

错误:The type of the expression must be an array type but it resolved to Blank

标签: javaarraysfunctionclassinstance

解决方案


首先,您在 Blank 构造函数中创建了一个局部变量,但是当您从那里退出时,空白变量将不再可用。

其次,在函数中,您尝试将 int 写入 String,但您以错误的方式进行。阅读此处将 int 转换为 String以了解更多详细信息。


推荐阅读