C#实现剪刀石头布游戏

所属分类: 软件编程 / C#教程 阅读数: 133
收藏 0 赞 0 分享

本文实例为大家分享了C#实现剪刀石头布游戏的具体代码,供大家参考,具体内容如下

游戏界面如下所示:

首先我们必须知道要创建三个类玩家类,电脑类,裁判类

1、玩家类中的代码为

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PlayGame
{
 class Player
 {
 public int showFist(string str)
 {
 int num = 0;
 switch (str)
 {
 case "剪刀": num = 1; break;
 case "石头": num = 2; break;
 case "布": num = 3; break;

 }
 return num;

 }
 }
}

2、电脑类中的代码为

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PlayGame
{
 class Computer
 {
 /// <summary>
 /// 存储电脑出的拳头
 /// </summary>
 public string fist
 {
 get;
 set;
 }
 public int cpuShowFist()
 {
 Random r = new Random();
 int cnum=r.Next(1,4);
 switch(cnum)
 {
 case 1: this.fist = "剪刀"; break;
 case 2: this.fist = "石头"; break;
 case 3: this.fist = "布"; break;
 }
 return cnum;
 }
 }
}

3、裁判类中的代码为

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PlayGame
{
 class Judge
 {
 public enum Result
 { 
 电脑赢,玩家赢,平局
 }
 public static Result caipan(int playerNum, int cpuNum)
 {
 if ((playerNum - cpuNum) == 1 || (playerNum - cpuNum) == -2)
 return Result.玩家赢;
 else if((playerNum-cpuNum)==0)
 return Result.平局;
 else
 return Result.电脑赢;
 }
 }
}

4、其他的事件代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PlayGame
{
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }

 private void btncut_Click(object sender, EventArgs e)
 {

 NewMethod(btncut.Text);

 }

 private void NewMethod(string str)
 {
 lblPlayer.Text = str;
 Player player = new Player();
 int playerNum = player.showFist(str);

 Computer cpu = new Computer();
 int cpuNum = cpu.cpuShowFist();
 lblComputer.Text = cpu.fist;

 PlayGame.Judge.Result res = Judge.caipan(playerNum, cpuNum);
 lblJudge.Text = res.ToString();
 }


 private void btnstone_Click(object sender, EventArgs e)
 {
 NewMethod(btnstone.Text);
 }

 private void btnbu_Click(object sender, EventArgs e)
 {
 NewMethod(btnbu.Text);
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

C# 大小写转换(金额)实例代码

C# 大小写转换(金额)实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# WinForm中Panel实现用鼠标操作滚动条的实例方法

由于在WinForm中Panel不能直接响应鼠标的滚动事件,只好采用捕获窗体的滚动事件。
收藏 0 赞 0 分享

C#访问应用程序配置文件的方法

C#访问应用程序配置文件的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#读写文件的方法汇总

C#读写文件的方法汇总,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#计算代码执行时间的方法

在一些测试工作时我们需要获得高精度的代码执行时间以比较其效率。
收藏 0 赞 0 分享

C# 动画窗体(AnimateWindow)的小例子

C# 动画窗体(AnimateWindow)的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# zxing二维码写入的实例代码

C# zxing二维码写入的实例代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

c#判断输入的是不是数字的小例子

c#判断输入的是不是数字的小例子,需要的朋友可以参考一下
收藏 0 赞 0 分享

c# 深拷贝与浅拷贝的区别分析及实例

浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
收藏 0 赞 0 分享

C#利用com操作excel释放进程的解决方法

最近利用Microsoft.Office.Interop.Excel.Application读取一个excel后,进程中一直存在excel,在网上找了一阵子,其中有几个解决方案
收藏 0 赞 0 分享
查看更多