C#簡易人機(jī)對(duì)抗“石頭剪刀布”游戲的實(shí)現(xiàn)
需要實(shí)現(xiàn)如下圖所示的人機(jī)猜拳小游戲:

我們需要建立一個(gè)玩家類Player、一個(gè)電腦類Computer、一個(gè)裁判類Judge來分別模擬各自的操作:
【Player.cs】
/*
* 作者:JeronZhou
* 時(shí)間: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
* 時(shí)間: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
* 時(shí)間: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 "平手";
}
}
}
}
【窗體設(shè)計(jì)】
共有5個(gè)標(biāo)簽(3個(gè)空標(biāo)簽),三個(gè)按鈕。

【MainForm.cs】
/*
* 作者:JeronZhou
* 時(shí)間: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
* 時(shí)間: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è)試結(jié)果】



到此這篇關(guān)于C#簡易人機(jī)對(duì)抗“石頭剪刀布”游戲的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# 石頭剪刀布內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能
這篇文章主要為大家介紹了使用快捷鍵在Unity中快速鎖定和解鎖Inspector右上角的鎖功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
C#實(shí)現(xiàn)多線程的同步方法實(shí)例分析
這篇文章主要介紹了C#實(shí)現(xiàn)多線程的同步方法,實(shí)例分析了C#線程同步的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
C#操作SQLite數(shù)據(jù)庫方法小結(jié)(創(chuàng)建,連接,插入,查詢,刪除等)
這篇文章主要介紹了C#操作SQLite數(shù)據(jù)庫方法,包括針對(duì)SQLite數(shù)據(jù)庫的創(chuàng)建,連接,插入,查詢,刪除等操作,并提供了一個(gè)SQLite的封裝類,需要的朋友可以參考下2016-07-07
C#使用checkedListBox1控件鏈接數(shù)據(jù)庫的方法示例
這篇文章主要介紹了C#使用checkedListBox1控件鏈接數(shù)據(jù)庫的方法,結(jié)合具體實(shí)例形式分析了數(shù)據(jù)庫的創(chuàng)建及checkedListBox1控件連接數(shù)據(jù)庫的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
C#設(shè)置或驗(yàn)證PDF文本域格式的方法詳解
PDF中的文本域可以通過設(shè)置不同格式,用于顯示數(shù)字、貨幣、日期、時(shí)間、郵政編碼、電話號(hào)碼和社保號(hào)等等。本文將介紹如何通過C#設(shè)置或驗(yàn)證PDF文本域格式,需要的可以參考一下2022-01-01

