首先,界面代码
1 namespace 石头剪刀布 2 { 3 public partial class Form1 : Form 4 { 5 public Form1() 6 { 7 InitializeComponent(); 8 } 9 10 private void btnShitou_Click(object sender, EventArgs e) 11 { 12 //将sender强转换为Button类型(Button首字母必须大写,否则会出错) 13 Button btn = (Button)sender; 14 //判断是否为null 15 if (btn != null) 16 { 17 //创建玩家对象 18 wanjia wan = new wanjia(); 19 int w=wan.Showfi(btn.Text);//调用玩家方法 20 lbwan.Text = wan.fiName;//界面输出 21 22 //创建电脑对象 23 diannao dian = new diannao(); 24 int d=dian.Showfi();//调用电脑方法 25 lbdian.Text = dian.fiName;//向界面输出的值 26 27 //创建裁判对象 28 caipan c = new caipan(); 29 lkbjie.Text= c.ISuw(w, d);//调用裁判的方法,并传值到界面 30 } 31 } 32 } 33 }
玩家类(wanjia)
1 namespace 石头剪刀布 2 { 3 public class wanjia 4 { 5 //保存玩家的出拳结果 6 public string fiName 7 { 8 set; 9 get; 10 } 11 //玩家的出拳方法 12 public int Showfi(string fi) 13 { 14 this.fiName = fi; 15 int s = -1; 16 //根据用户的输入,得到相应的数值 17 switch (fi) 18 { 19 case "石头": 20 s=1; 21 break ; 22 case "剪刀": 23 s=2; 24 break ; 25 case "布": 26 s=3; 27 break ; 28 } 29 return s; 30 31 } 32 } 33 }
电脑类(diannao)
1 namespace 石头剪刀布 2 { 3 public class diannao 4 { 5 //保存电脑出拳的结果 6 public string fiName 7 { 8 set; 9 get; 10 } 11 //计算电脑的出拳 12 public int Showfi() 13 { 14 //因为电脑是算计出拳,首先要先创建一个随机对象 15 Random random = new Random(); 16 //通过随机得到数值,有效取值范围为1、2、3; 17 //1、代表“石头”;2、代表“剪刀”;3、代表“布” 18 int r = random.Next(1,4); 19 //判断随机数 20 switch (r) 21 { 22 case 1: 23 this.fiName = "石头"; 24 break; 25 case 2: 26 this.fiName = "剪刀"; 27 break; 28 case 3: 29 this.fiName = "布"; 30 break; 31 } 32 return r; 33 } 34 } 35 }
裁判类(caipan)--规则
1 namespace 石头剪刀布 2 { 3 public class caipan 4 { 5 public string ISuw(int w, int d) 6 { 7 if (w == d) 8 { 9 return ("平局!"); 10 } 11 else if ((w - d) == -1 || (w - d) == 2) 12 { 13 return ("赢了!"); 14 } 15 else 16 { 17 return ("输了!"); 18 } 19 20 } 21 } 22 }
这个小游戏不太难,主要注意的又一下几点
【注意】:
1、object sender, EventArgs e
第一个参数 sender 是指“发生事件”的那个东东(比如Button按钮) ;
第二个参数 e 是指“事件发生的时附加的参数”
2、将sender强转换为Button类型(Button首字母必须大写,否则会出错)
Button btn = (Button)sender; //sender是对象类型
3、类的默认修饰符是internal