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 猜拳游戏_剪刀_石头_布_
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//玩家出了剪刀
private void btnJiandao_Click(object sender, EventArgs e)
{
//获取当前简单按钮的文本内容“剪刀”
string strJiandao = btnJiandao.Text;
//将按钮上的文本 赋给 label框lblPlayer
lblPlayer.Text = strJiandao;
//调用下面 将文本转换成相应整形的方法 将文本框的内容 剪刀转换成对应的整数
//并赋给 vPlayer
int vPlayer = changtoValue(strJiandao);
//MessageBox.show(v.ToString());
//运行pc的方法 电脑随机出拳
PC();
//将电脑label框 lblPC的内容赋给字符串strPC
string strPC = lblPC.Text;
//调用转成字符串为整数的方法 将相应的电脑出拳转出整数
int vPC=changtoValue(strPC);
//MessageBox.Show(“计算机出了值为:”+vPC.ToString());
//调用裁判的方法 传入2个整数值 玩家 和电脑的数据进行对比
Judge(vPlayer,vPC);
}
//如上同理
//玩家 出石头
private void btnShitou_Click(object sender, EventArgs e)
{
string strShitou = btnShitou.Text;
lblPlayer.Text = strShitou;
int vPlayer = changtoValue(strShitou);
// MessageBox.Show(v.ToString());
PC();
string strPC = lblPC.Text;
int vPC = changtoValue(strPC);
//MessageBox.Show(“计算机出了值为:” + vPC.ToString());
Judge(vPlayer, vPC);
}
//如上同理
//玩家出布
private void btnBu_Click(object sender, EventArgs e)
{
string strBu = btnBu.Text;
lblPlayer.Text = strBu;
int vPlayer = changtoValue(strBu);
//MessageBox.Show(v.ToString());
PC();
string strPC = lblPC.Text;
int vPC = changtoValue(strPC);
//MessageBox.Show(“计算机出了值为:” + vPC.ToString());
Judge(vPlayer, vPC);
}
//写一个将鼠标点击事件 将字符串转换成相应数值的方法
public int changtoValue(string str)
{
//new一个整型n
int n = 0;
//对传入的字符串进行判断
//如果 为剪刀 则给n 赋予值1
if (str == “剪刀”)
{
n = 1;
}
//同理
else if (str == “石头”)
{
n = 2;
}
//同理
else if (str == “布”)
{
n = 3;
}
else
{
throw new Exception(“未知错误”);
}
//最后返回一个转换成功的整数n
return n;
}
// 剪刀1 石头2 布3
//写一个电脑随机出拳的方法
public string PC()
{
//用一个随机函数 电脑获取的数为1-3
Random ran = new Random();
//random.Next方法 取最小值,但不取最大值, 所以在1-3内随机取值
int n = ran.Next(1, 4);
//new 一个空字符串 strPC
string strPC = “”;
//进行简单判定 获取的随机值 同时转换成相应的字符串
//如果随机值取到1
if (n == 1)
{
//则赋给空字符串一个 “剪刀”
strPC = “剪刀”;
}
//同理
else if (n == 2)
{
strPC = “石头”;
}
//同理
else if (n == 2)
{
strPC = “石头”;
}
//同理
else if (n == 3)
{
strPC = “布”;
}
//如果随机值不在1-3范围内 抛出一个异常
else
{
throw new Exception(“未知错误!”);
}
//将获取的字符串 赋给label框 lblPC
lblPC.Text = strPC;
//并返回一个字符串 strPC
return strPC;
}
//比较玩家和电脑的值
public void Judge(int Player, int PC)
{
// 剪刀1 石头2 布3
//赢的情况有2种 1种是 玩家比电脑值大1 一种是小2
if (Player – PC == 1 || Player – PC == -2)
{
lblResult.Text = “你赢了”;
}
//平的情况只有1种 即为出拳相同
else if (Player – PC == 0)
{
lblResult.Text = “平局”;
}
//平的情况只有1种 即为出拳相同
else if (Player – PC == 0)
{
lblResult.Text = “平局”;
}
//除此之外 只有输的情况了
else
{
lblResult.Text = “你输了”;
}
}
}
}