C語言編一個數(shù)字益智小游戲
程序功能及運行情況
設(shè)計的程序是一個數(shù)字益智游戲,旨在培養(yǎng)小朋友玩家的數(shù)學(xué)思維,提高玩家的數(shù)學(xué)能力。游戲共設(shè)有四個不同的小游戲,分別是一位數(shù)四則運算、兩位數(shù)四則運算、找最值游戲、排序游戲。程序能實現(xiàn)產(chǎn)生隨機題目,并能檢驗玩家的作答是否正確。為了小朋友能感受到游戲的樂趣,特意設(shè)置了得分系統(tǒng),答對不同題目有不同的加分,并會根據(jù)總得分劃分不同「段位」,呈現(xiàn)給玩家。另外,程序還運用了更加充滿活力的設(shè)計,讓玩家愛上該游戲。
程序運行截圖主菜單
運算游戲
找最值游戲
排序游戲
得分統(tǒng)計
代碼部分頭文件區(qū)域
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include<math.h> int score0 = 0; int u, z;
啟動界面及主菜單
int main() //主函數(shù)游戲說明 { int menu(); char o; printf(" "); printf(" = = = = = = = = = = = = = = = = "); printf(" = 數(shù) 字 益 智 小 游 戲 = "); printf(" = = "); printf(" = 歡迎游玩該數(shù)字益智小游戲,游戲共設(shè)有 = "); printf(" = 四個小游戲,其中『算』小游戲各設(shè)有四 = "); printf(" = 個關(guān)卡。當(dāng)你挑戰(zhàn)難度越高的小游戲,并 = "); printf(" = 挑戰(zhàn)成功,你將獲得更高的得分獎勵,最 = "); printf(" = 終將根據(jù)你的總得分劃分你的游戲段位。 = "); printf(" = = "); printf(" = = "); printf(" = * * * * * * * * * = "); printf(" = * 游 戲 段 位 * = "); printf(" = * 『青銅』 --- 5 分 以 下 * = "); printf(" = * 『白銀』 --- 5 分 - 10 分 * = "); printf(" = * 『黃金』 --- 10 分 - 15 分 * = "); printf(" = * 『鉑金』 --- 15 分 - 20 分 * = "); printf(" = * 『鉆石』 --- 20 分 - 25 分 * = "); printf(" = * 『星耀』 --- 25 分 - 30 分 * = "); printf(" = * 『王者』 --- 30 分 以 上 * = "); printf(" = * * * * * * * * * = "); printf(" = = "); printf(" = 作 者 : Cowjiang = "); printf(" = = "); printf(" = = = = = = = = = = = = = = = = "); printf(" 按回車鍵即可開始游戲"); scanf_s("%c", &o, 1); if (o == ' ') //輸入回車開始游戲 { system("cls"); menu(); } else exit(0); } int menu() //游戲主菜單函數(shù) { void one_arithmetic(); void two_arithmetic(); void comparation(); void maxmin(); int score(); int scores(); int scorep(); int o; system("color 30"); printf(" "); printf(" ** "); printf(" * * "); printf(" * 主 菜 單 * "); printf(" * * "); printf(" * * * * * * * * * * * * * * * "); printf(" * * "); printf(" * 1.『 算 』一位數(shù)運算 * "); printf(" * 2.『 算 』兩位數(shù)運算 * "); printf(" * 3.『 找 』夾縫找最值 * "); printf(" * 4.『 排 』排序比大小 * "); printf(" * 5. 我 的 目 前 得 分 * "); printf(" * 6. 退 出 益 智 游 戲 * "); printf(" * * "); printf(" * * * * * * * * * "); printf(" 請輸入序號選擇:"); 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(" = = = = = = = = = = = = = = = = = "); printf(" = = "); printf(" = 感謝你的游玩! = "); printf(" = = "); printf(" = = = = = = = = = = = = = = = = = "); exit(0); } else { printf(" 你輸入的數(shù)字序號有誤噢,請重新選擇! "); system("pause"); system("cls"); menu(); } }
得分統(tǒng)計
int scorep() //查看當(dāng)前得分 { system("color F4"); z = score0; system("cls"); printf(" "); printf(" * "); printf(" * * "); printf(" * * "); printf(" * * * * * * * * "); printf(" * 當(dāng)前得分: * "); printf(" * %2d分 * ", z); printf(" * * * * "); printf(" * * * * "); if (z <= 5) { printf(" ** [青 銅] ** "); printf(" * * "); } else if (z > 5 && z <= 10) { printf(" ** [白 銀] ** "); printf(" * * "); } else if (z > 10 && z <= 15) { printf(" ** [黃 金] ** "); printf(" * * "); } else if (z > 15 && z <= 20) { printf(" ** [鉑 金] ** "); printf(" * * "); } else if (z > 20 && z <= 25) { printf(" ** [鉆 石] ** "); printf(" * * "); } else if (z > 25 && z <= 30) { printf(" ** [星 耀] ** "); printf(" * * "); } else if (z > 30) { printf(" ** [王 者] ** "); printf(" * * "); } printf(" 繼續(xù)游戲請輸入1,退出游戲請輸入2 :"); scanf_s("%d", &u); if (u == 1) //返回主菜單 { system("cls"); menu(); } else if (u == 2) //退出游戲 { printf(" = = = = = = = = = = = = = = = = = "); printf(" = = "); printf(" = 感謝你的游玩! = "); printf(" = = "); printf(" = = = = = = = = = = = = = = = = = "); exit(0); } else { printf(" 你輸入的數(shù)字序號有誤噢,返回主菜單! "); menu(); } } int score() //加分函數(shù) { score0++; return score0; } int scores() //減分函數(shù) { score0--; return score0; }
一位數(shù)運算
void one_arithmetic() //一位數(shù)運算 { 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(" * * * * * * * * "); //一位數(shù)運算主菜單 printf(" * * "); printf(" * 1. [第一關(guān)] 加 法 * "); printf(" * 2. [第二關(guān)] 減 法 * "); printf(" * 3. [第三關(guān)] 乘 法 * "); printf(" * 4. [第四關(guān)] 除 法 * "); printf(" * 5. [進階]混合運算 * "); printf(" * 6. [返 回] 主菜單 * "); printf(" * * "); printf(" * * * * * * * * "); printf(" * * * "); printf(" * * * "); printf(" * * * * * "); printf(" * * * "); printf(" * "); printf(" 請輸入數(shù)字序號選擇挑戰(zhàn)關(guān)卡:"); scanf_s("%d", &p); while (p == 1) //一位數(shù)加法 { system("cls"); printf(" %d + %d = ", a, b); scanf_s("%d", &c); if (c == a + b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != a + b) { system("color 4E"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } one_arithmetic(); } while (p == 2) //一位數(shù)減法 { system("cls"); if (a > b) //控制大數(shù)減小數(shù) { printf(" %d - %d = ", a, b); scanf_s("%d", &c); if (c == a - b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != a - b) { system("color 4E"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } one_arithmetic(); } else if (a < b) { system("cls"); printf(" %d - %d = ", b, a); scanf_s("%d", &c); if (c == b - a) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != b - a) { system("color 4E"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } one_arithmetic(); } } while (p == 3) //一位數(shù)乘法 { system("cls"); printf(" %d * %d = ", a, b); scanf_s("%d", &c); if (c == a * b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != a * b) { system("color 4E"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } one_arithmetic(); } while (p == 4) //一位數(shù)除法 { system("cls"); b = rand() % (9) + 1; //防止被除數(shù)為0 printf(" (四舍五入保留整數(shù))%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(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (d != a / b) { system("color 4E"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } } if (a % b > f) { d = (int)(e - 0.5); if (d == a / b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (d != a / b) { system("color 4E"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } } one_arithmetic(); } while (p == 5) //一位數(shù)混合運算 { system("cls"); printf(" %d + %d * ( %d - %d ) = ", a, b, g, h); scanf_s("%d", &l); m = a + b * (g - h); if (l == m) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 2 分! "); score(); score(); system("pause"); } else if (l != m) { system("color 4E"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } one_arithmetic(); } while (p == 6) { system("cls"); menu(); } while (p < 1 || p > 6) { system("color 4E"); printf(" 輸入數(shù)字序號有誤噢,請重新輸入! "); system("pause"); one_arithmetic(); } }
兩位數(shù)運算
void two_arithmetic() //兩位數(shù)運算 { 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(" * * * * * * * * "); //兩位數(shù)運算主菜單 printf(" * * "); printf(" * 1. [第一關(guān)] 加 法 * "); printf(" * 2. [第二關(guān)] 減 法 * "); printf(" * 3. [第三關(guān)] 乘 法 * "); printf(" * 4. [第四關(guān)] 除 法 * "); printf(" * 5. [進階]混合運算 * "); printf(" * 6. [返 回] 主菜單 * "); printf(" * * "); printf(" * * * * * * * * "); printf(" * * * "); printf(" * * * "); printf(" * * * * * "); printf(" * * * "); printf(" * "); printf(" 請輸入數(shù)字序號選擇挑戰(zhàn)關(guān)卡:"); scanf_s("%d", &p); while (p == 1) //兩位數(shù)加法 { system("cls"); printf(" %d + %d = ", a, b); scanf_s("%d", &c); if (c == a + b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != a + b) { system("color 4B"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } two_arithmetic(); } while (p == 2) //兩位數(shù)減法 { if (a > b) //控制大數(shù)減小數(shù) { system("cls"); printf(" %d - %d = ", a, b); scanf_s("%d", &c); if (c == a - b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != a - b) { system("color 4B"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } two_arithmetic(); } else if (a < b) { system("cls"); printf(" %d - %d = ", b, a); scanf_s("%d", &c); if (c == b - a) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != b - a) { system("color 4B"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } two_arithmetic(); } } while (p == 3) //兩位數(shù)乘法 { system("cls"); printf(" %d * %d = ", a, b); scanf_s("%d", &c); if (c == a * b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (c != a * b) { system("color 4B"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } two_arithmetic(); } while (p == 4) //兩位數(shù)除法 { b = rand() % (9) + 1; //防止被除數(shù)為0 system("cls"); printf(" (四舍五入保留整數(shù))%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(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (d != a / b) { system("color 4B"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } } if (a % b > f) { d = (int)(e - 0.5); if (d == a / b) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 1 分! "); score(); system("pause"); } else if (d != a / b) { system("color 4B"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } } two_arithmetic(); } while (p == 5) //兩位數(shù)混合運算 { system("cls"); printf(" %d + %d * ( %d - %d ) = ", a, b, g, h); scanf_s("%d", &l); m = a + b * (g - h); if (l == m) { system("color AE"); printf(" 太棒了!挑戰(zhàn)成功,加 2 分! "); score(); score(); system("pause"); } else if (l != m) { system("color 4B"); printf(" 太可惜了!挑戰(zhàn)失敗,不要灰心噢! "); system("pause"); } one_arithmetic(); } while (p == 6) { system("cls"); menu(); } while (p < 1 || p > 6) { system("color 4B"); printf(" 輸入數(shù)字序號有誤噢,請重新輸入! "); system("pause"); two_arithmetic(); } }
排序游戲
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(" * * * * * * * * * * * * * * "); //排序游戲規(guī)則 printf(" * 游 戲 規(guī) 則 * "); printf(" * 開始游戲后將會顯示隨機五個整數(shù), * "); printf(" * 請根據(jù)提示從小到大依次輸入排序后 * "); printf(" * 的五個整數(shù),若排序正確即可獲得 3 * "); printf(" * 分獎勵。加油噢,你能行! * "); printf(" * * * * * * * * * * * * * * "); printf(" * * * "); printf(" * * * "); printf(" * * * * * "); printf(" * * * "); printf(" * "); printf(" 輸入數(shù)字 0 即可開始游戲:"); scanf_s("%d", &p); if (p == 0) printf(" * * * * * * * * * * * * * * "); printf(" * * "); printf(" * "); for (i = 0; i < 5; i++) printf(" %d ", a[i]); for (j = 0; j < 4; j++) //將數(shù)組從小到大排列 { 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(" * "); printf(" * * "); printf(" * * * * * * * * * * * * * * "); printf("接下來,請從小到大輸入排序后的五個整數(shù)(用空格隔開):"); 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(" 太可惜了,就差一點就成功了!再挑戰(zhàn)一次吧! "); system("pause"); comparation(); } } system("color AF"); printf(" 哇你太棒啦,挑戰(zhàn)成功!獲得 3 分獎勵! "); score(); score(); score(); system("pause"); system("color 0F"); printf(" 想挑戰(zhàn)別的游戲嗎? "); printf("1. 挑戰(zhàn)其它游戲 "); printf(" 2. 繼續(xù)挑戰(zhàn)排序游戲 "); printf(" 3. 查看當(dāng)前得分 "); printf("回復(fù)數(shù)字序號選擇一項吧:"); scanf_s("%d", &q); if (q == 2) { system("cls"); comparation(); } else if (q == 3) scorep(); else { system("cls"); menu(); } } else //退出排序游戲? { system("color F0"); printf(" 想玩別的游戲嗎? "); printf("1. 挑戰(zhàn)其它游戲 "); printf(" 2. 繼續(xù)當(dāng)前游戲 "); printf("回復(fù)數(shù)字序號選擇一項吧:"); scanf_s("%d", &q); if (q == 2) comparation(); else { system("cls"); menu(); } } }
找最值游戲
void maxmin() { int i, j, n, p, q, max, min, maxx, minn; int a[5]; srand(time(NULL)); system("color DF"); system("cls"); printf(" * * * * * * * * * * * * * * "); //找最值游戲規(guī)則 printf(" * 游 戲 規(guī) 則 * "); printf(" * 開始游戲后將會顯示隨機五個整數(shù), * "); printf(" * 請分別找出五個整數(shù)的最大值和最小 * "); printf(" * 值,若回答正確即可獲得 2 分獎勵。 * "); printf(" * 加油噢,你能行! * "); printf(" * * * * * * * * * * * * * * "); printf(" * * * "); printf(" * * * "); printf(" * * * * * "); printf(" * * * "); printf(" * "); printf(" 輸入數(shù)字 0 即可開始游戲:"); scanf_s("%d", &p); if (p == 0) { for (i = 0; i < 5; i++) a[i] = rand() % 10; printf(" * * * * * * * * * * * * * * "); printf(" * * "); printf(" * "); for (i = 0; i < 5; i++) printf(" %d ", a[i]); printf(" * "); printf(" * * "); printf(" * * * * * * * * * * * * * * "); printf("接下來,請找出最大值:"); scanf_s("%d", &maxx); printf(" 然后請找出最小值:"); 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(" 哇你太棒啦!獲得獎勵 2 分! "); score(); score(); system("pause"); system("color 0F"); printf(" 想挑戰(zhàn)別的游戲嗎? "); printf("1. 挑戰(zhàn)其它游戲 "); printf(" 2. 繼續(xù)挑戰(zhàn)找最值游戲 "); printf(" 3. 查看當(dāng)前得分 "); printf("回復(fù)數(shù)字序號選擇一項吧:"); scanf_s("%d", &q); if (q == 2) { system("cls"); maxmin(); } else if (q == 3) scorep(); else { system("cls"); menu(); } } else { system("color 4F"); printf(" 有點小可惜,再挑戰(zhàn)一次吧! "); system("pause"); maxmin(); } } else //退出找最值游戲? { system("color F0"); printf(" 想玩別的游戲嗎? "); printf("1. 挑戰(zhàn)其它游戲 "); printf(" 2. 回到當(dāng)前游戲 "); printf("回復(fù)數(shù)字序號選擇一項吧:"); scanf_s("%d", &q); if (q == 2) maxmin(); else { system("cls"); menu(); } } }
小結(jié)
這個數(shù)字益智游戲是我第一次編寫如此規(guī)模的 C 語言程序,知識水平有限,也花了不少時間去編寫這個程序,代碼可能有不盡完美的地方,也沒有盡可能地簡化代碼。最后,非常歡迎各路大神給我提出一些建議,大家一起學(xué)習(xí),共同進步,奧力給!
以上所述是小編給大家介紹的C語言編一個數(shù)字益智小游戲,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對我們網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
上一篇:C語言數(shù)組實現(xiàn)公交車管理系統(tǒng)
欄 目:C語言
本文標(biāo)題:C語言編一個數(shù)字益智小游戲
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結(jié)
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什