C#简易人机对抗“石头剪刀布”游戏的实现

 更新时间:2022年05月10日 11:14:35   作者:JeronZhou  
本文主要介绍了C#简易人机对抗“石头剪刀布”游戏的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

需要实现如下图所示的人机猜拳小游戏:

在这里插入图片描述

我们需要建立一个玩家类Player、一个电脑类Computer、一个裁判类Judge来分别模拟各自的操作:

【Player.cs】

/*
 * 作者:JeronZhou
 * 时间:2021-11-01
 * 功能:石头剪刀布游戏
 */

using System;

namespace Test2_2
{
	public class Player
	{
        public string FistName { get; set; }
       	public int Play(string name)
       	{
            FistName = name;
            switch (FistName)
            {
                case "石头":
                    return 1;
                case "剪刀":
                    return 2;
                case "布":
                    return 3;
                default:
                    return 0;
            }
        }
	}
}

【Computer.cs】

/*
 * 作者:JeronZhou
 * 时间:2021-11-01
 * 功能:石头剪刀布游戏
 */

using System;

namespace Test2_2
{
	public class Computer
	{
        public string FistName { get; set; }
        public int RandomPlay()
        {
            Random random = new Random(Guid.NewGuid().GetHashCode());
            int num = random.Next(1, 4);
            switch (num)
            {
                case 1:
            		FistName = "石头";
            		break;
                case 2:
            		FistName = "剪刀";
            		break;
                case 3:
            		FistName = "布";
            		break;
            }
            return num;
        }
	}
}

【Judge.cs】

/*
 * 作者:JeronZhou
 * 时间:2021-11-01
 * 功能:石头剪刀布游戏
 */

using System;

namespace Test2_2
{
	public class Judge
	{
        public string Win(int play, int computer)
        {
            int result = play - computer;
            switch (result)
            {
                case -1:
               		return "你赢了";
                case 2:
                    return "你赢了";
                case -2:
                    return "你输了";
                case 1:
                    return "你输了";
                default:
                    return "平手";
            }
        }
	}
}

【窗体设计】
共有5个标签(3个空标签),三个按钮。

在这里插入图片描述

【MainForm.cs】

/*
 * 作者:JeronZhou
 * 时间:2021-11-01
 * 功能:石头剪刀布游戏
 */

using System;
using System.Windows.Forms;

namespace Test2_2
{
	public partial class MainForm : Form
	{
		public MainForm()
		{
			InitializeComponent();
		}
		void Button1Click(object sender, EventArgs e)
		{
            Player p = new Player();
            int playerName = p.Play(button1.Text);
            label3.Text = p.FistName;
            Computer c = new Computer();
            int computerName = c.RandomPlay();
            label4.Text = c.FistName;
            Judge judge = new Judge();
            label5.Text = judge.Win(playerName, computerName);
		}
		void Button2Click(object sender, EventArgs e)
		{
            Player p = new Player();
            int playerName = p.Play(button2.Text);
            label3.Text = p.FistName;
            Computer c = new Computer();
            int computerName = c.RandomPlay();
            label4.Text = c.FistName;
            Judge judge = new Judge();
            label5.Text = judge.Win(playerName, computerName);
		}
		void Button3Click(object sender, EventArgs e)
		{
            Player p = new Player();
            int playerName = p.Play(button3.Text);
            label3.Text = p.FistName;
            Computer c = new Computer();
            int computerName = c.RandomPlay();
            label4.Text = c.FistName;
            Judge judge = new Judge();
            label5.Text = judge.Win(playerName, computerName);
		}
	}
}

【Program.cs】

/*
 * 作者:JeronZhou
 * 时间:2021-11-01
 * 功能:石头剪刀布游戏
 */

using System;
using System.Windows.Forms;

namespace Test2_2
{
	internal sealed class Program
	{
		[STAThread]
		private static void Main(string[] args)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new MainForm());
		}
	}
}

【测试结果】

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 到此这篇关于C#简易人机对抗“石头剪刀布”游戏的实现的文章就介绍到这了,更多相关C# 石头剪刀布内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中Response.Write常见问题汇总

    C#中Response.Write常见问题汇总

    这篇文章主要介绍了C#中Response.Write常见问题汇总,总结了C#中Response.Write的常用技巧,非常实用,需要的朋友可以参考下
    2014-09-09
  • 使用快捷键在Unity中快速锁定和解锁Inspector右上角的锁功能

    使用快捷键在Unity中快速锁定和解锁Inspector右上角的锁功能

    这篇文章主要为大家介绍了使用快捷键在Unity中快速锁定和解锁Inspector右上角的锁功能详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • C#实现多线程的同步方法实例分析

    C#实现多线程的同步方法实例分析

    这篇文章主要介绍了C#实现多线程的同步方法,实例分析了C#线程同步的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • c#递归遍历文件夹示例

    c#递归遍历文件夹示例

    这篇文章主要介绍了c#递归遍历文件夹示例,需要的朋友可以参考下
    2014-03-03
  • C#彩色图片灰度化算法实例

    C#彩色图片灰度化算法实例

    这篇文章主要介绍了C#彩色图片灰度化算法,以实例形式对灰度化算法进行了较为详细的介绍,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C# Bitmap图像处理加速的实现

    C# Bitmap图像处理加速的实现

    本文主要介绍了C# Bitmap图像处理加速的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)

    C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)

    这篇文章主要介绍了C#操作SQLite数据库方法,包括针对SQLite数据库的创建,连接,插入,查询,删除等操作,并提供了一个SQLite的封装类,需要的朋友可以参考下
    2016-07-07
  • C#动态绘制多条曲线的方法

    C#动态绘制多条曲线的方法

    这篇文章主要为大家详细介绍了C#动态绘制多条曲线的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#使用checkedListBox1控件链接数据库的方法示例

    C#使用checkedListBox1控件链接数据库的方法示例

    这篇文章主要介绍了C#使用checkedListBox1控件链接数据库的方法,结合具体实例形式分析了数据库的创建及checkedListBox1控件连接数据库的相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • C#设置或验证PDF文本域格式的方法详解

    C#设置或验证PDF文本域格式的方法详解

    PDF中的文本域可以通过设置不同格式,用于显示数字、货币、日期、时间、邮政编码、电话号码和社保号等等。本文将介绍如何通过C#设置或验证PDF文本域格式,需要的可以参考一下
    2022-01-01

最新评论