小游戏-推箱子

推箱子是个数字会动二维数组,声明一个[8,8]的二维数组,设计地图
在这里插入图片描述
设计地图:空地为0,墙为1,箱子=2,人=3,目标=4,完成=5。
For嵌套for循环打印数组
在这里插入图片描述
把数字换成另一种方式显示出来,在声明一张新的地图出来,作为新的位置。
在这里插入图片描述
每一次程序上不知道是向上还是向下,在套个for循环,打印新的位置,

for (;;)
            {
                //打印新地图
                for (int i = 0; i < 8; i++)
                {
                    for (int j = 0; j < 8; j++)
                    {
                        if (map[i, j] == 0)
                        {
                            Console.Write(" ");
                        }
                        if (map[i, j] == 1)
                        {
                            Console.Write("■");
                        }
                        if (map[i, j] == 2)
                        {
                            Console.Write("□");
                        }
                        if (map[i, j] == 3)
                        {
                            Console.Write("♀");
                        }
                        if (map[i, j] == 4)
                        {
                            Console.Write("☆");
                        }
                        if (map[i, j] == 5)
                        {
                            Console.Write("★");
                        }
                    }
                    Console.WriteLine();
                }
}

获取按键信息ConsoleKeyInfo,清屏

在这里插入图片描述
向上[y-1,x],向下[y+1,x]以此类推,要注意人的位置,这里的人的位置[4,4],要改人的位置到数组改,
向上[y-1,x]:向前移动一格,有两种可能,一个是目的地,一个是空格,
判断按得按键是否为自己所用的按键,判断向上是空地还是目的地,
判断map[y - 1, x] == 0 || map[y - 1, x] == 4
判断map0[y, x] == 4目的地就map0[y-1,x] = 3 , map0[y,x] = 4 y--,空地就map0[y-1,x] = 3 , map0[y,x] = 0 y--,墙就跳出循环。到箱子。
判断箱子是否到目的地map[y - 1, x] == 2 || map[y - 1, x] == 5,在判断箱子是否前到目的地或者到墙或者前进一格map[y - 2, x] == 1 || map[y - 2, x] == 2 || map[y - 2, x] == 5,分两种情况:第一种:箱子的下一个目标为空地,在分两种情况,一种是目标点,一种是不是目标点,那么目标点的位移map[y - 2, x] = 2;,map[y - 1, x] = 3;map[y, x] = 4; y--;位移到目标点位置,不是目标点位移map[y - 2, x];map[y - 1, x] = 3;map[y, x] = 0;y--;移到空地。
第二种:箱子的下一个目标的位置为目标点map[y - 2, x] == 4,在有两种情况,一种到达了目标点map[y - 2, x] = 5map[y - 1, x] = 3;map[y, x] = 4;y--; 一种不到达目标点

map[y - 2, x] = 5;map[y - 1, x] = 3;map[y, x] = 0;y--;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值