温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

利用C语言写一个数字益智小游戏代码分享

发布时间:2021-08-27 18:04:27 来源:亿速云 阅读:150 作者:chen 栏目:编程语言

这篇文章主要讲解了“利用C语言写一个数字益智小游戏代码分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“利用C语言写一个数字益智小游戏代码分享”吧!

代码部分头文件区域

#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include<math.h> int score0 = 0;int u, z;

启动界面及主菜单

int main()     //主函数游戏说明 { int menu(); char o; printf("\n\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= *  游 戏 段 位 * =\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= = = = = = = = = = = = = = = =\n\n"); 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("\n\n"); 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 * * * * * * * * * \n\n"); 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("\n\t\t= = = = = = = = = = = = = = = = =\n"); printf("\t\t=    =\n"); printf("\t\t=  感谢你的游玩! =\n"); printf("\t\t=    =\n"); printf("\t\t= = = = = = = = = = = = = = = = =\n"); exit(0); } else { printf("\n\t 你输入的数字序号有误噢,请重新选择!\n"); system("pause"); system("cls"); menu(); }}

得分统计

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

一位数运算

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("\n\n\t\t * * * * * * * * \n"); //一位数运算主菜单  printf("\t\t *   * \n"); printf("\t\t * 1. [第一关] 加 法 * \n"); printf("\t\t * 2. [第二关] 减 法 * \n"); printf("\t\t * 3. [第三关] 乘 法 * \n"); printf("\t\t * 4. [第四关] 除 法 * \n"); printf("\t\t * 5. [进阶]混合运算 * \n"); printf("\t\t * 6. [返 回] 主菜单 * \n"); printf("\t\t *   * \n"); printf("\t\t * * * * * * * * \n"); printf("\t\t  * * *  \n"); printf("\t\t  * * *  \n"); printf("\t\t * * * * * \n"); printf("\t\t  * * *  \n"); printf("\t\t  *  \n"); printf("\t\t请输入数字序号选择挑战关卡:"); scanf_s("%d", &p); while (p == 1)    //一位数加法  { system("cls"); printf("\n\t%d + %d = ", a, b); scanf_s("%d", &c); if (c == a + b) {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause"); } else if (c != a + b) {  system("color 4E");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause"); } one_arithmetic(); } while (p == 2)     //一位数减法  { system("cls"); if (a > b)   //控制大数减小数  {  printf("\n\t%d - %d = ", a, b);  scanf_s("%d", &c);  if (c == a - b)  {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause");  }  else if (c != a - b)  {  system("color 4E");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  }  one_arithmetic(); } else if (a < b) {  system("cls");  printf("\n\t%d - %d = ", b, a);  scanf_s("%d", &c);  if (c == b - a)  {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause");  }  else if (c != b - a)  {  system("color 4E");  printf("\n\t太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  }  one_arithmetic(); } } while (p == 3) //一位数乘法  { system("cls"); printf("\n\t%d * %d = ", a, b); scanf_s("%d", &c); if (c == a * b) {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause"); } else if (c != a * b) {  system("color 4E");  printf("\n\t\t太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause"); } one_arithmetic(); } while (p == 4)  //一位数除法  { system("cls"); b = rand() % (9) + 1;     //防止被除数为0  printf("\n\t(四舍五入保留整数)%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 分!\n\n");  score();  system("pause");  }  else if (d != a / b)  {  system("color 4E");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  } } if (a % b > f) {  d = (int)(e - 0.5);  if (d == a / b)  {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause");  }  else if (d != a / b)  {  system("color 4E");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  } } one_arithmetic(); } while (p == 5)    //一位数混合运算  { system("cls"); printf("\n\t%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 分!\n\n");  score();  score();  system("pause"); } else if (l != m) {  system("color 4E");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause"); } one_arithmetic(); } while (p == 6) { system("cls"); menu(); } while (p < 1 || p > 6) { system("color 4E"); printf("\n\t\t输入数字序号有误噢,请重新输入!\n\n"); system("pause"); one_arithmetic(); }}

两位数运算

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("\n\n\t\t * * * * * * * * \n"); //两位数运算主菜单  printf("\t\t *   * \n"); printf("\t\t * 1. [第一关] 加 法 * \n"); printf("\t\t * 2. [第二关] 减 法 * \n"); printf("\t\t * 3. [第三关] 乘 法 * \n"); printf("\t\t * 4. [第四关] 除 法 * \n"); printf("\t\t * 5. [进阶]混合运算 * \n"); printf("\t\t * 6. [返 回] 主菜单 * \n"); printf("\t\t *   * \n"); printf("\t\t * * * * * * * * \n"); printf("\t\t  * * *  \n"); printf("\t\t  * * *  \n"); printf("\t\t * * * * * \n"); printf("\t\t  * * *  \n"); printf("\t\t  *  \n"); printf("\t\t请输入数字序号选择挑战关卡:"); scanf_s("%d", &p); while (p == 1)   //两位数加法  { system("cls"); printf("\n\t%d + %d = ", a, b); scanf_s("%d", &c); if (c == a + b) {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause"); } else if (c != a + b) {  system("color 4B");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause"); } two_arithmetic(); } while (p == 2)  //两位数减法  { if (a > b)  //控制大数减小数  {  system("cls");  printf("\n\t%d - %d = ", a, b);  scanf_s("%d", &c);  if (c == a - b)  {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause");  }  else if (c != a - b)  {  system("color 4B");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  }  two_arithmetic(); } else if (a < b) {  system("cls");  printf("\n\t%d - %d = ", b, a);  scanf_s("%d", &c);  if (c == b - a)  {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause");  }  else if (c != b - a)  {  system("color 4B");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  }  two_arithmetic(); } } while (p == 3)     //两位数乘法  { system("cls"); printf("\n\t%d * %d = ", a, b); scanf_s("%d", &c); if (c == a * b) {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause"); } else if (c != a * b) {  system("color 4B");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause"); } two_arithmetic(); } while (p == 4)      //两位数除法  { b = rand() % (9) + 1;    //防止被除数为0  system("cls"); printf("\n\t(四舍五入保留整数)%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 分!\n\n");  score();  system("pause");  }  else if (d != a / b)  {  system("color 4B");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  } } if (a % b > f) {  d = (int)(e - 0.5);  if (d == a / b)  {  system("color AE");  printf("\n太棒了!挑战成功,加 1 分!\n\n");  score();  system("pause");  }  else if (d != a / b)  {  system("color 4B");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause");  } } two_arithmetic(); } while (p == 5)  //两位数混合运算  { system("cls"); printf("\n\t%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 分!\n\n");  score();  score();  system("pause"); } else if (l != m) {  system("color 4B");  printf("\n太可惜了!挑战失败,不要灰心噢!\n\n");  system("pause"); } one_arithmetic(); } while (p == 6) { system("cls"); menu(); } while (p < 1 || p > 6) { system("color 4B"); printf("\n\t\t输入数字序号有误噢,请重新输入!\n\n"); 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("\n\n\t* * * * * * * * * * * * * *\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("\n\n\t* * * * * * * * * * * * * *\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* * * * * * * * * * * * * *\n\n"); 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("\n\t太可惜了,就差一点就成功了!再挑战一次吧!\n\n");  system("pause");  comparation();  } } system("color AF"); printf("\n哇你太棒啦,挑战成功!获得 3 分奖励!\n\n"); score(); score(); score(); system("pause"); system("color 0F"); printf("\n\n想挑战别的游戏吗?\n\n"); printf("1. 挑战其它游戏 "); printf(" 2. 继续挑战排序游戏 "); printf(" 3. 查看当前得分\n\n"); 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("\n\n想玩别的游戏吗?\n\n"); printf("1. 挑战其它游戏 "); printf(" 2. 继续当前游戏\n\n"); printf("回复数字序号选择一项吧:"); 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("\n\n\t* * * * * * * * * * * * * *\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("\n\n\t* * * * * * * * * * * * * *\n"); printf("\t*     *\n"); printf("\t* "); for (i = 0; i < 5; i++)  printf(" %d ", a[i]); printf(" *\n"); printf("\t*     *\n"); printf("\t* * * * * * * * * * * * * *\n\n"); 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 分!\n\n");  score();  score();  system("pause");  system("color 0F");  printf("\n\n想挑战别的游戏吗?\n\n");  printf("1. 挑战其它游戏 ");  printf(" 2. 继续挑战找最值游戏 ");  printf(" 3. 查看当前得分\n\n");  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有点小可惜,再挑战一次吧!\n\n");  system("pause");  maxmin(); } } else  //退出找最值游戏?  { system("color F0"); printf("\n\n想玩别的游戏吗?\n\n"); printf("1. 挑战其它游戏 "); printf(" 2. 回到当前游戏\n\n"); printf("回复数字序号选择一项吧:"); scanf_s("%d", &q); if (q == 2)  maxmin(); else {  system("cls");  menu(); } }}

感谢各位的阅读,以上就是“利用C语言写一个数字益智小游戏代码分享”的内容了,经过本文的学习后,相信大家对利用C语言写一个数字益智小游戏代码分享这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI