提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、游戏分析
  • 二、代码实现
    • 1.建立菜单
    • 2.如何产生随机数
    • 3.判断猜的数字
  • 三、完整代码
  • 四、运行效果

前言

猜字小游戏,c语言初学者在学习过程必不可少的练手小项目,虽然在大佬面前,这个弄出来有手就行,但对于初学者,这其中的思维逻辑还是值得学习的,现在就跟着我一起往下去看。(作者也是菜鸟,若哪里写得不好,请大佬指出 (狗头保命))``


一、游戏分析

游戏规则:在1~100之间随机一个数,让玩家猜,猜错了提示大了还是小了,直至玩家猜对。
构建游戏思路:

  1. 建立一个最简单的菜单,让玩家选择是否玩猜字游戏。
  2. 如何产生随机数。
  3. 判断猜的数字是否正确。

二、代码实现

1.建立菜单

代码如下(示例):

void menu()//这里使用void是不需要返回值类型没有任何要求
{printf("*************************\n");printf("******play game:>1*****\n");printf("******exit game:>0*****\n");printf("*************************\n");
}int main()
{int input = 0;do//这里选择do while最合适,想让他先玩游戏再选择是否接着玩。{menu();printf("请选择:>\n");scanf("%d", &input);switch (input){case 0:printf("退出程序\n");break;case 1:break;default:printf("选择错误,请重新选择\n");break;}} while (input);

通过do while switch,这样一个简单的菜单就弄好了。

2.如何产生随机数

产生随机数则需要用到rand()和种子生成器srand(),因为是库函数,对应的头文件是stdlib.h
首先介绍rand(), rand()的随机值范围是从0到RAND_MAX(值为32767),但是他有一个缺点,再次输入的时候出现值是相同的,如图所示:


srand()的作用就来了,通过输入任意值使得rand()随机出的来的值改变,但是也有缺点,就是使rand()值虽然改变了,但是每次值都是不变,若是能让srand()中输入值不断在变化,那么rand()就不会每次都相同了。引入时间戳的概念,因为时间是一直在变化的,所以可以使用time(),他对应的头文件是time.h。
代码如下:

srand((unsigned int)time(null));
//srand函数所需要的是unsigned int类型,所以需要强制转换类型,而time函数是time_t类型,而time所需要的是指针,但是我们只是想让它随机一个值,不在意是什么值,直接使用空指针。

代码如下:

int ret = rand()%100+1;//rand()%100只会输出1~99的数,加一之后即可输出1~100的值。

3.判断猜的数字

既然是猜数字游戏,当然不会让玩家只输入一次数据,所以我们需要一个循环来让玩家多次输入。同时,还需要给与玩家提示,减少玩家失误次数。
while (1)
{
printf(“请输入你猜的数字:>”);
scanf(“%d”, &INPUT);

 if (INPUT>ret){printf("你猜的值过大\n");}else if (INPUT<ret){printf("你猜的值过小\n");}else{printf("恭喜你,猜对了!!");break;}
}

三、完整代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>void menu()
{printf("*************************\n");printf("******play game:>1*****\n");printf("******exit game:>0*****\n");printf("*************************\n");}
void game()
{int INPUT=0;int ret = rand() % 100 + 1;while (1){printf("请输入你猜的数字:>");scanf("%d", &INPUT);if (INPUT>ret){printf("你猜的值过大\n");}else if (INPUT<ret){printf("你猜的值过小\n");}else{printf("恭喜你,猜对了!!");break;}}}int main()
{srand((unsigned int)time(NULL));int input = 0;do{menu();printf("请选择:>");scanf("%d", &input);switch (input){case 0:printf("退出程序\n");break;case 1:game();break;default:printf("选择错误,请重新选择\n");break;}} while (input);//当玩家输入0时退出循环,当玩家输入非0时重新循环。return 0;
}

四、运行效果

C语言|一个简单的文章让你轻松理解猜字小游戏的原理相关推荐

  1. Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界

    Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界 目录 输出结果 设计思路 输出结果 设计思路 from tkinter import * import tkint ...

  2. C语言实现猜字小游戏

    前言 一.游戏的设计过程 二.函数的实现 三.游戏的整体实现 四.总结 前言 设计一个猜数字游戏,在1-100之间的数,猜中的人准备被砸水球吧! 一.游戏的设计过程 1,创建一个目录,供用户开始与结束 ...

  3. 一个Python猜字小游戏

    开始Python的学习已经有了一小段时间,同学进行java的编程上传,我一看挺有意思,也来凑凑热闹,也希望可以得到锻炼,希望各位大佬可以指正一下我的代码,或是展示展示大佬们的高超编码手艺,Python ...

  4. 用random的randint方法写一个猜字小游戏

    import random num = random.randint(0,100) start = 0 end = 100 n = 0 while n < 10:num1 = int(input ...

  5. html抓取文章,网页抓取工具:一个简单的文章采集示例

    通过采集网页抓取工具火车采集器官网的faq为例来说明采集器采集的原理和过程. 本例以 http://faq.locoy.com/qc-12.html 演示地址,以火车采集器V9为工具进行示例说明. ( ...

  6. 用python做C语言的猜数字游戏,[Python3 练习] 007 简单的猜数字小游戏

    题目:简单的猜数字小游戏 (1) 描述 程序随机生成一个数字,玩家用键盘输入所猜数字,在规定次数内猜对为胜. (2) 要求 程序随机生成一个 1 到 100 的自然数 有 7 次机会去猜 机会用尽之前 ...

  7. python实现简单小游戏_用python开发一个有趣的猜数字小游戏(实现简单的GUI界面学习)...

    文章目录 用python开发一个有趣的猜数字小游戏 用于字符串的格式化,通过 {} 和 : 来代替以前的 % 1. python的GUI编程 1.1 pythonGUI常用库对比 Python 提供了 ...

  8. C语言 | 猜字母小游戏(简单易学)

    下面是一个使用C语言编写的猜字母小游戏的示例代码: #include <stdio.h> #include <stdlib.h> #include <time.h> ...

  9. 教你如何用C语言设计一个有趣的猜数字小游戏

    目录 前言 猜数字游戏 打印菜单 处理玩家选择的操作 编写猜数字游戏函数 游戏中要猜数字从哪来?(配置随机数生成器) 时间戳 开始生成随机数 game函数内部编写 完整代码 总结 前言 好久不见,今天 ...

最新文章

  1. Hadoop(HDFS、YARN、HBase、Hive和Spark等)默认端口表
  2. vs代码显示波浪线,但没编译错误
  3. Item 16: 让const成员函数做到线程安全
  4. Qt中的QSpinBox
  5. nginx php大文件上传,Nginx+PHP上传大文件设置
  6. 用C#编写一个进程外的COM组件示例代码讲解
  7. screwing up
  8. 一般不要在头文件中定义变量
  9. 无法使用prop_Adobe Launch配置流量变量(Prop)
  10. java JDK11对比JDK8
  11. MarkdownPad-显示Awesomium 已停止工作,This view has carshed!错误
  12. 黑莓9810JAVA,黑莓9810 中文刷机包
  13. 【更新中】SmartGit 注册码 算法注册机
  14. 谷歌浏览器访问抖音网页版白屏
  15. 如何理解矩阵的「秩」?
  16. ISTQB-TM-大纲
  17. CSS3实现平行四边形
  18. 计算机考试文件夹改内容,2010年职称计算机考试:文件和文件夹的管理
  19. vue自定义指令---输入框禁止输入特殊字符
  20. iOS自动订阅商品(Auto-Renewable Subscriptions)相关处理

热门文章

  1. 商业模式的定义、商业模式的好坏
  2. 点击图片实现大图预览
  3. 王小川想走张一鸣和黄峥的老路,但终点不同
  4. 吴恩达 CS230 官方指南:CNN、RNN 及使用技巧速查手册
  5. WMF格式图片的特点
  6. Linux命令行及各常用工具代理设置
  7. MATLAB 串口通信
  8. 【技术分享】你想知道的网易云音乐推荐架构解析,都在这里!
  9. 美国联邦政府电子政务架构(FEA)
  10. 可执行文件的装载与进程