java推箱子游戏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Java学习记录


提示:以下是本篇文章正文内容,下面案例可供参考

一、java二维数组

通过对Java二维数组的创建、修改和打印实现推箱子游戏。

二、实现方法

1.引入库

代码如下:

import java.util.Scanner

2.创建8*8二维数组地图

代码如下:

String [] [] maparr =new String [8][8];
        maparr[0]=new String [] {"■","■","■","■","■","■","■","■"};
        maparr[1]=new String [] {"■","*"," "," "," "," "," ","■"};
        maparr[2]=new String [] {"■"," "," "," "," "," "," ","■"};
        maparr[3]=new String [] {"■"," ","▲"," "," "," "," ","■"};
        maparr[4]=new String [] {"■"," "," "," ","★"," "," ","■"};
        maparr[5]=new String [] {"■"," "," "," "," "," "," ","■"};
        maparr[6]=new String [] {"■"," "," "," "," "," "," ","■"};
        maparr[7]=new String [] {"■","■","■","■","■","■","■","■"};
        print(maparr);

3.确定初始位置,上下左右移动

		//人的初始位置
		int manx=1;
        int many=1;
		//箱子的初始位置
        int boxx=2;
        int boxy=3;

        while(many>0&many<7&manx>0&manx<9)
        { 
            Scanner sc = new Scanner(System.in);
            String move=sc.next();
            //向左移动
            if(move.equals("a"))
            {    
                if(maparr[many][manx-1]==" ")
                {
                    maparr[many][manx]=" ";
                    manx=manx-1;
                    maparr[many][manx]="*";
                    print(maparr);
                }
                else if(maparr[many][manx-1]=="▲")
                {
                    if(maparr[boxy][boxx-1]=="■")
                    {
                        print(maparr);
                    }
                    else if (maparr[boxy][boxx-1]=="★")
                    {
                        System.out.println("you win!!!");
                        break;
                    } 
                    else
                    {
                        maparr[many][manx]=" ";
                        many=many-1;
                        maparr[boxy][boxx]="*";
                        maparr[boxy][boxx-1]="▲";
                        boxx=boxx-1;
                        print(maparr);
                    }
                    
                        
                }
                else
                print(maparr);
                
                
            }


            //向下移动
            else if(move.equals("s"))
            {
                if(maparr[many+1][manx]==" ")
                {
                    maparr[many][manx]=" ";
                    many=many+1;
                    maparr[many][manx]="*";
                    print(maparr);
                }
                else if (maparr[many+1][manx]=="▲")
                {
                    if(many+2==7)
                    {
                        print(maparr);
                    }
                    else if(maparr[boxy+1][boxx]=="★")
                    {
                        System.out.println("you win!!!");
                        break;
                    }
                    else{
                        maparr[many][manx]=" ";
                        many=many+1;
                        maparr[many][manx]="*";
                        maparr[boxy+1][boxx]="▲";
                        boxy=boxy+1;
                        print(maparr);
                    }
                    
                }
                else
                print(maparr);
            }

            //向右移动
            else if(move.equals("d"))
            {
                if(maparr[many][manx+1]==" ")
                {
                    maparr[many][manx]=" ";
                    manx=manx+1;
                    maparr[many][manx]="*";
                    print(maparr);
                }
                else if (maparr[many][manx+1]=="▲")
                {
                    if(maparr[boxy][boxx+1]=="■")
                    {
                        print(maparr);
                    }
                    else if (maparr[many][manx+2]=="★")
                    {
                        System.out.println("you win!!!");
                        break;
                    }
                    else
                    {
                        maparr[many][manx]=" ";
                        manx=manx+1;
                        maparr[many][manx]="*";
                        boxx=boxx+1;
                        maparr[boxy][boxx]="▲";
                        print(maparr);
                    }
                }
                else
                print(maparr);
                
            }

            //向上移动
            else if(move.equals("w"))
            {
                if(maparr[many-1][manx]==" ")
                {
                    maparr[many][manx]=" ";
                    many=many-1;
                    maparr[many][manx]="*";
                    print(maparr);
                
                }
                else if (maparr[many-1][manx]=="▲")
                {
                    if(boxy-1==0)
                    {
                        print(maparr);
                    }
                    else if(maparr[boxy-1][boxx]=="★")
                    {
                        System.out.println("you win!!!");
                        break;
                    }
                    else
                    {
                        maparr[many][manx]=" ";
                        many=many-1;
                        maparr[many][manx]="*";
                        maparr[boxy-1][boxx]="▲";
                        boxy=boxy-1;
                        print(maparr);
                    }
                }
                else
                print(maparr);
            }
        }
        

    }

通过终端输入ASWD字符判断移动方向,通过对二维数组元素位置的修改、值的替换,实现移动

总结

提示:字符串二维数组创建方法:String [] [] **=new String [length][length];输入字符串的判断:.equals(objects)。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值