【C#】简易人机对抗“石头剪刀布”游戏
2021-11-01 21:06
1316 查看
需要实现如下图所示的人机猜拳小游戏:
我们需要建立一个玩家类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#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;
- C# 方法练习-制作简易飞行棋游戏
- 程序设计之七:“石头剪刀布”游戏(C#)
- 简易游戏修改器(C#实现,提供程序下载)
- C#写玩家与电脑进行石头剪刀布游戏的算法
- C# Winform实现石头剪刀布游戏
- 使用C# SocketTCP开发网络游戏ForestWars(五) 处理粘包分包问题
- Android+Unity游戏开发之C#线程
- 人机猜拳游戏
- C# WPF动画、游戏教程汇总
- 写了一个C#的俄罗斯方块的游戏,包含人工智能部分,源码可下载
- C#使用 MonoGame* 开发游戏
- 上接游戏人生Silverlight(2) - 趣味钢琴[Silverlight 2.0(c#)]
- C#游戏编程:《控制台小游戏系列》之《六、贪吃蛇实例》
- 简易的关灯游戏设计
- C# Task 多线程简易初级的例子
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三)让物体动起来③
- 基于C#制作的狼人游戏介绍
- 【用C#写游戏-XNA游戏编程】坦克大战(一) 初探XNA
- Silverlight C# 游戏开发:Flyer05与什么什么进行搏斗