C#实现飞行棋小游戏
作者:李晨璐-blink 发布时间:2022-10-28 22:00:02
标签:C#,飞行棋
本文实例为大家分享了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();
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);
来源:https://blog.csdn.net/lclcsdnblink/article/details/85944136


猜你喜欢
- QTableView是Qt中用来把数据集以表格形式提供给用户的一个控件QTableView类实现表格视图,QTableView的数据由继承Q
- 网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式。jar到war修改步骤pom文
- 一、ArrayList简介在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下:ArrayList底层是一段连
- 一)Document介绍API来源:在JDK中javax.xml.*包下使用场景:1、需要知道XML文档所有结构2、需要把文档一些元素排序3
- 本文实例讲述了C#动态创建button的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.C
- 引言本文我们来分析NameServer相关代码,在正式分析源码前,我们先来回忆下NameServer的功能:NameServer是一个非常简
- 目录(1)class常量池(2)运行时常量池(3)基本类型包装类常量池(4)字符串常量池总结java中有几种不同的常量池,以下的内容是对ja
- 搭建个SSM框架居然花费了我好长时间!特此记录!需要准备的环境:idea 2017.1jdk1.8Maven 3.3.9请提前将idea与M
- 记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间。随着Android Wear
- 实现方案:我们直接参考实例代码:private String pattern = "((http|ftp
- 光流的概念是由一个叫Gibson的哥们在1950年提出来的。它描述是空间运动物体在观察成像平面上的像素运动的瞬时速度,利用图像序列中像素在时
- Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。被传递的对象需要先实现序列化,
- 方式一:例如:”0000123” (字符串必须全为数字)处理过程:String tempStr = "0000123";
- ThreadLocal 看名字 就可以看出一点头绪来,线程本地。来看一下java对他的描述:该类提供线程本地变量。这些变量与它们的正常对应变
- 在多线程处理问题时,无法通过@Autowired注入bean,报空指针异常,在线程中为了线程安全,是防注入的,如果要用到这个类,只能从bea
- 使用官方的刷新控件SwipeRefreshLayout来实现下拉刷新,当RecyclerView滑到底部实现下拉加载(进度条效果用Recyc
- MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册.只需在代码中通过对类与方法的注解, 即可完成注册.
- 1.简单计算器使用AWT编程,FrameNORTH区域放置TextField组件,将指定为4行5列GridLayout布局管理器的Panel
- 前言说实话当第一次看到这个需求的时候,第一反应就是Canvas只有drawLine方法,并没有drawDashLine方法啊!这咋整啊,难道
- Java原生SPI面向接口编程+策略模式实现建立接口Robotpublic interface Robot { /