Winform实现石头剪刀布小游戏

1、电脑玩家类

csharp 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RockScissorsClothApp
{
    public class Computer
    {
        public Card Play()
        {
            Random random = new Random();
            int num = random.Next(0, 3);
            switch (num)
            {
                case 0:
                    return Card.Rock;
                case 1:
                    return Card.Scissors;
                default:
                    return Card.CLoth;
            }
        }
        public static string ToString(Card c)
        {
            return c.ToString();
        }
    }
    public enum Card
    {
        Rock,
        Scissors,
        CLoth
    }
}

2、玩家类

csharp 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RockScissorsClothApp
{
    public class Player
    {
        public Card Play(string name)
        {
            switch (name)
            {
                case "石头":
                    return Card.Rock;
                case "剪刀":
                    return Card.Scissors;
                case "布":
                default:
                    return Card.CLoth;
            }
        }
    }
}

3、裁判类

csharp 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RockScissorsClothApp
{
    public class Referee
    {
        public static Result Judge(Card c1, Card c2)
        {
            int dif = c1 - c2;
            switch (dif)
            {
                case 0:
                    return Result.Draw;
                case -1:
                case 2:
                    return Result.lost;
                case -2:
                case 1:
                default:
                    return Result.Win;
            }
        }

        public static string ToString(Result c)
        {
            return c.ToString();
        }
    }
    public enum Result
    {
        Win,
        lost,
        Draw
    }
}

4、应用程序

csharp 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void BtnRock_Click(object sender, EventArgs e)
        {
            Button button = sender as Button;
            if (button != null)
            {
                Computer computer = new Computer();
                Card c1 = computer.Play();
                lblComputerCard.Text = Computer.ToString(c1);
                string str = button.Text;
                Player player = new Player();
                Card c2 = player.Play(str);
                lblPlayerCard.Text = Computer.ToString(c2);
                Result result = Referee.Judge(c1, c2);
                lblRefereeResult.Text = result.ToString();
            }
        }
    }
}

5、运行效果

裁判结果为玩家的输赢。

相关推荐
界面开发小八哥3 天前
界面控件DevExpress中文教程:如何PDF图形对象的可见性?
ui·pdf·wpf·界面控件·winform·devexpress
as_jopo3 天前
java enum code-label模式的使用方法
java·开发语言·enum
Crazy Struggle6 天前
.NET 多版本 WinForm 开源控件库 SunnyUI
c#·winform·blazor ui组件库·sunnyui
流华追梦110 天前
(二十六)Java 数据结构
java·数据结构·vector·dictionary·enum·stack·bitset
Crazy Struggle12 天前
.NET 多版本兼容的精美 WinForm UI控件库
.net·winform·控件库
界面开发小八哥13 天前
DevExpress WinForms中文教程:Data Grid - 如何自定义绘制?
ui·winform·devexpress·用户界面·c# winform
小白鼠零号14 天前
记录|自建Form窗口,实现消息提示+自动消失
c#·visual studio·winform
界面开发小八哥16 天前
DevExpress WinForms v24.1亮点- TreeList、折叠组件全新升级
.net·界面控件·winform·devexpress·ui开发
小白鼠零号16 天前
记录|Form1中嵌套Form2时的频闪问题解决[不同于常见的三部曲]
c#·visual studio·winform