本文實例為大家分享了Winform實現石頭剪刀布游戲的具體代碼,供大家參考,具體內容如下
新建一個windows窗體程序,用數字1代表石頭,用數字2代表剪刀,用數字3代表布,結果取玩家和電腦出拳之差,有三種結果
玩家贏: -1,2
平手: 0
玩家輸: 其它值
新建3個類:
1)Computer.cs 電腦隨機出拳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 石頭剪刀布 { class Computer { public string Fist { get ; set ; } public int ShowFist() { Random rnd = new Random(); int fist = rnd.Next(1, 4); switch (fist) { case 1: Fist = "石頭" ; break ; case 2: Fist = "剪刀" ; break ; case 3: Fist = "布" ; break ; } return fist; } } } |
2)、Judge.cs 裁判類 判斷輸贏
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 石頭剪刀布 { class Judge { public enum RESULT { 玩家贏, 電腦贏, 平手 } public static RESULT WhoWin( int playerNum, int computerNum) { int result = playerNum - computerNum; if (result == -1 || result == 2) { return RESULT.玩家贏; } else if (result == 0) { return RESULT.平手; } else { return RESULT.電腦贏; } } } } |
3)、Player.cs 玩家,出拳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 石頭剪刀布 { class Player { public static int ShowFist( string fist) { switch (fist) { case "石頭" : return 1; case "剪刀" : return 2; case "布" : return 3; default : return 0; } } } } |
界面后臺實現代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 石頭剪刀布 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 點擊石頭按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStone_Click( object sender, EventArgs e) { String fist = "石頭" ; Game(fist); } /// <summary> /// 點擊剪刀按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnScissors_Click( object sender, EventArgs e) { String fist = "剪刀" ; Game(fist); } /// <summary> /// 點擊布按鈕 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCloth_Click( object sender, EventArgs e) { String fist = "布" ; Game(fist); } //背景圖片輪播 String[] paths = Directory.GetFiles( @"C:\work\stone" ); //此目錄里面必須有圖片,否則會報錯 private void timer1_Tick( object sender, EventArgs e) { this .BackgroundImage = Image.FromFile(paths[ new Random().Next(0, paths.Length)]); } static int playerWinTimes = 0; //玩家贏的次數 static int gameTimes = 0; //總共次數 static int tieTimes = 0; //平手次數 /// <summary> /// 通用方法 /// </summary> /// <param name="fist"></param> private void Game(String fist) { gameTimes++; lbPlayer.Text = fist; int playerNum = Player.ShowFist(fist); Computer cpu = new Computer(); int cpuNum = cpu.ShowFist(); lbComputer.Text = cpu.Fist; Judge.RESULT result = Judge.WhoWin(playerNum, cpuNum); lbJudge.Text = result.ToString(); lbStatistics.Text = "統計信息:\n\n1.您贏了" + playerWinTimes + "場比賽!\n\n" + "2.平手了" + tieTimes + "次; \n\n" + "3.輸掉了" + (gameTimes - playerWinTimes - tieTimes) + "場比賽; \n\n" + "4.共進行了" + gameTimes + "場比賽!\n\n" ; if (result == Judge.RESULT.玩家贏) { playerWinTimes++; MessageBox.Show( "恭喜,您已經贏了" + playerWinTimes + "場比賽!" + " 共進行了" + gameTimes + "場比賽!" ); } else if (result == Judge.RESULT.平手) { tieTimes++; } } } } |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/jiliqiang1986/article/details/52035008