转载:飞行棋总结

版权声明:本文为CSDN博主「李晨璐-Notail」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lclcsdnblink/article/details/85944136
方法名 参数 返回值 功能
ShowUI 无 无 显示游戏表头
InitMap 无 无 将放置障碍的位置用数字列出,然后将显示同一种障碍位置的数组进行在赋值,1(为一种障碍),2(为一种障碍),3(为一种障碍)等等
DrawMap 无 无 画地图(横行,竖行)
DrawStringMap int pos string 画障碍和玩家A和玩家B的不同情况(包含颜色)
DrawMapLeftToRigh int left,int right 无 画横行的代码
ReadInt string msg,int min,int max int 踩到幸运轮盘进行选择
RowTouZi int playerPos 无 掷色子,根据不同的情况采取不同的措施
CheckPos 无 无 每一次变动位置都要判断是否出界
逻辑图

以下是掷色子的一个代码,比较有代表性,里面的逻辑和内容都已注释,可通过注释了解这一方法的运作模式。

public static void RowTouZi(int playerPos) //掷色子

    {
        //产生随机数,掷色子的随机数
        Random r = new Random();
        int num = r.Next(1, 7);
        //定义一个字符串变量
        string msg = "";

        //提示用户信息
        Console.WriteLine("{0}按任意键开始掷色子", PlayerNames[playerPos]);

        //不显示用户按下的任意键
        Console.ReadKey(true);  

        //根据不同的变量的值显示不同的情况
        Console.WriteLine("{0}掷出了{1}", PlayerNames[playerPos], num);
        //提示用户谁开始行动了
        Console.WriteLine("{0}按任意键开始行动...", PlayerNames[playerPos]);
        Console.ReadKey(true);

        //用户的坐标开始改变
        PlayerPos[playerPos] += num;

        //判断两个用户坐标可能出现的问题(重叠的问题)
        if (PlayerPos[playerPos] == PlayerPos[1- playerPos])   
        {
            msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
            PlayerPos[1- playerPos] -= 6;


        }
        else
        {
            //检查是否出界
            CheckPos();
            switch (Map[PlayerPos[playerPos]])
            {
                //没有障碍
                case 0:
                    msg ="行动完了";
                    break;
                    //踩到幸运轮盘
                case 1:
                    msg = string.Format("{0}走到了幸运轮盘,请选择1--交换位置,2---轰炸对方", PlayerNames[playerPos]);
                    
                    //进行选择,调用Readint方法,只可以让用户输入1或2;
                    int number = ReadInt(msg, 1, 2);
                    
                    //进行判断用户选择的哪个方案,进行执行相应的代码
                    if (number == 1)
                    {
                        //交换位置
                        int temp = 0;
                        temp = PlayerPos[playerPos];
                        temp = PlayerPos[playerPos];
                        PlayerPos[playerPos] = PlayerPos[1- playerPos];
                        PlayerPos[1- playerPos] = temp;
                        msg=string.Format("玩家{0}选择了玩家{1}交换位置", PlayerNames[playerPos], PlayerNames[1- playerPos]);

                    }
                    else
                    {

                        PlayerPos[1- playerPos] = 0;
                        msg = string.Format("玩家{0}选择了轰炸玩家{1}", PlayerNames[playerPos], PlayerNames[1- playerPos]);
                    }


                    break;
                //踩到地雷了
                case 2:


                    msg="踩到地雷了,后退6步";
                    //坐标后退6
                    PlayerPos[playerPos] -= 6;
                    //检查是否出界
                    CheckPos();
                    break;
                //踩到暂停了
                case 3:
                    
                    msg ="踩到暂停了";
                    //将flag数组中的false,改为true,执行true相应的代码
                    flag[playerPos] = true;
                    break;
                //踩到了时空隧道
                case 4:

                    msg = string.Format("恭喜你,踩到时空隧道,前进10步");
                    //坐标前进10
                    PlayerPos[playerPos] += 10;
                    //判断是否出界
                    CheckPos();    
                    break;
            }
        }
        Console.Clear();   //清除掉原来的地图
        DrawMap();          //在画一边地图
        
        //因为只有一种情况出现,所以msg的值经过判断之后也是只有一种,然后将其内容显示出来
        Console.WriteLine(msg); 
    }

小知识总结:

可以通过判断,显示内容

case 0:
msg=string.Format(“玩家{0}踩到了玩家{1},玩家{2}退6格”, PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
case 1:
msg = string.Format("{0}走到了幸运轮盘,请选择1–交换位置,2—轰炸对方", PlayerNames[playerPos]);

Console.WriteLine(msg);

文章最后发布于: 2019-01-06 20:13:23

————————————————
版权声明:本文为CSDN博主「李晨璐-Notail」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lclcsdnblink/article/details/85944136

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值