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

C# 石头剪刀布 小游戏

小道4年前 (2018-12-20)C#练习3706

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://daobk.com/post/153.html

分享给朋友:

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

C# 求矩形面积 WindowsForms界面

C# 求矩形面积 WindowsForms界面

使用 C#语言,WinForm 制作求矩形面积软件:源码:        private void bnt_Click(object sender, EventArgs ...

C# 冒泡排序练习

C# 冒泡排序练习

将数组内的元素 从大到小排序:using System; namespace 冒泡排序 {     class Program     {    ...

C# FileStream 读写文件操作

C# FileStream 读写文件操作

使用 FileStream 类 练习 文件读写操作。using System; using System.IO; using System.Text; namespace FileStream练习 {    &nbs...

C# FileStream 复制文件操作

C# FileStream 复制文件操作

使用 FileStream 进行复制文件操作。using System; using System.IO; namespace FileStream复制文件 {     class Progra...