博客
关于我
飞行棋总结
阅读量:118 次
发布时间:2019-02-26

本文共 4127 字,大约阅读时间需要 13 分钟。

方法名 参数 返回值 功能
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);

 

转载地址:http://ohtf.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(63)——Mysql数据库架构方案选择与分析
查看>>
Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
查看>>
Mysql学习总结(65)——项目实战中常用SQL实践总结
查看>>
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(67)——MYSQL慢查询日志
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>
Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
查看>>
Mysql学习总结(6)——MySql之ALTER命令用法详细解读
查看>>
Mysql学习总结(70)——MySQL 优化实施方案
查看>>
Mysql学习总结(71)——MySQL 重复记录查询与删除总结
查看>>
Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
查看>>
Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
查看>>
Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
查看>>
Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
查看>>
Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
查看>>
Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
查看>>
Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
查看>>
Mysql学习总结(78)——MySQL各版本差异整理
查看>>
Mysql学习总结(79)——MySQL常用函数总结
查看>>
Mysql学习总结(7)——MySql索引原理与使用大全
查看>>