博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net学习笔记----2015-07-02(石头剪刀布)
阅读量:5144 次
发布时间:2019-06-13

本文共 2655 字,大约阅读时间需要 8 分钟。

玩法分析:

把三种手势设置三个数

1、石头  2、剪刀  3、布

玩家 - 电脑

玩家赢:只有以下3种结果,,,2个数,-1 和2

1 - 2 = -1;

2 - 3 = -1;

3 - 1 = 2;

平手:结果为0即为平手

电脑赢:else电脑赢

 

创建3个类:

玩家类(Player):

方法:得到玩家的数,   

 

电脑类(Computer):

方法:电脑出拳需要一个随机数

 

裁判(Judge):

方法:判断输赢

代码如下:

玩家类

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;        }    }

电脑类

class Computer    {        ///         /// 存储电脑出的手势        ///         public string Fist        {            get;            set;        }        public int ShowFist()        {            Random r = new Random();            int rNum = r.Next(1, 4);            switch(rNum)            {                case 1: this.Fist = "石头";                    break;                case 2: this.Fist = "剪刀";                    break;                case 3: this.Fist = "布";                    break;            }            return rNum;        }    }

裁判类

public enum Result    {        玩家赢,        电脑赢,        平手    }    class Judge    {        public static Result Judged(int playerNum, int cpuNum)        {            if (playerNum - cpuNum == -1 || playerNum - cpuNum == 2)            {                return Result.玩家赢;            }            else if(playerNum - cpuNum == 0)            {                return Result.平手;            }            else            {                return Result.电脑赢;            }        }    }

主窗体类:

public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void label3_Click(object sender, EventArgs e)        {        }        private void btnStone_Click(object sender, EventArgs e)        {            string str = "石头";            PlayGame(str);        }        private void PlayGame(string str)        {            lblPlayer.Text = str;            Player player = new Player();            int playerNum = player.ShowFist(str);            Computer cpu = new Computer();            int cpuNum = cpu.ShowFist();            lblComputer.Text = cpu.Fist;            Result res = Judge.Judged(playerNum, cpuNum);            lblJudge.Text = res.ToString();        }        private void btnCut_Click(object sender, EventArgs e)        {            string str = "剪刀";            PlayGame(str);        }        private void btnNo_Click(object sender, EventArgs e)        {            string str = "布";            PlayGame(str);        }    }

 

转载于:https://www.cnblogs.com/mikie/p/4616170.html

你可能感兴趣的文章
Hdu - 1002 - A + B Problem II
查看>>
每天CookBook之Python-003
查看>>
每天CookBook之Python-004
查看>>
Android设置Gmail邮箱
查看>>
js编写时间选择框
查看>>
Java数据结构和算法(四)--链表
查看>>
JIRA
查看>>
小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
查看>>
深浅拷贝(十四)
查看>>
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
PE知识复习之PE的导入表
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
洛谷P3676 小清新数据结构题(动态点分治)
查看>>
九校联考-DL24凉心模拟Day2T1 锻造(forging)
查看>>
Attributes.Add用途与用法
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
javascript 无限分类
查看>>
spring IOC装配Bean(注解方式)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>