【发布时间】:2021-08-03 11:51:19
【问题描述】:
我是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);}
我认为class Player{} 中的函数可以工作,因为Blank blank = new Blank() 行,但是每个blank[][] 数组中都有这个数组。
错误:The type of the expression must be an array type but it resolved to Blank
【问题讨论】:
-
变量
blank不是数组类型,因此会出现编译器错误。代码处于我无法推荐任何修复的状态(我什至无法完全推断出程序应该做什么)。我建议阅读有关 Java 和 OOP 的教程,例如this one by Oracle. -
"我根据您给我的建议更改了我的代码。" 不要那样做,这是一个问答网站而不是论坛,通过更改您的问题,您会使其他答案变得过时和荒谬
-
不知道这个..我的错
标签: java arrays function class instance