黑马程序员--一个划拳的小项目代码
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 猜拳游戏
{
class Program
{
static string Mode; //选择什么模式
static string Name; //人机对战角色名
static string[] Names = { "", "" }; //人人对战 第一个人和第二个人的名字初值都为空
static void Main(string[] args)
{
UI.StartUI();
int selectNum=SelectMode();
Console.WriteLine(Mode);
Role(selectNum);
GameStart();
Gaming(selectNum);
UI.EndUI();
Console.ReadKey();
}
/// <summary>
/// 选择模式方法 返回一个int值 1或者2
/// </summary>
static int SelectMode()
{
Console.WriteLine("请选择对战模式:");
Console.WriteLine("1.人机对战 2.玩家对战");
while (true)
{
Mode = Console.ReadLine();
if (Mode == "1")
{
Mode = "你选择的是--1.人机对战!";
return 1;
}
else if (Mode == "2")
{
Mode = "你选择的是--2.玩家对战!";
return 2;
}
else
{
Console.WriteLine("只能选择1或者2");
continue; //继续循环
}
}
}
/// <summary>
/// 选择角色方法 传入一个参数 1.是人机对战角色 2.是人人对战
/// </summary>
static void Role(int i)
{
if (i == 1)
{
#region 人机对战角色:
Console.WriteLine("请选择你的角色");
Console.WriteLine("1.灵儿 2.逍遥哥 3.月如");
while (true)
{
Name = Console.ReadLine();
if (Name == "1")
{
Name = "灵儿";
break;
}
else if (Name == "2")
{
Name = "逍遥哥";
break;
}
else if (Name == "3")
{
Name = "月如";
break; //跳出循环
}
else
{
Console.WriteLine("只能选择1或2或者3");
continue;
}
}
Console.WriteLine("你的角色是{0}", Name);
#endregion
}
else
{
#region 人人对战:
Console.WriteLine("请选择第一个人的角色");
Console.WriteLine("1.灵儿 2.逍遥哥 3.月如");
while (true)
{
Names[0] = Console.ReadLine();
if (Names[0] == "1")
{
Console.WriteLine("第一个人的角色是灵儿");
break;
}
else if (string.Equals(Names[0], "2"))
{
Console.WriteLine("第一个人的角色是逍遥哥");
break;
}
else if (string.Equals(Names[0], "3"))
{
Console.WriteLine("第一个人的角色是月如");
break; //跳出循环
}
else
{
Console.WriteLine("只能选择1或2或者3");
continue;
}
}
Console.WriteLine("请选择第二个人的角色");
Console.WriteLine("1.灵儿 2.逍遥哥 3.月如");
while (true)
{
Names[1] = Console.ReadLine();
if (Names[0] == Names[1]) //判断两个人的名字是否相同
{
Console.WriteLine("两个人的名字不能一样!,请重新输入");
}
else if (string.Equals(Names[1], "1"))
{
Names[1] = "灵儿";
break;
}
else if (string.Equals(Names[1], "2"))
{
Names[1] = "逍遥哥";
break;
}
else if (string.Equals(Names[1], "3"))
{
Names[1] = "月如";
break; //跳出循环
}
else
{
Console.WriteLine("只能选择1或2或者3");
continue;
}
}
Console.WriteLine("第二个人的角色是{0}", Names[1]);
#endregion
}
}
/// <summary>
/// 游戏是否开始
/// </summary>
static void GameStart()
{
while (true)
{
Console.WriteLine("要开始游戏?(y/n)");
string GameNum = Console.ReadLine();
if (GameNum == "y")
{
Console.Clear();
UI.StartUI();
Console.WriteLine("游戏开始......");
break;
}
else if (GameNum == "n")
{
Console.Clear();
UI.StartUI();
Console.WriteLine("等待开始游戏......");
Console.ReadKey();
continue;
}
else
{
Console.WriteLine("请选择y/n");
continue;
}
}
}
//进入两模式的判断 传入一个int值 1:人机对战 2:人人对战
static void Gaming(int j)
{
Console.WriteLine("1.布 2.剪子 3.石头");
if (j == 1)
{
#region 人机对战模式的判断:
int numP;
int numM;
int i = 0; //进行的次数
bool nextGame = true; //是否进行下一循环
while (nextGame)
{
#region 输入你出的拳
while (true)
{
try
{
Console.WriteLine("你先出拳......");
numP = Convert.ToInt32(Console.ReadLine());
switch (numP)
{
case 1:
Console.WriteLine("你出的是:布");
break;
case 2:
Console.WriteLine("你出的是:剪子");
break;
case 3:
Console.WriteLine("你出的是:石头");
break;
default:
Console.WriteLine("没有你输入的这项!");
continue;
}
break;
}
catch
{
Console.WriteLine("请输入正确的数字!");
continue;
}
}
#endregion
#region 机器随机出拳......
Random rM = new Random();
numM = rM.Next(1, 4); //随机生成1、2、3
Console.WriteLine("电脑正在出拳......");
switch (numM)
{
case 1:
Console.WriteLine("机器出的是:布");
break;
case 2:
Console.WriteLine("机器出的是:剪子");
break;
case 3:
Console.WriteLine("机器出的是:石头");
break;
}
#endregion
#region 判断谁赢
if (numP == numM)
{
Console.WriteLine("出的一样,平手!");
}
else if (numP == 1)
{
if (numM == 2)
{
Console.WriteLine("你输了");
}
else
Console.WriteLine("你赢了"); //机器出3
}
else if (numP == 2)
{
if (numM == 1)
{
Console.WriteLine("你赢了");
}
else
Console.WriteLine("你输了");//机器出3
}
else if (numP == 3)
{
if (numM == 1)
{
Console.WriteLine("你输了");
}
else
Console.WriteLine("你赢了");//机器出2
}
#endregion
i++;
#region 两次以上就清屏
if (i > 1)
{
Console.Write("输入任意键继续......");
Console.ReadKey(false);
Console.Clear();
UI.StartUI();
}
#endregion
#region 问用户是否进行下一轮?
while (true)
{
Console.WriteLine("对战次数:{0}", i);
Console.WriteLine("是否开始下一轮:(y/n)?");
string next = Console.ReadLine();
if (next == "y")
{
nextGame = true;
break;
}
else if (next == "n")
{
nextGame = false;
Console.WriteLine("游戏结束,按任意键退出......");
break;
}
else
{
Console.WriteLine("请输入正确的字符......");
continue;
}
}
#endregion
}
#endregion
}
else //j==2
{
#region 人人对战模式的判断:
int numFirst;
int numSecond;
int i = 0; //进行的次数
bool nextGame = true; //是否进行下一循环
while (nextGame)
{
#region 第一个人出拳
while (true)
{
try
{
Console.WriteLine("第一个人先出拳......");
numFirst = Convert.ToInt32(Console.ReadLine());
switch (numFirst)
{
case 1:
Console.WriteLine("第一个人出的是:布");
break;
case 2:
Console.WriteLine("第一个人出的是:剪子");
break;
case 3:
Console.WriteLine("第一个人出的是:石头");
break;
default:
Console.WriteLine("没有你输入的这项!");
continue;
}
break;
}
catch
{
Console.WriteLine("请输入正确的数字!");
continue;
}
}
#endregion
#region 第二个人出拳
while (true)
{
try
{
Console.WriteLine("第二个人再出拳......");
numSecond = Convert.ToInt32(Console.ReadLine());
switch (numSecond)
{
case 1:
Console.WriteLine("第二个人出的是:布");
break;
case 2:
Console.WriteLine("第二个人出的是:剪子");
break;
case 3:
Console.WriteLine("第二个人出的是:石头");
break;
default:
Console.WriteLine("没有你输入的这项!");
continue;
}
break;
}
catch
{
Console.WriteLine("请输入正确的数字!");
continue;
}
}
#endregion
#region 判断谁赢
if (numFirst == numSecond)
{
Console.WriteLine("出的一样,平手!");
}
else if (numFirst == 1)
{
if (numSecond == 2)
{
Console.WriteLine("第二个人赢了");
}
else
Console.WriteLine("第一个人赢了"); //第二个人出3
}
else if (numFirst == 2)
{
if (numSecond == 1)
{
Console.WriteLine("第一个人赢了");
}
else
Console.WriteLine("第二个人赢了");//第二个人出3
}
else if (numFirst == 3)
{
if (numSecond == 1)
{
Console.WriteLine("第二个人赢了");
}
else
Console.WriteLine("第一个人赢了");//第二个人出2
}
#endregion
i++;
#region 两次以上就清屏
if (i > 1)
{
Console.Write("输入任意键继续......");
Console.ReadKey(false);
Console.Clear();
UI.StartUI();
}
#endregion
#region 问用户是否进行下一轮?
while (true)
{
Console.WriteLine("对战次数:{0}", i);
Console.WriteLine("是否开始下一轮:(y/n)?");
string next = Console.ReadLine();
if (next == "y")
{
nextGame = true;
break;
}
else if (next == "n")
{
nextGame = false;
Console.WriteLine("游戏结束,按任意键退出......");
break;
}
else
{
Console.WriteLine("请输入正确的字符......");
continue;
}
}
#endregion
}
#endregion
}
}
}
#region 界面类
class UI
{
public static void StartUI()
{
Console.WriteLine("*************************欢 迎 入 游 戏 世 界*************************");
Console.WriteLine("\n");
Console.WriteLine(" **************************************");
Console.WriteLine(" **猜拳 开始**");
Console.WriteLine(" **************************************");
}
public static void EndUI()
{
Console.WriteLine("----------------------------------------------------------------------");
Console.WriteLine("*************************游 戏 结 束 !*************************");
Console.WriteLine("----------------------------------------------------------------------");
}
}
#endregion
}
谢谢浏览......
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
黑马程序员--一个划拳的小项目代码相关推荐
- 黑马程序员—一个美女程序员面试经历,不要羡慕姐,姐只是个传说!
文章来源:黑马程序员,黑马论坛 致学弟学妹们: 先自我介绍下,我是黑马15期一个很平凡,平凡的不能再平凡的女孩,很高兴刚刚毕业就找到一份自己满意的工作,8k.五险一金.餐补.公交补.电话补助, 项目分 ...
- 黑马程序员--一个美女程序员面试经历,不要羡慕姐,姐只是个传说!
文章来源:黑马程序员,黑马论坛 致学弟学妹们: 先自我介绍下,我是黑马 15 期一个很平凡,平凡的不能再平凡的女孩,很高兴刚刚毕业就找到一份自己满意的工作, 8k .五险一金.餐补.公交补.电话补助 ...
- python实训项目-黑马程序员上海校区Python21期Django项目实训
黑马程序员上海中心 月薪一万只是起点 关注 晚上十点,一名名Python学生正在酣畅淋漓地撸代码,手指不间断地敲击着键盘,发出机械而清脆的声音. 各个小组在经过为期4天的django项目小组开发,终于 ...
- 黑马程序员 一个程序员的自我修养
---------------------- <a href="http://www.itheima.com"target="blank">ASP. ...
- 每个程序员都可以入手的小项目创意大集合
我经常看有人发帖问关于软件项目创意点子的事,也看到了很多回帖,我自己也回了一些常见的软件项目创意.不过我觉得只列出三两个是远远不够的,因此就收集并这个软件项目创意列表,大家要找简单的编程软件项目创意学 ...
- 黑马程序员--一个初中没毕业的苦逼,到8.5k的程序人生,感谢黑马
乡亲们and同学们: 大家好! 貌似现在感谢信是每个黑马毕业后找到工作的首要任务了! 我是5月份进的黑马,是9期的, 其实感觉从我搭上飞机,落在北京之时 ...
- 黑马程序员HTML+CSS学成在线项目
/*美化首页*/ *{margin: 0;padding: 0;box-sizing: border-box; }li{list-style: none; } a{text-decoration: n ...
- 黑马程序员Android学习笔记——金山卫士项目——第三天
学习了,一定要总结,学习贵在永恒贵在用心. 学习内容: 1.绑定sim卡 2.检查手机是否更换sim卡 3.读取手机联系人 4.手机防盗原理 5.短信指令的广播 6.播放报警音乐 7.三种获取手机位置 ...
- 黑马程序员Android学习笔记——金山卫士项目——第二天
这几天学习了第二天的内容, 项目源代码:http://download.csdn.net/detail/itjavawfc/8241695 主要收获了: 1)自定义属性:一般用在组合控件中 2)自定义 ...
最新文章
- 为什么 MySQL 不推荐默认值为 null ?
- 求集合/字符串中的所有组合 (C语言)
- Use DynamicXElement to create xml
- python-day01
- 用C#实现C/S模式下软件自动在线升级[转载]
- elementPlus关闭弹窗,页面原先滚动条消失
- 数据源的配置和使用 视频下载
- python登录页面_Python:简单的登陆GUI界面
- LintCode解题目录
- 参考AWR中的Instance Activity Statistics 计算IOPS
- EVE-NG之dynamips镜像重新计算idle值
- Python中文手册——开胃菜
- 直线段的矢栅转换算法(DDA算法、中心画线算法、Bresenham算法)
- CWM模式(卡刷)教程
- JavaScript 技术篇 - js读取Excel文档里的内容实例演示,js如何读取excel指定单元格的内容,js将excel的内容转化为json字符串方法
- 阿里云域名动态解析dns,ddns php定时更新
- python 应用程序无法正常启动 000007b_“应用程序无法正常启动(oxc000007b)”解决方案...
- 初学AE影视后期的电脑硬件配置知识…
- 4. Python面向对象语法——类的构造函数
- OpenEuler 22.03 安装NextCloud