猜拳游戏(C#)

 

一、新建

打开VS,新建项目,新建windowsform项目。

 

二、布局

猜拳游戏布局

 

插入3个按钮button,调整按钮和文字大小;插入5个label标签,设置标签和文字大小;按上图设置各个控件内容Text;分别设置上述控件Name分别为(“你”和“电脑”name保持默认即可):lblPlayer、lblComputer、lblResult、btnRock、btnScissors、btnPaper。

三、添加类

右键项目,添加类。

添加玩家Player类:

class Player
    {
        public string FistName
        {
            get;
            set;
        }
        public int showFist(string fistname)
        {
            this.FistName = fistname;
            int result = -2;
            switch (fistname)
            {
                case "石头": result = 1; break;
                case "剪刀": result = 2; break;
                case "布": result = 3; break;
                default: break;
            }
            return result;
        }
    }

添加电脑Computer类:

class Computer
    {
        public string FistName
        {
            get;
            set;
        }
        public int showFist()
        {
            Random rd = new Random();
            int result = rd.Next(1, 4);
            switch (result)
            {
                case 1: this.FistName = "石头"; break;
                case 2: this.FistName = "剪刀"; break;
                case 3: this.FistName = "布"; break;
                default: break;
            }
            return result;
        }
    }

添加裁判Judge类(同时添加枚举类):

class Judge
    {
        static public UserState CaiDing(int playerfist, int computerfist)
        {
            if (playerfist == computerfist)
            {
                return UserState.PingShou;
            }
            else if ((playerfist - computerfist == -1) || (playerfist - computerfist == 2))
            {
                return UserState.PlayerWin;
            }
            else
            {
                return UserState.PlayerLose;
            }
        }

    }
    public enum UserState
    {
        PlayerWin,
        PlayerLose,
        PingShou
    }

四、后台代码

打开form窗体后台代码,在form1类中添加代码:

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            btnPaper.Click += OnClick;
            btnRock.Click += OnClick;
            btnScissors.Click += OnClick;
        }

        private void OnClick(object sender, EventArgs e)
        {
            Player p1 = new Player();
            int p1fist = p1.showFist((sender as Button).Text);
            lblPlayer.Text = p1.FistName;

            Computer c1 = new Computer();
            int c1fist = c1.showFist();
            lblComputer.Text = c1.FistName;

            UserState result = Judge.CaiDing(p1fist, c1fist);
            switch (result)
            {
                case UserState.PingShou:
                    lblResult.Text = "平手";
                    break;
                case UserState.PlayerLose:
                    lblResult.Text = "你输了";
                    break;
                case UserState.PlayerWin:
                    lblResult.Text = "你赢了";
                    break;
                default: break;
            }
        }
    }

五、运行

点击启动,或者执行不调试,查看运行结果。

运行结果示例

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值