从入门到精通,30天带你学会C++【第十天:猜数游戏】

目录

Everyday English

前言

实战1——猜数游戏

综合指标

游玩方法

代码实现

最终代码

试玩时间 

必胜策略

具体演示

结尾


Everyday English

All good things come to those who wait.

时间不负有心人

前言

今天是2024年的第一天,新一年,新气象,新起点,在这也祝愿大家:

工作顺利,身体健康。好好学习,天天向上!

实战1——猜数游戏

综合指标

学了10天左右,是不是很想做一款小游戏,那么今天它来了!

猜数游戏是初学者很好的一个实战项目,下面是它的全面分析:

编程难度:★★

有趣程度:★★

游戏难度:★★★

编程时间:推荐5min~12min

游玩方法

首先电脑会在1-100中随机生成一个整数,玩家需在1-100中猜一个数字,分三种情况讨论。

1.玩家猜的数字>目标数字,电脑说:“大了”

2.玩家猜的数字<目标数字,电脑说:“小了”

3.玩家猜的数字=目标数字,电脑说:“恭喜您,猜对啦!”

这时你可能会问:“这么简单的游戏难度为什么是3颗星呢?”

真相只有一个,那就是:

你只有7次猜的机会!

这下你可能就慌了,啊,100个数呢!就7次哪够啊!!!

到底够不够呢,我们稍后揭晓。

代码实现

原神,启动!Bi----------------

搞错了,重来!

代码,启动!这下对了。

首先,电脑需要随机生成一个1-100以内的整数,我们用key来保存这个随机整数:

srand(time(NULL));
int key=rand()%100+1;

大家可能还不知道随机数是怎么用的,我来教大家一下。程序中的第一行是播随机数种子,也称“播种”,每次生成随机数时带上他就好了。

第二行中的rand就是一个随机函数,我们想一想一个数对100取余,结果只可能是:0,1,2......,99。

可我们想要的是1-100,所以我们可以让每项都加一即可。

接着我们来分析一下如何实现玩家能猜7次数,这里需要用到我们的for循环语句:

for(int i=1;i<=7;i++)
{//当猜的数小于key时//当猜的数大于key时//当猜的数等于key时
}

每循环一次,玩家首先要去猜一个数,我们说的三种情况都可以用简单的if语句实现: 

for(int i=1;i<=7;i++)
{int x;cin>>x;//当猜的数小于key时if(x<key){cout<<"小了"<<endl;} //当猜的数大于key时if(x>key){cout<<"大了"<<endl;} //当猜的数等于key时if(x==key){cout<<"恭喜您,猜对啦!"<<endl;} 
}

 最后加上7次内没猜对的提示语,并把代码拼在一起,得到了以下程序:

#include<bits/stdc++.h>
using namespace std;
int main()
{srand(time(NULL));int key=rand()%100+1;for(int i=1;i<=7;i++){int x;cin>>x;//当猜的数小于key时if(x<key){cout<<"小了"<<endl;} //当猜的数大于key时if(x>key){cout<<"大了"<<endl;} //当猜的数等于key时if(x==key){cout<<"恭喜您,猜对啦!"<<endl;return 0; } }cout<<"7次机会已用完,很遗憾,未猜对!"<<endl;
}

最终代码

当然我们还可以优化一下提示语,便得到了最终代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{cout<<"猜数游戏(1-100)"<<endl;srand(time(NULL));int key=rand()%100+1;for(int i=1;i<=7;i++){int x;cout<<"请输入一个数字:";cin>>x;//当猜的数小于key时if(x<key){cout<<"小了"<<endl;} //当猜的数大于key时if(x>key){cout<<"大了"<<endl;} //当猜的数等于key时if(x==key){cout<<"恭喜您,猜对啦!"<<endl;return 0; } }cout<<"7次机会已用完,很遗憾,未猜对!"<<endl;cout<<"正确数字是:"<<key<<endl;return 0;
}

试玩时间 

做完程序大家一定要自己玩一玩看看有没有什么错误。

我的运气有亿点点“好”,大家赶紧去试试吧!

必胜策略

悄悄告诉你,这个游戏也有必胜策略哦!

这个策略有个好听的名字叫——二分法

顾名思义,每次猜区间的一半,那我们先计算一下,利用二分法第一次该猜几呢?

对了是50!如果计算机说小了又该猜几呢?

对了是75!(100-50)÷2+50=75!

注意:除不尽的话四舍五入!

具体演示

 

所以,如果你想有趣一点,加点运气成分的话,

你可以把猜的次数调成6次,或者更少!

结尾

想不到吧,一个小小的猜数游戏都被我们玩得那么细,如果你不介意的话,能否给我点一个小小的赞或者评论支持一下呢?

最后认识一下,我是爱编程的小芒果,一个爱编程的小学生,我们2024年见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/589746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计——springboot养老院管理系统 养老院后台管理

1&#xff0c;绪论 1.1 背景调研 养老院是集医疗、护理、康复、膳食、社工等服务服务于一体的综合行养老院&#xff0c;经过我们前期的调查&#xff0c;院方大部分工作采用手工操作方式,会带来工作效率过低&#xff0c;运营成本过大的问题。 院方可用合理的较少投入取得更好…

声明式导航传参详情

1 动态路由传参 路由规则path ->/article/:aid 导航链接 <router-link to"/article/1">查看第一篇文章</router-link> 组件获取参数: this.$route.params.aid 如果想要所有的值&#xff0c;就用this. $route. params 注意&#xff1a;这两个必须匹配…

Spring Cloud Function SpEL注入漏洞(CVE-2022-22963)分析

一、概述 2022年3月24日&#xff0c;Pivotal修补了Spring Cloud Function中一个关键的服务器端代码注入漏洞&#xff08;Spring表达式语言注入&#xff09;&#xff0c;该漏洞有可能导致系统被攻击。Spring是一种流行的开源Java框架&#xff0c;该漏洞与另一个相关的远程代码执…

Dirichlet Process (徐亦达老师)狄利克雷过程

混合高斯模型的例子 混合高斯模型 混合高斯模型&#xff08;Mixture of Gaussians&#xff0c;简称GMM&#xff09;是一种概率模型&#xff0c;用于对复杂的数据分布进行建模。它是由多个高斯分布组合而成的混合模型&#xff0c;每个高斯分布&#xff08;称为组件&#xff09;…

知识库问答LangChain+LLM的二次开发:商用时的典型问题及其改进方案

前言 如之前的文章所述&#xff0c;我司下半年成立大模型项目团队之后&#xff0c;我虽兼管整个项目团队&#xff0c;但为让项目的推进效率更高&#xff0c;故分成了三大项目组 第一项目组由霍哥带头负责类似AIGC模特生成系统第二项目组由阿荀带头负责论文审稿GPT以及AI agen…

pytorch深度学习笔记(共计169页,基于本人听完B站小土堆PyTorch深度学习快速入门教程所写)

一、笔记视频 pytorch深度学习&#xff08;共计169页&#xff0c;基于本人听完B站小土堆PyTorch深度学习快速入门教程所写&#xff09; 二、获取方式 方式一&#xff1a; 点击下面的链接 pytorch深度学习笔记 如果链接无法打开 直接复制下方链接即可 https://mall.bilibili.c…

如何借助边缘网关打造智慧配电房安全方案

配电房是电力系统的重要组成部分&#xff0c;通常设置有各种高压配电装置和箱柜&#xff0c;是企业安全管理的重点。传统的人工巡检和监控总是难以避免疏漏&#xff0c;导致风险隐患的产生和扩大。 随着物联网、边缘计算、设备联动控制等技术的普及应用&#xff0c;佰马针对配电…

在FC中手工创建虚拟机模板

1、Linux去除个性化信息 &#xff08;1&#xff09;编辑网卡配置文件&#xff0c;只保留以下内容&#xff08;以RHEL 7为例&#xff09; &#xff08;2&#xff09;清除主机密钥信息&#xff08;开机会自动生成&#xff09; &#xff08;3&#xff09;清除Machine ID&#xff…

机器学习概述

最近在学习机器学习的基础知识&#xff0c;在此记录一下 目前最火的机器学习框架是Scikit-Learn和pytorch&#xff0c;因此&#xff0c;之后的一段时间会使用这两种框架搭建机器学习的模型&#xff0c;相应的学习资源也会开源&#xff0c;希望可以学习到很多知识。 简单介绍机…

Servlet见解3

13 Cookie和Session http协议是一个无状态的协议&#xff0c;你每一个跳转到下一个页面的时候都是需要先登录才能使用&#xff0c;这样就很麻烦比如淘宝&#xff0c;没有cookie和session的话&#xff0c;用户在首页已经登录上去了&#xff0c;但是需要再次登录才能选择商品&am…

使用pyqt5+qtdesign设计模仿网易云音乐客户端界面

案例效果图 设计界面效果图&#xff1a; 运行效果图&#xff1a; 本项目目前只是对界面进行了设计&#xff0c;功能都没有进行完善&#xff0c;想完善的小伙伴自己拿到UI文件之后&#xff0c;自己完善即可。 简要设计思路说明 使用QFrame将界面分割布局成如下几个部分&am…

buuctf-Misc 题目解答分解103-105

103.[GKCTF 2021]签到 追踪流发现类似flag 字符 f14g 下面有大量的是16进制字符 64306c455357644251306c6e51554e4a5a3046355355737764306c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e65556c7154586c4a616b31355357704e655…

学习动态规划解决不同路径、最小路径和、打家劫舍、打家劫舍iii

学习动态规划|不同路径、最小路径和、打家劫舍、打家劫舍iii 62 不同路径 动态规划&#xff0c;dp[i][j]表示从左上角到(i,j)的路径数量dp[i][j] dp[i-1][j] dp[i][j-1] import java.util.Arrays;/*** 路径数量* 动态规划&#xff0c;dp[i][j]表示从左上角到(i,j)的路径数量…

归并算法排序

目录 归并排序 逆序对的数量 归并排序 题目如下&#xff1a; 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式&#xff1a; 输入共两行&#xff0c;第一行包含整数 n。 第二行包含 n 个整数&…

基于Java SSM框架实现智能仓储管理系统项目【项目源码+论文说明】

基于java的SSM框架实现仓库管理系统演示 摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;智能仓储系统当然也不能排除在外。智能仓储系统是以实际运用为开发背景&#xf…

ThinkPad产品如何升级BIOS程序

操作步骤: 重要提示&#xff1a; 更新BIOS存在风险&#xff01;如果您的电脑在此过程中出现死机&#xff0c;系统崩溃或断电&#xff0c;则BIOS或UEFI固件程序可能会损坏&#xff0c;这将使您的电脑无法启动。 由于BIOS的版本或者在升级过程中出错&#xff0c;可能会造成不可…

移动客服系统必备功能:提升用户体验与工作效率的关键要素

在快速发展的时代&#xff0c;工作的节奏也越来越快&#xff0c;也许您正在高铁上或者正在午餐时&#xff0c;就有客户提出需求来。所以&#xff0c;移动客服系统的需求也越来越多&#xff0c;那么移动客服系统怎么样&#xff1f;接下来&#xff0c;我们一起来看看移动客服系统…

python-39-flask+nginx+Gunicorn的组合应用

flask nginx Gunicorn 王炸 1 flasknginxgunicornsupervisor 1.1 myapp.py from flask import Flask app Flask(__name__)app.route("/") def test_link():return "the link is very good"if __name__"__main__":app.run()默认是5000端口…

CSS去掉按钮阴影 | css去掉按钮边框 | 注意改变搜索的关键词、搜索方式

上图是在谷歌浏览器中运行的结果 button {box-shadow: none;height: 50px;width: 100px;background-color: white;border-color: white; }写了以上的css&#xff0c;发现按钮还是有阴影一样的东西&#xff0c;查阅网络资料的时候也一直在搜索“如何去掉按钮阴影”&#xff0c;…

Linux调试工具—gdb

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;HEART BEAT—YOASOBI 2:20━━━━━━️&#x1f49f;──────── 5:35 &#x1f504; ◀️ ⏸ ▶️ ☰ …