当前位置:首页 > C#学习 > C#练习 > 正文内容

C# 石头剪刀布 小游戏

小道7年前 (2018-12-20)C#练习5508

C# 石头剪刀布 小游戏

假设:石头 1,剪刀 2,布 3;

玩家赢的结果:1-2=-1,2-3=-1,3-1=2;

平手:相减=0;

其他情况是电脑赢了。

image.png

Form1代码:

using System;
using System.Windows.Forms;

namespace 石头剪刀布
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnST_Click(object sender, EventArgs e)//石头 按钮单击事件
        {
            string str = "石头";
            PlayGame(str);//调用方法
        }

        private void btnJD_Click(object sender, EventArgs e)//剪刀 按钮单击事件
        {
            string str = "剪刀";
            PlayGame(str);//调用方法
        }

        private void btnB_Click(object sender, EventArgs e)//布 按钮单击事件
        {
            string str = "布";
            PlayGame(str);//调用方法
        }
        private void PlayGame(string str)
        {
            lblPlayer.Text = str;//将玩家 出拳 显示出来
            Player player = new Player();//创建 玩家类
            int pNum = player.ShowFist(str);//调用方法
            CPU cpu = new CPU();//创建 电脑类
            int cNum = cpu.ShowFist();//调用方法
            lblCPU.Text = cpu.Fist;//将电脑 出拳 显示出来
            Result res = Judgment.Judge(pNum, cNum);//调用方法
            lblJudgment.Text = res.ToString();//显示结果
        }
    }
}

Player类代码:

using System;

namespace 石头剪刀布
{
    class Player
    {
        public int ShowFist(string fist)//将玩家 出的拳 传过来
        {
            int num = 0;//声明整数变量
            switch (fist)//判断
            {
                case "石头"://如果出的是 石头
                    num = 1;//赋值
                    break;
                case "剪刀":
                    num = 2;
                    break;
                case "布":
                    num = 3;
                    break;
            }
            return num;//返回值
        }
    }
}

CPU类代码:

using System;

namespace 石头剪刀布
{
    class CPU
    {
        public string Fist { get; set; }//属性
        public int ShowFist()//方法 
        {
            Random r = new Random();//随机数
            int rNum = r.Next(1, 4);//随机一个1~3之间的一个数
            switch (rNum)//判断 随机的数是几
            {
                case 1:
                    this.Fist = "石头";//赋值
                    break;
                case 2:
                    this.Fist = "剪刀";//赋值
                    break;
                case 3:
                    this.Fist = "布";//赋值
                    break;
            }
            return rNum;//返回
        }
    }
}

Judgment类代码:

using System;

namespace 石头剪刀布
{
    public enum Result//枚举
    {
        玩家赢,
        电脑赢,
        平手
    }
    class Judgment
    {
        public static Result Judge(int pNum,int cNum)//得到  玩家和电脑的数。
        {
            if (pNum - cNum == -1 || pNum - cNum == 2)//判断结果
            {
                return Result.玩家赢;//返回
            }
            else if (pNum - cNum == 0)//判断结果
            {
                return Result.平手;//返回
            }
            else
            {
                return Result.电脑赢;//返回
            }
        }
    }
}

输出结果:

image.pngimage.pngimage.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://www.daobk.com/post/153.html

分享给朋友:

“C# 石头剪刀布 小游戏” 的相关文章

C# 简单 控制台 飞行棋 附源码

C# 简单 控制台 飞行棋 附源码

简单C# 控制台飞行棋,使用 int数组 用于创建地图。图例: 幸运转盘: ◎    地雷: ☆    暂停: ▲    时空隧道: 卐using System; namespace 飞行棋 {  &...

C# StreamWrite和StreamReader 读写操作

C# StreamWrite和StreamReader 读写操作

StreamWrite和StreamReader 读写操作using System; using System.IO; using System.Text; namespace StreamWrite和StreamReader {  &...

C# MD5 32位加密

C# MD5 32位加密

使用C#的MD5类创建MD5 32位加密。界面设计:密文文本框名称:txtmiwenMD5(32)文本框名称:txtmd532加密按钮名称:Btnjiami        private void B...

C# ComboBox 下拉框 年月日练习

C# ComboBox 下拉框 年月日练习

C# ComboBox 下拉框 年月日练习年下拉框名称:cboY月下拉框名称:cboM日下拉框名称:cboDusing System; using System.Windows.Forms; namespace 年月日 {    ...