【发布时间】:2019-06-09 17:50:40
【问题描述】:
有人可以帮我解决我的二维数组网格的玩家移动问题。我可以很好地打印出网格并显示它。我还可以在网格上打印出玩家。我只是很难将玩家移动到下一个位置。我曾尝试查看 C++ 代码以尝试复制它,但进展并不顺利。
import java.util.Scanner;
import java.util.Random;
public class Components
{
public Components()
{
Graph();
}
void Graph()
{
int Row,Col,Num1,Num2;
int p1 = 0;
int p2 = 0;
char Move;
boolean Running = true;
Scanner input = new Scanner(System.in);
//Random random = new Random();
System.out.println("Please Enter The Number Of Row:");
Row = input.nextInt();
System.out.println("Please Enter The Number Of Columns:");
Col = input.nextInt();
int Array[][] = new int [Row][Col];
//Num1 = random.nextInt(Row) + 1;
//Num2 = random.nextInt(Col) + 1;
for(int i=0;i<Row;i++)
{
for(int x=0;x<Col;x++)
{
Array[i][x] = 0;
Array[p1][p2] = 1;
}
}
for(int i=0;i<Row;i++)
{
for(int x=0;x<Col;x++)
{
System.out.print(Array[i][x] + "\t");
}
System.out.println();
}
while(Running)
{
Move = input.next().charAt(0);
switch(Move)
{
case 'w':
case 'W':
Array[p1][p2] = 0;
Array[p1+=1][p2] = 1;
break;
case 's':
case 'S':
Array[p1][p2] = 0;
Array[p1-=1][p2] = 1;
break;
case 'd':
case 'D':
Array[p1][p2] = 0;
Array[p1][p2+=1] = 1;
break;
case 'a':
case 'A':
Array[p1][p2] = 0;
Array[p1][p2-=1] = 1;
break;
case 'l':
case 'L':
Running = false;
input.close();
break;
default:
System.out.println("Please Press Proper Keys!");
break;
}
}
}
}
public class Main {
public static void main(String[] args) {
new Components();
}
}
【问题讨论】:
-
您能否详细解释一下您遇到的问题或您在此计划中的目标是什么?
-
我的目标是制作一款可以在玩家(数字)周围移动的游戏。我目前被二维数组网格上的“玩家移动”所困扰。
标签: java eclipse multidimensional-array logic