猜拳游戏(剪刀 石头 布)

  • Post author:
  • Post category:其他

 

 

 

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 = “你输了”;
             }

         }
    }
}

 

 


版权声明:本文为qhx556原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。