【发布时间】:2015-07-01 11:40:18
【问题描述】:
您好,我正在尝试用 Java 构建一个小游戏,但是我遇到了一些困难,我正在使用多维数组并用从 0 开始的数字填充它。 用户选择他们想去的号码,然后该号码/单元格应用 00 ,然后这里显示多维数组是我的代码(我是菜鸟);
import java.util.*;
public class showMap{
private int rows;
private int columns;
private int counter = 0;
private int counter1 = 0;
private int sp1;
private int sp2;
private int passedval = 0;
public showMap(){
System.out.println("Enter Height");
Scanner input = new Scanner(System.in);
int i = input.nextInt();
System.out.println("Enter Width");
int x = input.nextInt();
showMap(createaMap(i,x));
System.out.println("You Start At 0");
System.out.println("Pick the number you want to go to");
passedval = input.nextInt();
//spliting(passedval);
showMap(createaMap(i,x));
}
public int[][] createaMap(int x,int y){
rows = x;
columns = y;
int[][] map = new int[rows][columns];
return map;
}
public int[][] showMap(int[][] maps)
{
if(passedval == 0)
{
for(int x=0;x<rows;x++)
{
for(int y=0;y<columns;y++)
{
maps[x][y] = counter;
counter++;
}
}
}else
{
for(int q=0;q<rows;q++)
{
for(int x=0;x<columns;x++)
{ //PROBLEM HERE!
if(maps[q][x] == passedval)
{
maps[q][x]= 00;
sp1 = q;
sp2 = x;
}
}
}
}
for(int q=0;q<rows;q++)
{
for(int x=0;x<columns;x++)
{
System.out.printf("%-2d",maps[q][x]);
System.out.print("|");
}
System.out.println("");
}
return maps;
}
}
想要它看起来像吗?
O|1|2|3|4|
5|6|7|8|9|
选择一个数字? - 1
O|00|2|3|4|
5|6|7|8|9|
【问题讨论】:
-
很好。你有什么问题?
-
你的问题不在你说的地方。首先。类名以大写字母开头。第二不要在构造函数中执行完整的逻辑。第三:把你的方法分成小块。您的 showMap 方法完成所有工作。制作一个 showMap 方法(只显示地图),一个 set0ToSelectedValue 方法(只做这个),等等。然后你可以循环你的方法(直到一个cancelCondition)。显示-设置0-显示-设置0-显示-设置0 ...取消
标签: java arrays multidimensional-array arraylist