Java基础语句推箱子游戏

import java.util.Scanner;
public class work6 {

	
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		// 1.地图 二维数组10X10
		// 2.人,箱,终(箱子可以随机出现)
		// 3.游戏结束(胜利,箱子堆到边缘)
		// 4.人不能吃终点
		// 5.不能超出地图的范围

		int[][] map = new int[10][10];
		// 人的坐标
		int rx = 5;
		int ry = 4;
		map[rx][ry] = 1;
		// 箱子的坐标
		int xx = 3;
		int xy = 2;
		map[xx][xy] = 2;
		// 终点的坐标
		// 随机产生
		int zx = 4;
		int zy = 1;
		map[zx][zy] = 3;

		do {
			for (int i = 0; i < map.length; i++) {
				for (int j = 0; j < map[i].length; j++) {
					if (map[i][j] == 0) {
						System.out.print("口");
					} else if (map[i][j] == 1) {
						System.out.print("汉");
					} else if (map[i][j] == 2) {
						System.out.print("车");
					} else if (map[i][j] == 3) {
						System.out.print("终");
					}
				}
				System.out.println();
			}
			
			if(map[xx][xy]==map[zx][zy]){
				System.out.println("恭喜你推车成功!");
				break;
			}
             if (xx==0||xx==9||xy==0||xy==9) {//如果箱子也触碰边缘游戏失败。
				  System.out.println("游戏失败");
				  break;
			}
			System.out.println("请输入方向:w上,s下,a左,d右");
			String str = input.next();
			if (str.equals("w")) {
				
				//判断人的上一格是箱子的情况
			
					if(str.equals("w")&&rx==0){
						rx++;
						map[rx][ry]=map[rx+1][ry];//往上走
	    				map[rx][ry]=1;	//重新赋值
					}else if(str.equals("a")||str.equals("S")||str.equals("d")){
						continue;
					}
					if(map[rx-1][ry]==2){//推箱子
					//箱子上移
					xx--;
					//箱子赋值
					map[xx][xy]=2;
				}
				map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图
				//向上走一格,移动行的位置
				rx--;
				//将新的坐标重新赋值为人的值1
				map[rx][ry]=1;

			} else if (str.equals("s")) {

				if(str.equals("s")&&rx==9){//如果rx碰到9
					rx--;
					map[rx][ry]=map[rx-1][ry];//往下走
    				map[rx][ry]=1;	//重新赋值
				}else if(str.equals("w")||str.equals("a")||str.equals("d")){
					continue;
					}
				//判断人的下一格是箱子的情况
				if(map[rx+1][ry]==2){
					//箱子下移
					xx++;
					//箱子赋值
					map[xx][xy]=2;
				}
				map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图
				//向下走一格,移动行的位置
				rx++;
				//将新的坐标重新赋值为人的值1
				map[rx][ry]=1;

			} else if (str.equals("a")) {
				if(str.equals("a")&&ry==0){//往左走
					ry++;
					map[rx][ry]=map[rx][ry+1];//往左走再赋值
    				map[rx][ry]=1;	//重新赋值
				}else if(str.equals("w")||str.equals("S")||str.equals("d")){
					continue;
				}
				//判断人的左一格是箱子的情况
				if(map[rx][ry-1]==2){
					//箱子上移
					xy--;
					//箱子赋值
					map[xx][xy]=2;
				}
				map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图
				//向左走一格,移动行的位置
				ry--;
				//将新的坐标重新赋值为人的值1
				map[rx][ry]=1;
			} else if (str.equals("d")) {
				if(str.equals("d")&&rx==0){//往右走
					rx++;
					map[rx][ry]=map[rx][ry-1];//往上走
    				map[rx][ry]=1;	//重新赋值
				}else if(str.equals("a")||str.equals("S")||str.equals("w")){
					continue;
				}
				//判断人的右一格是箱子的情况
				if(map[rx][ry+1]==2){
					//箱子上移
					xy++;
					//箱子赋值
					map[xx][xy]=2;
				}
				map[rx][ry]=0;//将现在人的坐标值赋值为0,清空作为地图
				//向右走一格,移动行的位置
				ry++;
				//将新的坐标重新赋值为人的值1
				map[rx][ry]=1;
			}
			 map[zx][zy]=3;

		} while(true);
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值