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

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(http://www.my516.com);
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);
---------------------

C#飞行棋总结的更多相关文章

  1. C#基础:飞行棋游戏

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. C#小程序呢飞行棋设计分析

    C#小程序飞行棋,程序效果图 1.设计分析 这个程序界面大致分为四部分: ① 最上面游戏名字界面 ②信息提示区 ③游戏界面区 ④游戏操作提示区 2.分区设计实现 一.游戏界面显示区,由于只需要显示出图 ...

  3. BZOJ-1800 飞行棋 数学+乱搞

    这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 So ...

  4. bzoj 1800: [Ahoi2009]fly 飞行棋 暴力

    1800: [Ahoi2009]fly 飞行棋 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...

  5. 骑士飞行棋 C#代码详解

    最近看见一个骑士飞行棋的小游戏代码,感觉这个代码中将大多数C#的基础知识都运用到了,是一个新手检验学习成果的有效方法,特此将这个代码整理一遍.这是一个控制台程序.这是代码下载地址,代码中的注释非常详细 ...

  6. BZOJ 1800: [Ahoi2009]fly 飞行棋( 枚举 )

    O(N2)算出有x条直径然后答案就是x(x-1)/2...这个数据范围是闹哪样! ----------------------------------------------------------- ...

  7. IT第十一天、第十二天、第十三天 - 数组的应用、飞行棋游戏的编写和总结

    NIIT第十一天 上午 多维数组 1.数组是引用数据类型 排序 1.冒泡排序法 2.类冒泡排序法 下午 飞行棋游戏 1.项目策划 2.项目规则确认 3.项目模块确认 晚上 1.飞行棋游戏,项目框架的编 ...

  8. 浙江工商大学15年校赛E题 无邪的飞行棋 【经典背包】

    无邪的飞行棋 Time Limit 1s Memory Limit 64KB Judge Program Standard Ratio(Solve/Submit) 15.38%(4/26) Descr ...

  9. 编写一个飞行棋项目(C#)遇到几个问题:

    在写程序中遇到如下问题:如果有人知道,请您一定要指点迷津.小白. 1.在运行暂停功能时,这个暂停功能可以实现,但是无法显示提示信息. case 3: Console.Clear(); Program. ...

  10. BZOJ 1800: [Ahoi2009]fly 飞行棋【思维题,n^4大暴力】

    1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1689  Solved: 1335[Submit][St ...

随机推荐

  1. vue之安装配置

    直接上图

  2. 开发微信小程序心得

    元旦过后,根据公司的项目要求,项目组开始集体研究小程序,在这想谈点个人开发小程序心得,首先就是需要看小程序的文档,如同很多框架一样,不可能一上来就能动手敲代码(大神除外),其次就是不能一直单纯的看,因 ...

  3. Watir: Watir webdriver对JS 弹出框的操作现在非常简单。

    以下代码支持Firefox,IE,Chrome require 'watir-webdriver' #require "watir-webdriver/extensions/alerts&q ...

  4. Sublime Text3配置自动联想python

    1.安装Package Control 通过快捷键 ctrl+` 或者 View > Show Console 打开控制台,然后粘贴相应的 Python 安装代码 Sublime Text 3  ...

  5. std::unique

    类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素. 该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值 ...

  6. UVaLive 3401 Colored Cubes (暴力)

    题意:给定n个立方体,让你重新涂尽量少的面,使得所有立方体都相同. 析:暴力求出每一种姿态,然后枚举每一种立方体的姿态,求出最少值. 代码如下: #pragma comment(linker, &qu ...

  7. SimpleDateFormat并发隐患及其解决

    此文已由作者姚太行授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. SimpleDateFormat被大量使用于处理时间格式化过程,由于该类在创建时会指定一个pattern用于 ...

  8. 3dmath复习随笔

    左手坐标系与右手坐标系 旋转正方向,下图是右手系,左手系同理 向量 点乘: 叉乘: dx是左手系,使用行向量,vABC,乘矩阵用左乘 opengl是右手系,使用列向量,CBAv,乘矩阵用右乘 u3d貌 ...

  9. poj 3294 Life Forms【SA+二分】

    先加入未出现字符间隔把n个串连起来,注意如果串开的char这个间隔字符不能溢出,把这个接起来的串跑SA,二分答案k,判断的时候把连续一段he>=k的分成一组,然后看着一段是否包含了>n/2 ...

  10. iOS [CIContext initWithOptions:]: unrecognized selector sent to instance 模拟器 iOS 8.4

    在模拟器(iPhone 4s,iOS 8.4)中运行应用时, 应用crash在了使用CIContext(options:nil) 这个API的一个纯Swift第三方库. StackOverFlow的解 ...