• 15-07-09 二维数组-- 推箱子小游戏


      1             int a = 2, b = 1;//人的初始坐标
      2             #region 造地图
      3             int[,] map = new int[10,10]{
      4             {8,8,8,8,8,8,8,8,8,8},
      5             {8,0,0,0,0,0,8,8,0,8},
      6             {8,1,2,0,0,8,8,8,0,8},
      7             {8,0,0,0,0,8,8,8,0,8},
      8             {8,0,0,0,0,0,8,8,0,8},
      9             {8,0,8,0,0,0,8,8,0,8},
     10             {8,0,8,8,0,0,8,8,0,8},
     11             {8,0,8,8,0,0,0,0,0,8},
     12             {8,0,8,8,0,0,0,0,3,8},
     13             {8,8,8,8,8,8,8,8,8,8},
     14             };
     15             #endregion
     16             #region 显示地图
     17             for (int x = 0; x < 10; x++)
     18             {
     19                 Console.ForegroundColor = ConsoleColor.White;
     20                 for (int y = 0; y < 10; y++)
     21                 {
     22                     if (map[x, y] == 8)
     23                     {
     24                         Console.Write("");
     25                     }
     26                     if (map[x, y] == 0)
     27                     {
     28                         Console.Write("  ");
     29                     }
     30                     if (map[x, y] == 1)
     31                     {
     32                         Console.Write("");
     33                     }
     34                     if (map[x, y] == 2)
     35                     {
     36                         Console.Write("");
     37                     }
     38                     if (map[x, y] == 3)
     39                     {
     40                         Console.ForegroundColor = ConsoleColor.Red;
     41                         Console.Write("");
     42                         Console.ForegroundColor = ConsoleColor.White;
     43                     }
     44                 }
     45                 Console.WriteLine();
     46             }
     47             #endregion
     48             
     49             while (map[8, 8] != 2)
     50             {
     51                 ConsoleKeyInfo key= Console.ReadKey(); //读键
     52                 #region 按下上键时执行的程序
     53                 if (key.Key.ToString().ToLower() == "uparrow")
     54                 {
     55                     if (a > 1)//如果人不在靠墙的位置
     56                     {
     57                         if (map[a - 1, b] == 0)//如果人前面是路
     58                         {
     59                             map[a - 1, b] = 1;
     60                             map[a, b] = 0;
     61                             map[8, 8] = 3;
     62                             a--;
     63                         }
     64                         else if (map[a - 1, b] == 3)
     65                         {
     66                             map[a - 1, b] = 1;
     67                             map[a, b] = 0;
     68                             a--;
     69                         }
     70                         else if (map[a - 1, b] == 2 && map[a - 2, b] == 0) //如果人上面是箱子,箱子上面是路
     71                         {
     72                             map[a - 2, b] = 2;
     73                             map[a - 1, b] = 1;
     74                             map[a, b] = 0;
     75                             a--;
     76                         }
     77                         else if (map[a - 1, b] == 2 && map[a - 2, b] == 3)//如果人上面是箱子,箱子上面是终点
     78                         {
     79                             map[a - 2, b] = 2;
     80                             map[a - 1, b] = 1;
     81                             map[a, b] = 0;
     82                             a--;
     83                         }
     84                         else
     85                         {
     86                             Console.WriteLine("a");
     87                         }
     88                     }
     89                 }
     90                 #endregion
     91                 #region 下键
     92                 else if (key.Key.ToString().ToLower() == "downarrow")
     93                 {
     94                     if(a<8)
     95                     {                        
     96                         if (map[a + 1, b] == 0)
     97                         {
     98                             map[a + 1, b] = 1;
     99                             map[a, b] = 0;
    100                             map[8, 8] = 3;
    101                             a++;
    102                         }
    103                         else if (map[a + 1, b] == 3)
    104                         {
    105                             map[a + 1, b] = 1;
    106                             map[a, b] = 0;
    107                             a++;
    108                         }
    109                         else if (map[a + 1, b] == 2 && map[a + 2, b] == 0)
    110                         {
    111                             map[a + 2, b] = 2;
    112                             map[a + 1, b] = 1;
    113                             map[a, b] = 0;
    114                             a++;
    115                         }
    116                         else if (map[a + 1, b] == 2 && map[a + 2, b] == 3)
    117                         {
    118                             map[a + 2, b] = 2;
    119                             map[a + 1, b] = 1;
    120                             map[a, b] = 0;
    121                             a++;
    122                         }
    123                         else
    124                         {
    125                             Console.WriteLine("a");
    126                         }
    127                     }
    128                 }
    129                 #endregion
    130                 #region 左键
    131                 else if (key.Key.ToString().ToLower() == "leftarrow")
    132                 {
    133                     if (b > 1)
    134                     {
    135                     
    136                         if (map[a, b - 1] == 0)
    137                         {
    138                             map[a, b - 1] = 1;
    139                             map[a, b] = 0;
    140                             map[8, 8] = 3;
    141                             b--;
    142                         }
    143                         else if (map[a, b - 1] == 3)
    144                         {
    145                             map[a, b - 1] = 1;
    146                             map[a, b] = 0;
    147                             b--;
    148                         }
    149                         else if (map[a, b - 1] == 2 && map[a, b - 2] == 0)
    150                         {
    151                             map[a, b - 2] = 2;
    152                             map[a, b - 1] = 1;
    153                             map[a, b] = 0;
    154                             b--;
    155                         }
    156                         else if (map[a, b - 1] == 2 && map[a, b - 2] == 3)
    157                         {
    158                             map[a, b - 2] = 2;
    159                             map[a, b - 1] = 1;
    160                             map[a, b] = 0;
    161                             b--;
    162                         }
    163                         else
    164                         {
    165                             Console.WriteLine("a");
    166                         }
    167                     }
    168                 }
    169                 #endregion
    170                 #region 右键
    171                 else if (key.Key.ToString().ToLower() == "rightarrow")
    172                 {
    173                     if (b < 8)
    174                     {
    175                     
    176                         if (map[a, b + 1] == 0)
    177                         {
    178                             map[a, b + 1] = 1;
    179                             map[a, b] = 0;
    180                             map[8, 8] = 3;
    181                             b++;
    182                         }
    183                         else if (map[a, b + 1] == 3)
    184                         {
    185                             map[a, b + 1] = 1;
    186                             map[a, b] = 0;
    187                             b++;
    188                         }
    189                         else if (map[a, b + 1] == 2 && map[a, b + 2] == 0)
    190                         {
    191                             map[a, b + 2] = 2;
    192                             map[a, b + 1] = 1;
    193                             map[a, b] = 0;
    194                             b++;
    195                         }
    196                         else if (map[a, b + 1] == 2 && map[a, b + 2] == 3)
    197                         {
    198                             map[a, b + 2] = 2;
    199                             map[a, b + 1] = 1;
    200                             map[a, b] = 0;
    201                             b++;
    202                         }
    203                         else
    204                         {
    205                             Console.WriteLine("a");
    206                         }
    207                     }
    208                 }
    209                 #endregion
    210 
    211                 #region 刷新地图
    212                 Console.Clear();
    213                 for (int x = 0; x < 10; x++)
    214                 {
    215                     Console.ForegroundColor = ConsoleColor.White;
    216                     for (int y = 0; y < 10; y++)
    217                     {
    218                         if (map[x, y] == 8)
    219                         {
    220                             Console.Write("");
    221                         }
    222                         if (map[x, y] == 0)
    223                         {
    224                             Console.Write("  ");
    225                         }
    226                         if (map[x, y] == 1)
    227                         {
    228                             Console.Write("");
    229                         }
    230                         if (map[x, y] == 2)
    231                         {
    232                             Console.Write("");
    233                         }
    234                         if (map[x, y] == 3)
    235                         {
    236                             Console.ForegroundColor = ConsoleColor.Red;
    237                             Console.Write("");
    238                             Console.ForegroundColor = ConsoleColor.White;
    239                         }
    240                     }
    241                     Console.WriteLine();
    242                 }
    243                 #endregion                
    244             }
    245             Console.WriteLine("恭喜你!通关了!");
    246             Console.ReadLine();
  • 相关阅读:
    (笔记)ubuntu中取消文件夹或文件等右下解一把锁的标志的方法
    (笔记)Linux常用命令大全
    (笔记)arm-linux-gcc/ld/objcopy/objdump参数总结
    (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)
    (笔记)如何安装Arm-linux-gcc
    java application maven项目打自定义zip包
    几种简单的排序算法(JAVA)
    双色球机选算法java实现
    集合的子集输出(位运算方式)
    集合的子集输出(排列组合)
  • 原文地址:https://www.cnblogs.com/jia520110270/p/4649816.html
Copyright © 2020-2023  润新知