我是靠谱客的博主 故意电脑,这篇文章主要介绍C语言编一个数字益智小游戏,现在分享给大家,希望可以做个参考。

程序功能及运行情况

设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力。游戏共设有四个不同的小游戏,分别是一位数四则运算、两位数四则运算、找最值游戏、排序游戏。程序能实现产生随机题目,并能检验玩家的作答是否正确。为了小朋友能感受到游戏的乐趣,特意设置了得分系统,答对不同题目有不同的加分,并会根据总得分划分不同「段位」,呈现给玩家。另外,程序还运用了更加充满活力的设计,让玩家爱上该游戏。

程序运行截图主菜单


运算游戏


找最值游戏

排序游戏

得分统计

代码部分头文件区域

复制代码
1
2
3
4
5
6
7
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include<math.h> int score0 = 0; int u, z;

启动界面及主菜单

复制代码
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
int main() //主函数游戏说明 { int menu(); char o; printf("nn"); printf("t= = = = = = = = = = = = = = = =n"); printf("t= 数 字 益 智 小 游 戏 =n"); printf("t= =n"); printf("t= 欢迎游玩该数字益智小游戏,游戏共设有 =n"); printf("t= 四个小游戏,其中『算』小游戏各设有四 =n"); printf("t= 个关卡。当你挑战难度越高的小游戏,并 =n"); printf("t= 挑战成功,你将获得更高的得分奖励,最 =n"); printf("t= 终将根据你的总得分划分你的游戏段位。 =n"); printf("t= =n"); printf("t= =n"); printf("t= * * * * * * * * * =n"); printf("t= * 游 戏 段 位 * =n"); printf("t= * 『青铜』 --- 5 分 以 下 * =n"); printf("t= * 『白银』 --- 5 分 - 10 分 * =n"); printf("t= * 『黄金』 --- 10 分 - 15 分 * =n"); printf("t= * 『铂金』 --- 15 分 - 20 分 * =n"); printf("t= * 『钻石』 --- 20 分 - 25 分 * =n"); printf("t= * 『星耀』 --- 25 分 - 30 分 * =n"); printf("t= * 『王者』 --- 30 分 以 上 * =n"); printf("t= * * * * * * * * * =n"); printf("t= =n"); printf("t= 作 者 : Cowjiang =n"); printf("t= =n"); printf("t= = = = = = = = = = = = = = = =nn"); printf("t 按回车键即可开始游戏"); scanf_s("%c", &o, 1); if (o == 'n') //输入回车开始游戏 { system("cls"); menu(); } else exit(0); } int menu() //游戏主菜单函数 { void one_arithmetic(); void two_arithmetic(); void comparation(); void maxmin(); int score(); int scores(); int scorep(); int o; system("color 30"); printf("nn"); printf("t ** n"); printf("t * * n"); printf("t * 主 菜 单 * n"); printf("t * * n"); printf("t* * * * * * * * * * * * * * * n"); printf("t * * n"); printf("t * 1.『 算 』一位数运算 * n"); printf("t * 2.『 算 』两位数运算 * n"); printf("t * 3.『 找 』夹缝找最值 * n"); printf("t * 4.『 排 』排序比大小 * n"); printf("t * 5. 我 的 目 前 得 分 * n"); printf("t * 6. 退 出 益 智 游 戏 * n"); printf("t * * n"); printf("t * * * * * * * * * nn"); printf("t 请输入序号选择:"); scanf_s("%d", &o); if (o == 1) { one_arithmetic(); } else if (o == 2) { two_arithmetic(); } else if (o == 3) { maxmin(); } else if (o == 4) { comparation(); } else if (o == 5) { scorep(); } else if (o == 6) { printf("ntt= = = = = = = = = = = = = = = = =n"); printf("tt= =n"); printf("tt= 感谢你的游玩! =n"); printf("tt= =n"); printf("tt= = = = = = = = = = = = = = = = =n"); exit(0); } else { printf("nt 你输入的数字序号有误噢,请重新选择!n"); system("pause"); system("cls"); menu(); } }

得分统计

复制代码
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
int scorep() //查看当前得分 { system("color F4"); z = score0; system("cls"); printf("nn"); printf("tt * n"); printf("tt * * n"); printf("tt * * n"); printf("tt* * * * * * * * n"); printf("tt * 当前得分: * n"); printf("tt * %2d分 * n", z); printf("tt * * * * n"); printf("tt * * * * n"); if (z <= 5) { printf("tt ** [青 铜] ** n"); printf("tt * * n"); } else if (z > 5 && z <= 10) { printf("tt ** [白 银] ** n"); printf("tt * * n"); } else if (z > 10 && z <= 15) { printf("tt ** [黄 金] ** n"); printf("tt * * n"); } else if (z > 15 && z <= 20) { printf("tt ** [铂 金] ** n"); printf("tt * * n"); } else if (z > 20 && z <= 25) { printf("tt ** [钻 石] ** n"); printf("tt * * n"); } else if (z > 25 && z <= 30) { printf("tt ** [星 耀] ** n"); printf("tt * * n"); } else if (z > 30) { printf("tt ** [王 者] ** n"); printf("tt * * n"); } printf("nnt 继续游戏请输入1,退出游戏请输入2 :"); scanf_s("%d", &u); if (u == 1) //返回主菜单 { system("cls"); menu(); } else if (u == 2) //退出游戏 { printf("ntt= = = = = = = = = = = = = = = = =n"); printf("tt= =n"); printf("tt= 感谢你的游玩! =n"); printf("tt= =n"); printf("tt= = = = = = = = = = = = = = = = =n"); exit(0); } else { printf("nt 你输入的数字序号有误噢,返回主菜单!n"); menu(); } } int score() //加分函数 { score0++; return score0; } int scores() //减分函数 { score0--; return score0; }

一位数运算

复制代码
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
void one_arithmetic() //一位数运算 { int p, a, b, c, d, f, g, h, l, m; float e; srand(time(NULL)); a = rand() % 10; b = rand() % 10; g = rand() % 10; h = rand() % 10; system("color E0"); system("cls"); printf("nntt * * * * * * * * n"); //一位数运算主菜单 printf("tt * * n"); printf("tt * 1. [第一关] 加 法 * n"); printf("tt * 2. [第二关] 减 法 * n"); printf("tt * 3. [第三关] 乘 法 * n"); printf("tt * 4. [第四关] 除 法 * n"); printf("tt * 5. [进阶]混合运算 * n"); printf("tt * 6. [返 回] 主菜单 * n"); printf("tt * * n"); printf("tt * * * * * * * * n"); printf("tt * * * n"); printf("tt * * * n"); printf("tt * * * * * n"); printf("tt * * * n"); printf("tt * n"); printf("tt请输入数字序号选择挑战关卡:"); scanf_s("%d", &p); while (p == 1) //一位数加法 { system("cls"); printf("nt%d + %d = ", a, b); scanf_s("%d", &c); if (c == a + b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != a + b) { system("color 4E"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } one_arithmetic(); } while (p == 2) //一位数减法 { system("cls"); if (a > b) //控制大数减小数 { printf("nt%d - %d = ", a, b); scanf_s("%d", &c); if (c == a - b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != a - b) { system("color 4E"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } one_arithmetic(); } else if (a < b) { system("cls"); printf("nt%d - %d = ", b, a); scanf_s("%d", &c); if (c == b - a) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != b - a) { system("color 4E"); printf("nt太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } one_arithmetic(); } } while (p == 3) //一位数乘法 { system("cls"); printf("nt%d * %d = ", a, b); scanf_s("%d", &c); if (c == a * b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != a * b) { system("color 4E"); printf("ntt太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } one_arithmetic(); } while (p == 4) //一位数除法 { system("cls"); b = rand() % (9) + 1; //防止被除数为0 printf("nt(四舍五入保留整数)%d除以%d等于", a, b); scanf_s("%f", &e); f = b / 2; //四舍五入 if (a % b <= f) { d = (int)(e); if (d == a / b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (d != a / b) { system("color 4E"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } } if (a % b > f) { d = (int)(e - 0.5); if (d == a / b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (d != a / b) { system("color 4E"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } } one_arithmetic(); } while (p == 5) //一位数混合运算 { system("cls"); printf("nt%d + %d * ( %d - %d ) = ", a, b, g, h); scanf_s("%d", &l); m = a + b * (g - h); if (l == m) { system("color AE"); printf("n太棒了!挑战成功,加 2 分!nn"); score(); score(); system("pause"); } else if (l != m) { system("color 4E"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } one_arithmetic(); } while (p == 6) { system("cls"); menu(); } while (p < 1 || p > 6) { system("color 4E"); printf("ntt输入数字序号有误噢,请重新输入!nn"); system("pause"); one_arithmetic(); } }

两位数运算

复制代码
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
void two_arithmetic() //两位数运算 { int p, a, b, c, d, f, g, h, l, m; float e; srand(time(NULL)); a = rand() % (90) + 10; b = rand() % (90) + 10; g = rand() % (90) + 10; h = rand() % (90) + 10; system("color B0"); system("cls"); printf("nntt * * * * * * * * n"); //两位数运算主菜单 printf("tt * * n"); printf("tt * 1. [第一关] 加 法 * n"); printf("tt * 2. [第二关] 减 法 * n"); printf("tt * 3. [第三关] 乘 法 * n"); printf("tt * 4. [第四关] 除 法 * n"); printf("tt * 5. [进阶]混合运算 * n"); printf("tt * 6. [返 回] 主菜单 * n"); printf("tt * * n"); printf("tt * * * * * * * * n"); printf("tt * * * n"); printf("tt * * * n"); printf("tt * * * * * n"); printf("tt * * * n"); printf("tt * n"); printf("tt请输入数字序号选择挑战关卡:"); scanf_s("%d", &p); while (p == 1) //两位数加法 { system("cls"); printf("nt%d + %d = ", a, b); scanf_s("%d", &c); if (c == a + b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != a + b) { system("color 4B"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } two_arithmetic(); } while (p == 2) //两位数减法 { if (a > b) //控制大数减小数 { system("cls"); printf("nt%d - %d = ", a, b); scanf_s("%d", &c); if (c == a - b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != a - b) { system("color 4B"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } two_arithmetic(); } else if (a < b) { system("cls"); printf("nt%d - %d = ", b, a); scanf_s("%d", &c); if (c == b - a) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != b - a) { system("color 4B"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } two_arithmetic(); } } while (p == 3) //两位数乘法 { system("cls"); printf("nt%d * %d = ", a, b); scanf_s("%d", &c); if (c == a * b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (c != a * b) { system("color 4B"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } two_arithmetic(); } while (p == 4) //两位数除法 { b = rand() % (9) + 1; //防止被除数为0 system("cls"); printf("nt(四舍五入保留整数)%d除以%d等于", a, b); scanf_s("%f", &e); f = b / 2; //四舍五入 if (a % b <= f) { d = (int)(e); if (d == a / b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (d != a / b) { system("color 4B"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } } if (a % b > f) { d = (int)(e - 0.5); if (d == a / b) { system("color AE"); printf("n太棒了!挑战成功,加 1 分!nn"); score(); system("pause"); } else if (d != a / b) { system("color 4B"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } } two_arithmetic(); } while (p == 5) //两位数混合运算 { system("cls"); printf("nt%d + %d * ( %d - %d ) = ", a, b, g, h); scanf_s("%d", &l); m = a + b * (g - h); if (l == m) { system("color AE"); printf("n太棒了!挑战成功,加 2 分!nn"); score(); score(); system("pause"); } else if (l != m) { system("color 4B"); printf("n太可惜了!挑战失败,不要灰心噢!nn"); system("pause"); } one_arithmetic(); } while (p == 6) { system("cls"); menu(); } while (p < 1 || p > 6) { system("color 4B"); printf("ntt输入数字序号有误噢,请重新输入!nn"); system("pause"); two_arithmetic(); } }

排序游戏

复制代码
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
void comparation() //排序游戏 { int a[5], b[5]; int i, j, n, p, q; srand(time(NULL)); for (i = 0; i < 5; i++) a[i] = rand() % 10; system("cls"); system("color 9F"); printf("nnt* * * * * * * * * * * * * *n"); //排序游戏规则 printf("t* 游 戏 规 则 *n"); printf("t* 开始游戏后将会显示随机五个整数, *n"); printf("t* 请根据提示从小到大依次输入排序后 *n"); printf("t* 的五个整数,若排序正确即可获得 3 *n"); printf("t* 分奖励。加油噢,你能行! *n"); printf("t* * * * * * * * * * * * * *n"); printf("t * * * n"); printf("t * * * n"); printf("t * * * * * n"); printf("t * * * n"); printf("t * n"); printf("t 输入数字 0 即可开始游戏:"); scanf_s("%d", &p); if (p == 0) printf("nnt* * * * * * * * * * * * * *n"); printf("t* *n"); printf("t* "); for (i = 0; i < 5; i++) printf(" %d ", a[i]); for (j = 0; j < 4; j++) //将数组从小到大排列 { for (i = 0; i < 4 - j; i++) { if (a[i] > a[i + 1]) { n = a[i]; a[i] = a[i + 1]; a[i + 1] = n; } } } printf(" *n"); printf("t* *n"); printf("t* * * * * * * * * * * * * *nn"); printf("接下来,请从小到大输入排序后的五个整数(用空格隔开):"); for (i = 0; i < 5; i++) scanf_s("%d", &b[i]); for (i = 0; i < 5; i++) //验证回答正确与否 { if (a[i] == b[i]) continue; else { system("color 49"); printf("nt太可惜了,就差一点就成功了!再挑战一次吧!nn"); system("pause"); comparation(); } } system("color AF"); printf("n哇你太棒啦,挑战成功!获得 3 分奖励!nn"); score(); score(); score(); system("pause"); system("color 0F"); printf("nn想挑战别的游戏吗?nn"); printf("1. 挑战其它游戏 "); printf(" 2. 继续挑战排序游戏 "); printf(" 3. 查看当前得分nn"); printf("回复数字序号选择一项吧:"); scanf_s("%d", &q); if (q == 2) { system("cls"); comparation(); } else if (q == 3) scorep(); else { system("cls"); menu(); } } else //退出排序游戏? { system("color F0"); printf("nn想玩别的游戏吗?nn"); printf("1. 挑战其它游戏 "); printf(" 2. 继续当前游戏nn"); printf("回复数字序号选择一项吧:"); scanf_s("%d", &q); if (q == 2) comparation(); else { system("cls"); menu(); } } }

找最值游戏

复制代码
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
void maxmin() { int i, j, n, p, q, max, min, maxx, minn; int a[5]; srand(time(NULL)); system("color DF"); system("cls"); printf("nnt* * * * * * * * * * * * * *n"); //找最值游戏规则 printf("t* 游 戏 规 则 *n"); printf("t* 开始游戏后将会显示随机五个整数, *n"); printf("t* 请分别找出五个整数的最大值和最小 *n"); printf("t* 值,若回答正确即可获得 2 分奖励。 *n"); printf("t* 加油噢,你能行! *n"); printf("t* * * * * * * * * * * * * *n"); printf("t * * * n"); printf("t * * * n"); printf("t * * * * * n"); printf("t * * * n"); printf("t * n"); printf("t 输入数字 0 即可开始游戏:"); scanf_s("%d", &p); if (p == 0) { for (i = 0; i < 5; i++) a[i] = rand() % 10; printf("nnt* * * * * * * * * * * * * *n"); printf("t* *n"); printf("t* "); for (i = 0; i < 5; i++) printf(" %d ", a[i]); printf(" *n"); printf("t* *n"); printf("t* * * * * * * * * * * * * *nn"); printf("接下来,请找出最大值:"); scanf_s("%d", &maxx); printf("n然后请找出最小值:"); scanf_s("%d", &minn); max = a[4]; min = a[1]; for (i = 0; i < 5; i++) { if (a[i] > max) max = a[i]; if (a[i] < min) min = a[i]; } if (maxx == max && minn == min) //验证回答正确与否 { system("color AF"); printf("n哇你太棒啦!获得奖励 2 分!nn"); score(); score(); system("pause"); system("color 0F"); printf("nn想挑战别的游戏吗?nn"); printf("1. 挑战其它游戏 "); printf(" 2. 继续挑战找最值游戏 "); printf(" 3. 查看当前得分nn"); printf("回复数字序号选择一项吧:"); scanf_s("%d", &q); if (q == 2) { system("cls"); maxmin(); } else if (q == 3) scorep(); else { system("cls"); menu(); } } else { system("color 4F"); printf("n有点小可惜,再挑战一次吧!nn"); system("pause"); maxmin(); } } else //退出找最值游戏? { system("color F0"); printf("nn想玩别的游戏吗?nn"); printf("1. 挑战其它游戏 "); printf(" 2. 回到当前游戏nn"); printf("回复数字序号选择一项吧:"); scanf_s("%d", &q); if (q == 2) maxmin(); else { system("cls"); menu(); } } }

小结

这个数字益智游戏是我第一次编写如此规模的 C 语言程序,知识水平有限,也花了不少时间去编写这个程序,代码可能有不尽完美的地方,也没有尽可能地简化代码。最后,非常欢迎各路大神给我提出一些建议,大家一起学习,共同进步,奥力给!

以上所述是小编给大家介绍的C语言编一个数字益智小游戏,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对靠谱客网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

最后

以上就是故意电脑最近收集整理的关于C语言编一个数字益智小游戏的全部内容,更多相关C语言编一个数字益智小游戏内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(94)

评论列表共有 0 条评论

立即
投稿
返回
顶部