利用二维数组制作简易的推箱子游戏,一个人去推一个箱子到一个点
package com.lan.java03;
import java.util.Scanner;
public class TuiXiangZi {
public static void main(String[] args) {
/*
* 首先我们要创建出来小人可以移动的地图
* 这个地图是一个二维的数组
*
* */
/*-----------------------开始创建地图-----------------------------*/
int[ ][ ] c = new int[5][5]; //定义一个数组
/*
* 接下来,我希望从输入确定我的小人在哪个初始位置
* */
Scanner scanner = new Scanner(System.in);
System.out.println("请输入小人的横坐标从0到" + (c.length - 1));
int i = scanner.nextInt(); //就是小人的行坐标
if( i >= c.length || i < 0){
System.out.println("您输入的行数有误,小人坐标脱离了地图");
return;
}
System.out.println("请输入小人的列坐标从0到" + (c[0].length - 1));// i j 代表小人
int j = scanner.nextInt(); //就是小人的列坐标
if( j >= c[i].length || j < 0){
System.out.println("您输入的列数有误,小人坐标脱离了地图");
return;
}
c[i][j] = 1; //初始化位置c[i][j] = 1 我没做合法性判断
System.out.println("小地图的目前状态如下");
System.out.println("**************************************************************************"); // 输出地图
for(int n = 0; n < c.length; n++){ //输出矩阵
for(int m = 0 ; m < 5 ;m++){
System.out.print(c[n][m] + " ");
}
System.out.println();
}
System.out.println("请输入箱子的横坐标:从0-" + (c.length - 1)); //boxM boxN代表箱子
int boxM = scanner.nextInt();
if(boxM >= c.length || boxM < 0){
System.out.println("箱子脱离地图");
return;
}
System.out.println("请输入箱子的纵坐标:从0-" + (c[boxM].length - 1));
int boxN = scanner.nextInt();
if(boxN >= c[boxM].length || boxN < 0){
System.out.println("箱子脱离地图");
return;
}else if(i == boxM && j == boxN){
System.out.println("小人与箱子重复");
return;
}
c[boxM][boxN] = 2;
System.out.println("小地图的目前状态如下");
System.out.println("**************************************************************************"); //输出地图