zoukankan      html  css  js  c++  java
  • C# 推箱子游戏&对战游戏

    推箱子游戏提纲,只有向右向上的操作,向左向下同理,后期需完善。

      1 namespace 推箱子
      2 {
      3     class Program
      4     {
      5         static void Main(string[] args)
      6         {
      7             //小人初始位置的索引
      8             int x = 1;
      9             int y = 8;
     10 
     11             int end1x = 7;
     12             int end1y = 1;
     13 
     14             #region 画地图
     15             string[,] map = new string[10, 10] {
     16             {" "," ","","","","","","","",""},
     17             {" "," ",""," "," "," "," ",""," ",""},
     18             {"","",""," "," "," "," "," "," ",""},
     19             {""," "," "," "," "," "," "," "," ",""},
     20             {""," "," "," "," "," "," "," "," ",""},
     21             {""," "," ",""," "," "," "," "," ",""},
     22             {""," "," "," "," "," ","","","",""},
     23             {""," "," "," "," "," ",""," "," "," "},
     24             {"",""," "," "," "," ",""," "," "," "},
     25             {"","","","","","",""," "," "," "},
     26             };
     27             #endregion
     28 
     29             while (true)
     30             {
     31                 Console.Clear();//清空掉所有已经打印的内容
     32                 #region 打印地图
     33                 for (int i = 0; i < 10; i++)
     34                 {
     35                     for (int j = 0; j < 10; j++)
     36                     {
     37                         Console.Write(map[i, j]);
     38                     }
     39                     Console.WriteLine();
     40                 }
     41                 #endregion
     42 
     43                 if (map[end1y, end1x] == "")
     44                 {
     45                     Console.WriteLine("恭喜过关");
     46                     break;
     47                 }
     48 
     49                 ConsoleKeyInfo key = Console.ReadKey();
     50                 //向上
     51                 if (key.Key.ToString() == "UpArrow")
     52                 {
     53                     //小人当前的位置与要去的下一步位置内容互换
     54                     if (map[y - 1, x] == "")//如果小人的下一步是墙,什么都不干
     55                     {
     56                     }
     57                     else //小人的下一步不是墙
     58                     {
     59                         if (map[y - 1, x] == "" && map[y - 2, x] != "")
     60                         {
     61                             if (map[y - 2, x] == "")
     62                             {
     63                                 //箱子的下一步是目标点,让箱子填满目标点
     64                                 map[y - 2, x] = "";
     65                                 map[y - 1, x] = " ";
     66                                 string temp = map[y, x];
     67                                 map[y, x] = map[y - 1, x];
     68                                 map[y - 1, x] = temp;
     69                                 y--;//真正改变小人的位置
     70                             }
     71                             else if (map[y - 2, x] == " ")
     72                             {
     73                                 //推着箱子走,箱子的下一步是空地才可以走
     74                                 //先让箱子和箱子的下一步互换
     75                                 string temp = map[y - 1, x];
     76                                 map[y - 1, x] = map[y - 2, x];
     77                                 map[y - 2, x] = temp;
     78                                 temp = map[y, x];
     79                                 map[y, x] = map[y - 1, x];
     80                                 map[y - 1, x] = temp;
     81                                 y--;//真正改变小人的位置
     82                             }
     83                         }
     84                         else if (map[y - 1, x] == " ")
     85                         {
     86                             //正常行走
     87                             string temp = map[y, x];
     88                             map[y, x] = map[y - 1, x];
     89                             map[y - 1, x] = temp;
     90                             y--;//真正改变小人的位置
     91                         }
     92                     }
     93                 }
     94                 //向下
     95                 else if (key.Key.ToString() == "DownArrow")
     96                 {
     97                     string temp = map[y, x];
     98                     map[y, x] = map[y + 1, x];
     99                     map[y + 1, x] = temp;
    100                     y++;//真正改变小人的位置
    101                 }
    102                 //向左
    103                 else if (key.Key.ToString() == "LeftArrow")
    104                 {
    105                     string temp = map[y, x];
    106                     map[y, x] = map[y, x - 1];
    107                     map[y, x - 1] = temp;
    108                     x--;//真正改变小人的位置
    109                 }
    110                 //向右
    111                 else if (key.Key.ToString() == "RightArrow")
    112                 {
    113                     //小人当前的位置与要去的下一步位置内容互换
    114                     if (map[y, x + 1] == "")//如果小人的下一步是墙,什么都不干
    115                     {
    116                     }
    117                     else //小人的下一步不是墙
    118                     {
    119                         if (map[y, x + 1] == "" && map[y, x + 2] != "")
    120                         {
    121                             //先让箱子和箱子的下一步互换
    122                             string temp = map[y, x + 1];
    123                             map[y, x + 1] = map[y, x + 2];
    124                             map[y, x + 2] = temp;
    125                             temp = map[y, x];
    126                             map[y, x] = map[y, x + 1];
    127                             map[y, x + 1] = temp;
    128                             x++;//真正改变小人的位置
    129                         }
    130                         else if (map[y, x + 1] == " ")
    131                         {
    132                             //正常行走
    133                             string temp = map[y, x];
    134                             map[y, x] = map[y, x + 1];
    135                             map[y, x + 1] = temp;
    136                             x++;//真正改变小人的位置
    137                         }
    138                     }
    139                 }
    140             }
    141 
    142 
    143             //是否胜利
    144 
    145             Console.ReadKey();
    146             Console.ReadKey();
    147         }
    148     }
    149 }

     对战游戏提纲,简单从操作:

      1 namespace 对战游戏2._0
      2 {
      3     class Program
      4     {
      5         public struct ZhanShi
      6         {
      7             public string MingZi;
      8             public int GongJi;
      9             public int XueLiang;
     10         }
     11 
     12         public struct JiNeng
     13         {
     14             public string MingCheng;
     15             public double ShangHai;
     16         }
     17 
     18         public struct WuQi
     19         {
     20             public string MingCheng;
     21             public int GongJiLi;
     22         }
     23 
     24 
     25         static void Main(string[] args)
     26         {
     27             Random ran = new Random();
     28 
     29             #region 技能生成
     30             ArrayList JiNengMen = new ArrayList();
     31             JiNeng jn1 = new JiNeng();
     32             jn1.MingCheng = "降龙十八掌";
     33             jn1.ShangHai = 2;
     34             JiNeng jn2 = new JiNeng();
     35             jn2.MingCheng = "佛山无影脚";
     36             jn2.ShangHai = 1.5;
     37             JiNeng jn3 = new JiNeng();
     38             jn3.MingCheng = "如来神掌";
     39             jn3.ShangHai = 3;
     40             JiNengMen.Add(jn1);
     41             JiNengMen.Add(jn2);
     42             JiNengMen.Add(jn3);
     43             #endregion
     44 
     45             #region 生成武器库
     46             WuQi wq1 = new WuQi();
     47             wq1.MingCheng = "树枝";
     48             wq1.GongJiLi = 50;
     49             WuQi wq2 = new WuQi();
     50             wq2.MingCheng = "菜刀";
     51             wq2.GongJiLi = 200;
     52             WuQi wq3 = new WuQi();
     53             wq3.MingCheng = "圣剑";
     54             wq3.GongJiLi = 500;
     55             #endregion
     56 
     57             #region 创建战士
     58             ZhanShi zs1 = new ZhanShi();
     59             Console.Write("请输入第一个战士的姓名:");
     60             zs1.MingZi = Console.ReadLine();
     61             zs1.GongJi = ran.Next(100, 201);
     62             zs1.XueLiang = ran.Next(2000, 4000);
     63             //100  10以下 圣剑  11~40 菜刀  41~90 树枝  91~100啥也没有
     64             int HDWQ = ran.Next(1, 101);
     65             if (HDWQ <= 10)
     66             {
     67                 Console.WriteLine(zs1.MingZi + "获得了武器:" + wq3.MingCheng);
     68                 zs1.GongJi += wq3.GongJiLi;
     69             }
     70             else if (HDWQ <= 40)
     71             {
     72                 Console.WriteLine(zs1.MingZi + "获得了武器:" + wq2.MingCheng);
     73                 zs1.GongJi += wq2.GongJiLi;
     74             }
     75             else if (HDWQ <= 90)
     76             {
     77                 Console.WriteLine(zs1.MingZi + "获得了武器:" + wq1.MingCheng);
     78                 zs1.GongJi += wq1.GongJiLi;
     79             }
     80             else
     81             {
     82                 Console.WriteLine("嘿嘿嘿,啥也木有哇!");
     83             }
     84             Console.WriteLine("第一个战士:" + zs1.MingZi + ",攻击力:" + zs1.GongJi + ",血量:" + zs1.XueLiang);
     85 
     86             ZhanShi zs2 = new ZhanShi();
     87             Console.Write("请输入第二个战士的姓名:");
     88             zs2.MingZi = Console.ReadLine();
     89             zs2.GongJi = ran.Next(100, 201);
     90             zs2.XueLiang = ran.Next(500, 2000);
     91 
     92             HDWQ = ran.Next(1, 101);
     93             if (HDWQ <= 10)
     94             {
     95                 Console.WriteLine(zs2.MingZi + "获得了武器:" + wq3.MingCheng);
     96                 zs2.GongJi += wq3.GongJiLi;
     97             }
     98             else if (HDWQ <= 40)
     99             {
    100                 Console.WriteLine(zs2.MingZi + "获得了武器:" + wq2.MingCheng);
    101                 zs2.GongJi += wq2.GongJiLi;
    102             }
    103             else if (HDWQ <= 90)
    104             {
    105                 Console.WriteLine(zs2.MingZi + "获得了武器:" + wq1.MingCheng);
    106                 zs2.GongJi += wq1.GongJiLi;
    107             }
    108             else
    109             {
    110                 Console.WriteLine("嘿嘿嘿,啥也木有哇!");
    111             }
    112 
    113 
    114             Console.WriteLine("第二个战士:" + zs2.MingZi + ",攻击力:" + zs2.GongJi + ",血量:" + zs2.XueLiang);
    115             #endregion
    116 
    117             Console.WriteLine("请按任意键开始战斗!!!");
    118             Console.ReadKey();
    119 
    120             Console.ForegroundColor = ConsoleColor.White;
    121             //对打
    122             while (true)
    123             {
    124                 int ShangHai = 0;
    125 
    126                 #region 第一个战士攻击
    127                 int SYJN = ran.Next(1, 11);
    128                 if (SYJN <= 3)
    129                 {
    130                     JiNeng jn = (JiNeng)JiNengMen[ran.Next(0, JiNengMen.Count)];
    131                     ShangHai = Convert.ToInt32(Program.PuTongGongJi(zs1.GongJi) * jn.ShangHai);
    132                     zs2.XueLiang = zs2.XueLiang - ShangHai;
    133 
    134                     Console.ForegroundColor = ConsoleColor.Green;
    135                     Console.WriteLine(zs1.MingZi + "" + zs2.MingZi + " 发动了☆☆☆" + jn.MingCheng + "☆☆☆,造成了" + ShangHai + "点伤害, " + zs2.MingZi + " 剩余" + zs2.XueLiang + "点血量!");
    136                     Console.WriteLine();
    137                     System.Threading.Thread.Sleep(1000);
    138                 }
    139                 else
    140                 {
    141                     Console.ForegroundColor = ConsoleColor.White;
    142                     ShangHai = Program.PuTongGongJi(zs1.GongJi);
    143                     zs2.XueLiang = zs2.XueLiang - ShangHai;
    144                     Console.WriteLine(zs1.MingZi + "" + zs2.MingZi + " 发动了普通攻击,造成了" + ShangHai + "点伤害, " + zs2.MingZi + " 剩余" + zs2.XueLiang + "点血量!");
    145                     Console.WriteLine();
    146                     System.Threading.Thread.Sleep(1000);
    147                 }
    148                 #endregion
    149 
    150                 #region 第二个战士攻击
    151                 SYJN = ran.Next(1, 11);
    152                 if (SYJN <= 3)
    153                 {
    154                     JiNeng jn = (JiNeng)JiNengMen[ran.Next(0, JiNengMen.Count)];
    155                     ShangHai = Convert.ToInt32(Program.PuTongGongJi(zs2.GongJi) * jn.ShangHai);
    156                     zs1.XueLiang = zs1.XueLiang - ShangHai;
    157 
    158                     Console.ForegroundColor = ConsoleColor.Yellow;
    159                     Console.WriteLine(zs2.MingZi + "" + zs1.MingZi + " 发动了☆☆☆" + jn.MingCheng + "☆☆☆,造成了" + ShangHai + "点伤害, " + zs1.MingZi + " 剩余" + zs1.XueLiang + "点血量!");
    160                     Console.WriteLine();
    161                     System.Threading.Thread.Sleep(1000);
    162                 }
    163                 else
    164                 {
    165                     Console.ForegroundColor = ConsoleColor.White;
    166                     ShangHai = Program.PuTongGongJi(zs2.GongJi);
    167                     zs1.XueLiang = zs1.XueLiang - ShangHai;
    168 
    169                     Console.WriteLine(zs2.MingZi + "" + zs1.MingZi + " 发动了普通攻击,造成了" + ShangHai + "点伤害, " + zs1.MingZi + " 剩余" + zs1.XueLiang + "点血量!");
    170                     Console.WriteLine();
    171 
    172                     System.Threading.Thread.Sleep(1000);
    173                 }
    174                 #endregion
    175 
    176                 #region 判断胜负
    177                 if (zs1.XueLiang <= 0 || zs2.XueLiang <= 0)
    178                 {
    179                     if (zs1.XueLiang <= 0 && zs2.XueLiang <= 0)
    180                     {
    181                         Console.WriteLine("二位同归于尽了!!!");
    182                     }
    183                     else
    184                     {
    185                         if (zs1.XueLiang <= 0)
    186                         {
    187                             Console.WriteLine(zs2.MingZi + "获得了最终胜利!!!");
    188                         }
    189                         else
    190                         {
    191                             Console.WriteLine(zs1.MingZi + "获得了最终胜利!!!");
    192                         }
    193                     }
    194                     break;
    195                 }
    196                 #endregion
    197             }
    198 
    199             Console.ReadKey();
    200         }
    201 
    202         /// <summary>
    203         /// 生成普通攻击的浮动攻击值
    204         /// </summary>
    205         /// <param name="a">普通攻击的基础攻击力</param>
    206         /// <returns></returns>
    207         public static int PuTongGongJi(int a)
    208         {
    209             int cc = 0;
    210             Random r = new Random();
    211             int aa = r.Next(0, 141);
    212             int bb = r.Next(0, 2);
    213             if (bb == 0)
    214             {
    215                 cc = a + aa;
    216             }
    217             else
    218             {
    219                 cc = a - aa;
    220             }
    221             return cc;
    222         }
    223     }
    224 }
  • 相关阅读:
    打开服务器的文档
    笔记
    centos6.5 编译openssl-1.1.1k
    搭建自己的低代码平台
    防火墙ACL配置自动化
    防火墙ACL配置自动化
    【树莓派】读取新大陆(newland)USB条码扫描器数据
    解决eclipse或sts闪退的办法(转)
    浅谈数据库迁移类项目功能测试的基本思路
    ATM取款机优化需求的用例设计
  • 原文地址:https://www.cnblogs.com/xinchenhui/p/7801654.html
Copyright © 2011-2022 走看看