1、电脑玩家类
csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RockScissorsClothApp
{
public class Computer
{
public Card Play()
{
Random random = new Random();
int num = random.Next(0, 3);
switch (num)
{
case 0:
return Card.Rock;
case 1:
return Card.Scissors;
default:
return Card.CLoth;
}
}
public static string ToString(Card c)
{
return c.ToString();
}
}
public enum Card
{
Rock,
Scissors,
CLoth
}
}
2、玩家类
csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RockScissorsClothApp
{
public class Player
{
public Card Play(string name)
{
switch (name)
{
case "石头":
return Card.Rock;
case "剪刀":
return Card.Scissors;
case "布":
default:
return Card.CLoth;
}
}
}
}
3、裁判类
csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RockScissorsClothApp
{
public class Referee
{
public static Result Judge(Card c1, Card c2)
{
int dif = c1 - c2;
switch (dif)
{
case 0:
return Result.Draw;
case -1:
case 2:
return Result.lost;
case -2:
case 1:
default:
return Result.Win;
}
}
public static string ToString(Result c)
{
return c.ToString();
}
}
public enum Result
{
Win,
lost,
Draw
}
}
4、应用程序
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace RockScissorsClothApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void BtnRock_Click(object sender, EventArgs e)
{
Button button = sender as Button;
if (button != null)
{
Computer computer = new Computer();
Card c1 = computer.Play();
lblComputerCard.Text = Computer.ToString(c1);
string str = button.Text;
Player player = new Player();
Card c2 = player.Play(str);
lblPlayerCard.Text = Computer.ToString(c2);
Result result = Referee.Judge(c1, c2);
lblRefereeResult.Text = result.ToString();
}
}
}
}
5、运行效果
裁判结果为玩家的输赢。