经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
C语言实现猜数字小游戏的示例代码
来源:jb51  时间:2022/8/22 14:54:58  对本文有异议

一、猜数字小游戏的要求

猜数字小游戏是我们小时候喜欢我们一个经典小游戏,在本文中,猜数字小游戏主要的功能如下所示

1.登入猜数字小游戏系统,显示小时欢迎界面。

2.用户猜的数字有系统随机在1-20之间生成。

3.用户可以有5次机会猜这个随机生成的数字。

4.若用户猜大了,则系统会显示猜大了,并提示还有多少猜数字的机会。

5.若5次都没有猜中系统随机生成的数字,则游戏结束。

二、猜数字小游戏实现的过程

2.1项目创建

使用VS2019创建一个名为GuessNumber的C语言项目,并在GuessNumber项目中创建Main.c源文件和Main.h头文件。

2.2头文件内容

在Main.h头文件中,将有关的头文件包含进来,如下所示

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

在声明两个函数,如下所示

  1. // 显示菜单
  2. void menu();
  3.  
  4. // 猜数字游戏功能
  5. void gameGuess();

其中,menu函数的功能是显示猜数字小游戏的初始化界面,并提供猜数字小游戏的相关说明。gameGuess函数的功能是整个猜数字游戏的核心,在gameGuess中主要是实现用户猜数字的功能,并且给用户提供友好的提示功能。

2.3源文件内容

首先将头文件包含进来

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include "Main.h"

其中#define _CRT_SECURE_NO_WARNINGS是为了使编译器没有警告。

main函数中添加代码如下

  1. system("color 3E");
  2.  
  3. int select = 0;
  4.  
  5. //防止出现的随机数一样
  6. srand((unsigned int)time(NULL));
  7.  
  8. //利用循环实现可以多次玩
  9. do
  10. {
  11. menu();
  12.  
  13. printf("请输入选项:");
  14. scanf("%d", &select);
  15.  
  16. switch (select)
  17. {
  18. case 1:
  19. gameGuess();
  20. break;
  21. case 0:
  22. break;
  23. default:
  24. printf("选择错误\n");
  25. system("pause");
  26. system("cls");
  27. break;
  28. }
  29.  
  30. } while (select);
  31.  
  32. printf("欢迎下次使用,再见!!!\n");
  33.  
  34. system("pause");
  35. return 0;

首先定义select 变量,根据用户输入的值,给变量select 赋值,从而进入相应的函数,进而实现相关的功能。

srand是为了防止出现的随机数一样。

根据输入的select值,进入switch 分支语句进行判断。

menu函数如下

  1. // 显示菜单
  2. void menu()
  3. {
  4. printf("**********************************************************\n");
  5. printf("* 欢迎来到猜数字小游戏\n");
  6. printf("* 规则说明\n");
  7. printf("* 猜的数字为1-20\n");
  8. printf("* 共有5次机会\n");
  9. printf("* 欢迎猜中数字哦!!!\n\n");
  10.  
  11. printf("* 1.开始游戏\n");
  12. printf("* 0.退出游戏\n");
  13. printf("**********************************************************\n\n");
  14. }

其主要的功能是显示系统的菜单功能,给用户提示猜数字小游戏应该如何进行。

gameGuess函数如下

  1. //猜数字游戏功能函数
  2. void gameGuess()
  3. {
  4. int num = 0, input = 0, count = 0;
  5.  
  6. num = rand() % 20 + 1;//获取1-100的一个随机数
  7.  
  8. while (count != 5)//利用if循环判断
  9. {
  10. printf("请输入数字:");
  11. scanf("%d", &input);
  12.  
  13. if (input == num)
  14. {
  15. printf("恭喜啦,你猜的数字是对的!!!\n");
  16. break;
  17. }
  18. else if (input < num)
  19. {
  20. printf("你猜小了\n");
  21. }
  22. else
  23. {
  24. printf("你猜大了\n");
  25. }
  26.  
  27. count++;
  28. if (count == 5)
  29. {
  30. printf("很遗憾,5次机会用完了,你没有猜对!!!\n\n");
  31. printf("正确答案是:%d\n", num);
  32. break;
  33. }
  34. printf("你还有:%d次机会\n\n", 5 - count);
  35. }
  36.  
  37. system("pause");
  38. system("cls");
  39. }

使用系统库函数rand随机生成一个1-20的数字,赋值给变量num ,然后根据输入的变量input值是否相等使用 == 进行判断。

count主要用于判断用户还有多少次猜数字的机会。

三、猜数字小游戏调试结果如下

1.进入系统,输入数字1

2.猜对的调试结果

3.没有猜对的调试结果

四、基于猜数字小游戏的总结

本文的猜数字小游戏让我们对于C语言的入门可以得到有效的提高,对于srand函数、rand函数,Switch语句、while循环、if条件判据等C语言知识点可以进一步的掌握。

五、完整代码

Main.h头文件

  1. #pragma once
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6.  
  7. // 显示菜单
  8. void menu();
  9.  
  10. // 猜数字游戏功能
  11. void gameGuess();
  12.  

Main.c源文件

  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include "Main.h"
  4.  
  5. int main()
  6. {
  7. system("color 3E");
  8.  
  9. int select = 0;
  10.  
  11. //防止出现的随机数一样
  12. srand((unsigned int)time(NULL));
  13.  
  14. //利用循环实现可以多次玩
  15. do
  16. {
  17. menu();
  18.  
  19. printf("请输入选项:");
  20. scanf("%d", &select);
  21.  
  22. switch (select)
  23. {
  24. case 1:
  25. gameGuess();
  26. break;
  27. case 0:
  28. break;
  29. default:
  30. printf("选择错误\n");
  31. system("pause");
  32. system("cls");
  33. break;
  34. }
  35.  
  36. } while (select);
  37.  
  38. printf("欢迎下次使用,再见!!!\n");
  39.  
  40. system("pause");
  41. return 0;
  42. }
  43.  
  44. // 显示菜单
  45. void menu()
  46. {
  47. printf("**********************************************************\n");
  48. printf("* 欢迎来到猜数字小游戏\n");
  49. printf("* 规则说明\n");
  50. printf("* 猜的数字为1-20\n");
  51. printf("* 共有5次机会\n");
  52. printf("* 欢迎猜中数字哦!!!\n\n");
  53.  
  54. printf("* 1.开始游戏\n");
  55. printf("* 0.退出游戏\n");
  56. printf("**********************************************************\n\n");
  57. }
  58.  
  59. //猜数字游戏功能函数
  60. void gameGuess()
  61. {
  62. int num = 0, input = 0, count = 0;
  63.  
  64. num = rand() % 20 + 1;//获取1-100的一个随机数
  65.  
  66. while (count != 5)//利用if循环判断
  67. {
  68. printf("请输入数字:");
  69. scanf("%d", &input);
  70.  
  71. if (input == num)
  72. {
  73. printf("恭喜啦,你猜的数字是对的!!!\n");
  74. break;
  75. }
  76. else if (input < num)
  77. {
  78. printf("你猜小了\n");
  79. }
  80. else
  81. {
  82. printf("你猜大了\n");
  83. }
  84.  
  85. count++;
  86. if (count == 5)
  87. {
  88. printf("很遗憾,5次机会用完了,你没有猜对!!!\n\n");
  89. printf("正确答案是:%d\n", num);
  90. break;
  91. }
  92. printf("你还有:%d次机会\n\n", 5 - count);
  93. }
  94.  
  95. system("pause");
  96. system("cls");
  97. }

到此这篇关于C语言实现猜数字小游戏的示例代码的文章就介绍到这了,更多相关C语言猜数字内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号