程序设计之七:“石头剪刀布”游戏(C#)
来源:互联网 发布:数组和集合的区别 编辑:程序博客网 时间:2024/05/29 08:54
这个游戏,相信大家小时候都玩过吧,但又没有想过和电脑来几局呢?在这里规则我就不多说了,程序的思路如下:
首先定义一个类Game,存储与本游戏相关的信息,包括:玩家和电脑的答案,玩家和电脑的得分,并能够判断每一局输赢状况和总的输赢。在主函数中实例化对象后,首先由电脑先出,这里是通过一个Random()函数,生成1—3之间的随机数。其中,1代表石头,2代表剪刀,3代表布。然后,玩家依上述规则给出答案,最后由电脑判断输赢。
本游戏使用C#编写,并在Microsoft Visual C# Express 2010和Microsoft .Net Framework 4.0环境下编译通过,当然,本程序可能仍含有错误,欢迎指正。
程序运行效果如下:
以下是我的程序:
//程序清单如下://////////////////////////////////////////////////////////////////////////////作者:钩鸿踏月,2011年6月27日///程序版本号:1.0.2011.0627///////////////////////////////////////////////////////////////////////////using System;namespace game{ public class Game//定义游戏类,存储与本游戏相关的信息 { private int computerAnswer;//声明私有变量,用于存储电脑答案 private int playerAnswer;//声明私有变量,用于存储玩家答案 private int computerResult = 0;//声明私有变量,用于存储电脑得分 private int playerResult = 0;//声明私有变量,用于存储玩家得分 public int ComputerAnswer//定义属性,存取私有变量computerAnswer的值 { get { return computerAnswer; } set { computerAnswer = Convert.ToChar(value); } } public int PlayerAnswer//定义属性,存取私有变量playerAnswer的值 { get { return playerAnswer; } set { playerAnswer = Convert.ToChar(value); } } public void Result()//定义函数,记录每一局的得分 { if (playerAnswer == computerAnswer) Console.WriteLine("这一局您和电脑达成平局!"); else { switch (playerAnswer) { case 1://玩家:石头 { if (computerAnswer == 2)//电脑:剪刀 playerResult++; else//电脑:布 computerResult++; Console.WriteLine(computerAnswer == 2 ? "这一局你赢了!" : "这一局你输了!"); break; } case 2://玩家:剪刀 { if (computerAnswer == 3)//电脑:布 playerResult++; else//电脑:石头 computerResult++; Console.WriteLine(computerAnswer == 3 ? "这一局你赢了!" : "这一局你输了!"); break; } case 3://玩家:布 { if (computerAnswer == 1)//电脑:石头 playerResult++; else//电脑:剪刀 computerResult++; Console.WriteLine(computerAnswer == 1 ? "这一局你赢了!" : "这一局你输了!"); break; } default://其余输入 Console.WriteLine("您的输入有误,本回合无效!"); break; } } } public void TheEnd()//定义函数,判断最终结果 { if (playerAnswer > computerAnswer)//玩家赢 Console.WriteLine("恭喜,你赢了!"); else { if (playerAnswer < computerAnswer)//玩家输 Console.WriteLine("你输给了电脑!"); else//平局 Console.WriteLine("你和电脑达成平局。"); } } } class Program { static void Main(string[] args) { int Count = 0;//定义变量,记录游戏次数 int ReadKey;//定义变量,记录数据 bool Flag;//定义变量,1表示继续游戏,0表示退出游戏 Game Game1 = new Game();//实例化Game类 Console.WriteLine("程序版本号:1.0,作者:钩鸿踏月,2011年6月27日"); Console.WriteLine("欢迎进入“剪刀石头布”游戏,请输入1继续,输入其余则退出游戏。"); L1: try//当输入为数字时,执行 { ReadKey = int.Parse(Console.ReadLine()); } catch//输入为其它时,跳转至L1处,重新输入 { Console.WriteLine("您的输入不合法,请重新输入。"); goto L1; } if (ReadKey == 1)//继续游戏 { Flag = true; L2: Console.WriteLine("请输入您想玩的次数:");//输入次数 try//当输入为数字时,执行 { Count = int.Parse(Console.ReadLine()); } catch//输入为其它时,跳转至L2处,重新输入 { Console.WriteLine("您的输入不合法,请重新输入。"); goto L2; } } else//游戏退出 { Flag = false; Console.WriteLine("游戏退出。"); } while (Flag)//游戏开始 { while (Count > 0) { Console.WriteLine("请等待电脑出题。。。"); Game1.ComputerAnswer = new Random().Next(1, 3);//电脑随机生成1—3之间的随机数º Console.WriteLine("你想出什么?\n1——石头,2——剪刀,3——布。"); Game1.PlayerAnswer = int.Parse(Console.ReadLine());//输入答案 Console.WriteLine("玩家:{0},电脑:{1}", Game1.PlayerAnswer, Game1.ComputerAnswer); Game1.Result();//判断每一局结果 Count--; } Game1.TheEnd();//游戏最终结果 Flag = false;//退出游戏 } } }}
2011年6月27日星期一
- 程序设计之七:“石头剪刀布”游戏(C#)
- c语言之石头剪刀布对战游戏
- C语言小程序(七)、石头剪刀布
- 程序设计:剪刀、石头、布
- 剪刀、石头、布游戏
- 剪刀石头布游戏
- 剪刀石头布游戏
- 石头剪刀布游戏
- 剪刀石头布游戏
- 石头剪刀布游戏
- 石头,剪刀,布游戏
- 石头-剪刀-布游戏
- 石头剪刀布游戏
- 石头剪刀布游戏
- 石头、剪刀布游戏
- 随机数之石头剪刀布游戏
- 程序设计:剪刀、石头、布(二)
- 猜拳游戏(剪刀 石头 布)
- man tag命令
- 程序设计之五:Ribbon UI的实现(XMAL)
- android.app.instrumentation解析
- 程序设计之六:Hello World
- android.test.InstrumentationTestRunner解析
- 程序设计之七:“石头剪刀布”游戏(C#)
- 请问有什么简单方法提高Photoshop的运行速度?
- span 设置width
- Sitemesh学习入门
- TVB体的来源
- sysfs文件系统操作
- 简单介绍如何使用robotium进行自动化测试
- velocity源码分析:初始化之日志系统
- 转自weiphone]在美做开发多年,写给国内apple开发新手的一些心得,无教程