面向对象剪刀石头布小游戏的制作
2015-01-17 16:55
316 查看
分析
石头剪刀布游戏其中的对象人,电脑,判断输赢的中间裁判
人含有的属性和方法,人需要知道出拳的结果,出拳的方法(需要一个参数从前台接收出拳),电脑需要知道出拳结果,出拳方法(随机生成)
然后把两边的出拳结果(使用数字)传递给裁判,裁判进行判断输赢,由于结果有平、输、赢三种,所以我们可以把裁判判断输赢方法的返回值类型设置为枚举
玩家类:namespace 面向对象石头剪刀布游戏
{
public class person
{
//出拳结果
public string fistResult
{
get;
set;
}
/// <summary>
/// 出拳方法
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public int Resu(string s)
{
int result = -1;
switch (s)
{
case "石头":
result=1;
break;
case "剪刀":
result=2;
break;
case "布":
result=3;
break;
}
this.fistResult = s;
return result;
}
}
}
电脑类:
public class Computer
{
public string fistResult
{
get;
set;
}
public int ShowFist()
{
Random ran= new Random();
int res= ran.Next(1, 4); //去下限无上限
switch (res)
{
case 1:
fistResult = "石头";
break;
case 2:
fistResult = "剪刀";
4000
break;
case 3:
fistResult = "布";
break;
}
return res;
}
}
}
裁判类:
namespace 面向对象石头剪刀布游戏
{
public enum userState
{
Playwin,
Ulose,
OK
}
public class CaiPan
{
public static userState IsPlayWin(int plays,int comps)//返回值有三中状态 平,赢,输,所以尽量使枚举
{
if (plays == comps)
{
return userState.OK;
}
else if (plays - comps == -1 || plays - comps == 2)
{
return userState.Playwin;
}
else
{
return userState.Ulose;
}
}
}
}
前台调用代码:
private void btn石头_Click(object sender, EventArgs e)
{
Button btn = ( Button)sender;//判断事件源
NewMethod(btn.Text);
}
private void NewMethod(string fist)
{
person p = new person();
int pfist = p.Resu(fist);
Computer com = new Computer();
int comfist = com.ShowFist();
label5.Text = com.fistResult;
lblU.Text = p.fistResult;
userState user = CaiPan.IsPlayWin(pfist, comfist);
if (user == userState.Playwin)
{
lblResult.Text = "YouWin!";
}
else if (user == userState.Ulose)
{
lblResult.Text = "Youlose!";
}
else
{
lblResult.Text = "平手!";
}
}
最终效果:
石头剪刀布游戏其中的对象人,电脑,判断输赢的中间裁判
人含有的属性和方法,人需要知道出拳的结果,出拳的方法(需要一个参数从前台接收出拳),电脑需要知道出拳结果,出拳方法(随机生成)
然后把两边的出拳结果(使用数字)传递给裁判,裁判进行判断输赢,由于结果有平、输、赢三种,所以我们可以把裁判判断输赢方法的返回值类型设置为枚举
玩家类:namespace 面向对象石头剪刀布游戏
{
public class person
{
//出拳结果
public string fistResult
{
get;
set;
}
/// <summary>
/// 出拳方法
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public int Resu(string s)
{
int result = -1;
switch (s)
{
case "石头":
result=1;
break;
case "剪刀":
result=2;
break;
case "布":
result=3;
break;
}
this.fistResult = s;
return result;
}
}
}
电脑类:
public class Computer
{
public string fistResult
{
get;
set;
}
public int ShowFist()
{
Random ran= new Random();
int res= ran.Next(1, 4); //去下限无上限
switch (res)
{
case 1:
fistResult = "石头";
break;
case 2:
fistResult = "剪刀";
4000
break;
case 3:
fistResult = "布";
break;
}
return res;
}
}
}
裁判类:
namespace 面向对象石头剪刀布游戏
{
public enum userState
{
Playwin,
Ulose,
OK
}
public class CaiPan
{
public static userState IsPlayWin(int plays,int comps)//返回值有三中状态 平,赢,输,所以尽量使枚举
{
if (plays == comps)
{
return userState.OK;
}
else if (plays - comps == -1 || plays - comps == 2)
{
return userState.Playwin;
}
else
{
return userState.Ulose;
}
}
}
}
前台调用代码:
private void btn石头_Click(object sender, EventArgs e)
{
Button btn = ( Button)sender;//判断事件源
NewMethod(btn.Text);
}
private void NewMethod(string fist)
{
person p = new person();
int pfist = p.Resu(fist);
Computer com = new Computer();
int comfist = com.ShowFist();
label5.Text = com.fistResult;
lblU.Text = p.fistResult;
userState user = CaiPan.IsPlayWin(pfist, comfist);
if (user == userState.Playwin)
{
lblResult.Text = "YouWin!";
}
else if (user == userState.Ulose)
{
lblResult.Text = "Youlose!";
}
else
{
lblResult.Text = "平手!";
}
}
最终效果:
相关文章推荐
- 用javascript 面向对象制作坦克大战(三)
- 用javascript 面向对象制作坦克大战(四)
- 分享几个原生javascript面向对象设计小游戏
- Python 剪刀石头布 小游戏
- HTML5游戏开发,剪刀石头布小游戏案例
- day04_经典小游戏之“石头、剪刀、布”
- 面向对象_javadoc说明书的制作过程
- javascript 面向对象制作坦克大战 (一)
- 代码制作:剪刀、石头、布游戏
- Java面向对象深入学习:制作一个画图工具并计算那些图形的面积和周长。
- 简单小游戏-剪刀石头布的c语言实现
- Java猜拳小游戏(剪刀、石头、布)
- 用Python写剪刀石头布小游戏-解法2
- 用javascript 面向对象制作坦克大战(二)
- 用JavaFX写一个石头剪刀布的小游戏
- python脚本小游戏,剪刀石头布.
- 使用面向oo对象方法的12个优点
- 全面面向对象体系结构设计
- 用C写有面向对象特点的程序 推荐
- 面向对象程序设计技术概述