游戏规则:玩家随意点击 按钮石头 剪刀 布,电脑随机生成一个石头剪刀布,然后得出结果。
游戏思路:创建四个类,两个子类玩家出拳类和电脑随机出拳类,一个出拳父类,一个裁判类,判断结果;
1.创建父类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 猜拳游戏
{
public class FatherPlayer
{
//功能是找出玩家和电脑出拳的共同处进行封装
//1.都有出拳的功能,所以有一个出拳方法Fistshow()
//2.有字段fist
//3.都是石头剪刀布三种,所以有个string[] fists存储石头剪刀布
//创建随机数
string fist;
protected string[] fists = "石头,剪刀,布".Split(',');
Random r;
public string Fist
{
get { return fist; }
set { fist = value; }
}
public FatherPlayer()
{
r = new Random();
}
public virtual int FistShow()
{
int num = r.Next(3);
this.Fist = fists[num];
return num;
}
}
}
2.创建子类PeasonPlayer.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 猜拳游戏
{
class PeasonPlayer:FatherPlayer
{
public PeasonPlayer(string fist)
{
this.Fist = fist;
}
public override int FistShow()
{
int i = 0;
for (i = 0; i < fists.Length; i++)
{
if (fists[i] == this.Fist)
break;
}
return i;
}
}
}
创建子类ComputerPlayer.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 猜拳游戏
{
class ComputerPlayer:FatherPlayer
{
}
}
3.创建裁判类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 猜拳游戏
{
public class Judager
{
public string Caipan(int pn,int cn)
{
int num=pn-cn;
if (num == -1 || num == 2)
{
return "玩家赢";
}
else if (num == 0)
{
return "平局了";
}
else
{
return "电脑赢";
}
}
}
}
4.主函数 调用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//游戏思路:
//1.创建玩家出拳类,电脑出拳类,以及两者的父类
//2.创建一个裁判类,功能是比较电脑出拳类和玩家出拳类的结果
//3.按钮点击事件
namespace 猜拳游戏
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnbu_Click(object sender, EventArgs e)
{
//将sender转变成buttondui对象
Button btn = sender as Button;
PeasonPlayer pplayer = new PeasonPlayer(btn.Text);
ComputerPlayer cplayer = new ComputerPlayer();
int pn = pplayer.FistShow();
int cn = cplayer.FistShow();
lblplayer.Text = "玩家出:"+btn.Text;
lblcomputer.Text = "电脑出" + "石头,剪刀,布".Split(',')[cn];
Judager result = new Judager();
lblresult.Text=result.Caipan(pn, cn);
}
}
}