C#飞行棋总结
以下是掷色子的一个代码,比较有代表性,里面的逻辑和内容都已注释,可通过注释了解这一方法的运作模式。
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#飞行棋总结的更多相关文章
- C#基础:飞行棋游戏
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C#小程序呢飞行棋设计分析
C#小程序飞行棋,程序效果图 1.设计分析 这个程序界面大致分为四部分: ① 最上面游戏名字界面 ②信息提示区 ③游戏界面区 ④游戏操作提示区 2.分区设计实现 一.游戏界面显示区,由于只需要显示出图 ...
- BZOJ-1800 飞行棋 数学+乱搞
这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 So ...
- bzoj 1800: [Ahoi2009]fly 飞行棋 暴力
1800: [Ahoi2009]fly 飞行棋 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...
- 骑士飞行棋 C#代码详解
最近看见一个骑士飞行棋的小游戏代码,感觉这个代码中将大多数C#的基础知识都运用到了,是一个新手检验学习成果的有效方法,特此将这个代码整理一遍.这是一个控制台程序.这是代码下载地址,代码中的注释非常详细 ...
- BZOJ 1800: [Ahoi2009]fly 飞行棋( 枚举 )
O(N2)算出有x条直径然后答案就是x(x-1)/2...这个数据范围是闹哪样! ----------------------------------------------------------- ...
- IT第十一天、第十二天、第十三天 - 数组的应用、飞行棋游戏的编写和总结
NIIT第十一天 上午 多维数组 1.数组是引用数据类型 排序 1.冒泡排序法 2.类冒泡排序法 下午 飞行棋游戏 1.项目策划 2.项目规则确认 3.项目模块确认 晚上 1.飞行棋游戏,项目框架的编 ...
- 浙江工商大学15年校赛E题 无邪的飞行棋 【经典背包】
无邪的飞行棋 Time Limit 1s Memory Limit 64KB Judge Program Standard Ratio(Solve/Submit) 15.38%(4/26) Descr ...
- 编写一个飞行棋项目(C#)遇到几个问题:
在写程序中遇到如下问题:如果有人知道,请您一定要指点迷津.小白. 1.在运行暂停功能时,这个暂停功能可以实现,但是无法显示提示信息. case 3: Console.Clear(); Program. ...
- BZOJ 1800: [Ahoi2009]fly 飞行棋【思维题,n^4大暴力】
1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1689 Solved: 1335[Submit][St ...
随机推荐
- SPOJ:Lost and survived(multiset+并查集)
On September 22, 2004, Oceanic Flight 815 crashed on a mysterious island somewhere in the pacific. T ...
- 当你触摸并按住触摸目标时候,禁止系统默认菜单-webkit-touch-call
当你触摸并按住触摸目标时候,禁止或显示系统默认菜单. -webkit-touch-callout 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS ...
- bzoj1038&&500AC!
序列dp 先开始想了一个类似区间dp的东西...少了一维 然后发现似乎不太对,因为女生的最大差和男生的最大差并不相等 dp[i][j][x][y]表示当前有i个人,j个男生,男生和女生的后缀最大差是x ...
- UI:一个IOS工程的标准框架
来自cocachina 的写法 参考 声明:本文来自互联网,非本人原创,仅供参考学习使用. 我的iOS工程结构 接下来,我就简单介绍下我做iOS项目时使用的工程结构.首先要说的是,这只是我的工程结构, ...
- Oracle的db.properties文件
转自:https://blog.csdn.net/lssqk/article/details/79133829
- hdu 1398 Square Coins【生成函数】
预处理出完全平方数就和普通的生成函数解整数拆分一样了 #include<iostream> #include<cstdio> using namespace std; cons ...
- 【杂谈】5G有啥用?跟咱有关系么?关注那玩意儿干啥?
用处大了 有啥用? 云计算啊,你看看你电脑都卡成啥了? 既然5G速度赶上本地读取,那就相当于把硬盘放云端没问题了.那么,看看自己硬盘里都有啥,5G的用处或许就能一点点浮现出来了. ——请不要急着打开一 ...
- Nginx(四) nginx+consul+upasync 在ubnutu18带桌面系统 实现动态负载均衡
1.1 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化 ...
- 基于Tcp协议的上传下载
目录格式: 构建此目录就可随意使用! client端 import socket import sys import os import json import struct sk = socket. ...
- 18.3.2从Class上获取信息(属性)
package d18_3_1; import java.lang.reflect.Field; import java.util.Arrays; /** * 获取Class对应类所包含的属性的四个方 ...