黑马程序员--一个划拳的小项目代码
来源:互联网 发布:java写99乘法表 编辑:程序博客网 时间:2024/04/23 20:00
---------------------- 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培训、期待与您交流! ----------------------
- 黑马程序员--一个划拳的小项目代码
- 黑马程序员__小项目编写计算器代码!
- 黑马程序员 用OC实现的一个计算文件夹下代码行数的小程序
- mc9rs08的一个小项目和代码
- 黑马程序员——一个面对对象的小实例
- 黑马程序员 发布一个虚拟复印机的小程序
- 黑马程序员--代码块小知识总结
- 黑马程序员 一个程序员的自我修养
- 黑马程序员_一个小程序的发现-关于#define与C的内存
- 黑马程序员——一个最基本的小程序以及自己对Java的认识
- 黑马程序员_一个小程序的发现-关于#define与C的内存
- 黑马程序员_一个小程序的发现-关于#define与C的内存
- 黑马程序员--写一个自己和自己聊天的小程序
- 黑马程序员--学习笔记--一个字符串、数组、函数综合运用的小练习
- 黑马程序员-做一个像文本档一样的小软件
- 黑马程序员:通过一个小例子了解java内部类和外部类的基础知识
- 黑马程序员:一个小应用引出的模板设计方法介绍
- 黑马程序员——Java中的一个关于参数传递的小问题
- 该醒醒了
- MySQL 环境变量的配置详细说明(转)
- WebService系列博客{九}[JAXBContext---java和xml的互相转换]
- 关于电源的功率(tips)
- Linux 2440 LCD 控制器
- 黑马程序员--一个划拳的小项目代码
- frameworks中的JNI文件路径
- java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException
- CDocument Class
- 高精度数值运算C++版本
- win7系统mysql环境变量配置
- linux设备和驱动加载的先后顺序
- 计算机图形学的学习的书籍推荐
- 从PL/SQL调用web services实例