广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++小游戏教程之猜数游戏的实现
  • 414
分享到

C++小游戏教程之猜数游戏的实现

C++猜数游戏C++猜数 2022-11-13 19:11:06 414人浏览 八月长安
摘要

目录0. 引言1. 用户猜数1-1. 设置答案数与猜测数1-2. 系统说明要求与读入数字1-3. 累计猜测次数与判断数字1-4. 输出猜测次数2. 系统猜数,但是是进化史2-1. 代

0. 引言

本章主要讲解如何做一个简易的猜数游戏,分为用户猜数和系统猜数。

前置芝士:

c++小游戏教程」基本技巧(1)——随机化

1. 用户猜数

系统想好一个在 [ 1 , 100 ] [1,100][1,100] 之间的整数,由用户来猜数,而系统只能回答“过大”“过小”“正确”。

1-1. 设置答案数与猜测数

使用随机数来随机一个 [ 1 , 100 ] [1,100][1,100] 的整数,猜测数初始设置为 − 1 -1−1。

srand(time(0));
int x=-1,ans=rand()%100+1;

1-2. 系统说明要求与读入数字

让系统讲清楚每次猜的数字的范围。
然后就直接让用户输入数字。

printf("I have a number from 1 to 100. Please have a guess: ");
scanf("%d",&x);

1-3. 累计猜测次数与判断数字

记一个变量tms,每次加一。

判断分为四种情况:

1.当x∉[1,100] 时,抛出错误。

if(x<1||x>100) puts("The number is error.");

2.当x>ans 时,说明数字过大,输出。

else if(x>ans) puts("The number is larger than my number!");

3.当x<ans 时,类似,数字过小,输出。

else if(x<ans) puts("The number is smaller than my number!");

4.当x=ans 时,正确,提示输出。

else puts("Oh, you are right!");

外层的循环条件,只要x≠ans时,就执行。

while(x!=ans)
{
    ...
}

1-4. 输出猜测次数

输出tms 并终止。

printf("You guessed it %d times.",tms);

完整代码:

#include<bits/stdc++.h>
using namespace std;

int main()
{
	srand(time(0));
	int x=-1,ans=rand()%100+1,tms=0;
	while(x!=ans)
	{
		printf("I have a number from 1 to 100. Please have a guess: ");
		scanf("%d",&x);
		tms++;
		if(x<1||x>100) puts("The number is error.");
		else if(x>ans) puts("The number is larger than my number!");
		else if(x<ans) puts("The number is smaller than my number!");
		else puts("Oh, you are right!");
	}
	printf("You guessed it %d times.",tms);
 	return 0;
}

效果:

2. 系统猜数,但是是进化史

用户想好一个[1,100] 范围的数,让系统猜。太大输入L,太小输入S,正确输入R。

有了上面的操作,我们让系统猜,写起来整体还是很简单的,但是要让系统聪明些。

先摆出程序框架

#include<bits/stdc++.h>
using namespace std;

int main()
{
	srand(time(0));
	puts("Please think a number from 1 to 100. And then I'll guess it.");
	puts("If I guess right, you should say \"R\"(Right).");
	puts("If my guess is too large, you should say \"L\"(Large).");
	puts("If my guess is too small, you should say \"S\"(Small).");
	puts("DON'T TELL A LIE!\n");
	char c='\0';
	int tms=0;
	while(c!='R')
	{
		//...
		printf("I guess the number is %d.Is it right(R, L or S)? ",);
		scanf("%c%*c",&c);
		tms++;
		if(c=='R') break;
		//...
	}
	printf("I guess it %d times!",tms);
 	return 0;
}

2-1. 代码 v1.0——我会瞎猜!

系统只会瞎猜:

printf("I guess the number is %d.Is it right(R, L or S)? ",rand()%100+1);

效果显著:

为系统坚持不懈的精神点赞!

2-2. 代码 v2.0——我会缩小范围!

显然,我们可以每一次缩小猜测范围。

char c='\0';
int tms=0,l=1,r=100;
while(c!='R')
{
    int t=rand()%(r-l+1)+l;
    printf("I guess the number is %d. Is it right(R, L or S)? ",t);
    scanf("%c%*c",&c);
    tms++;
    if(c=='R') break;
    if(c=='L') r=t;
    if(c=='S') l=t;
}

效率提升了:

系统:我是最快的!

2-3. 代码 v3.0——我会清白!

Never Gonna tell a lie and hurt you~

前面的程序判定不了我们在说谎,因此我们可以就 v2.0 添加一些东西(当l≥r 时必定不合法)。

char c='\0';
int tms=0,l=1,r=100;
while(c!='R')
{
	int t=rand()%(r-l+1)+l;
	printf("I guess the number is %d. Is it right(R, L or S)? ",t);
	scanf("%c%*c",&c);
	tms++;
	if(c=='R') break;
	if(c=='L') r=t;
	if(c=='S') l=t;
	if(l>=r)
	{
		puts("You told a lie!");
		return 0;
	}
}

聪明多了:

2-4. 代码 v4.0——我会二分!

没错,就是众望所归的二分。

改动这个即可:

int t=l+r>>1;

rand():要我有何用?

如果还是猜50,效果:

计算机:惊不惊喜,意不意外!

But——《1 times》!

稍微改改即可,这里作者就不改了懒得改。

最终代码:

#include<bits/stdc++.h>
using namespace std;

int main()
{
	puts("Please think a number from 1 to 100. And then I'll guess it.");
	puts("If I guess right, you should say \"R\"(Right).");
	puts("If my guess is too large, you should say \"L\"(Large).");
	puts("If my guess is too small, you should say \"S\"(Small).");
	puts("DON'T TELL A LIE!\n");
	char c='\0';
	int tms=0,l=1,r=100;
	while(c!='R')
	{
		int t=l+r>>1;
		printf("I guess the number is %d. Is it right(R, L or S)? ",t);
		scanf("%c%*c",&c);
		tms++;
		if(c=='R') break;
		if(c=='L') r=t;
		if(c=='S') l=t;
		if(l>=r)
		{
			puts("You told a lie!");
			return 0;
		}
	}
	printf("I guess it %d times!",tms);
 	return 0;
}

到此这篇关于C++小游戏教程之猜数游戏的实现的文章就介绍到这了,更多相关C++猜数游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++小游戏教程之猜数游戏的实现

本文链接: https://www.lsjlt.com/news/170902.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++小游戏教程之猜数游戏的实现
    目录0. 引言1. 用户猜数1-1. 设置答案数与猜测数1-2. 系统说明要求与读入数字1-3. 累计猜测次数与判断数字1-4. 输出猜测次数2. 系统猜数,但是是进化史2-1. 代...
    99+
    2022-11-13
    C++猜数游戏 C++猜数
  • C语言实现猜数字小游戏
    利用C语言代码实现猜数字小游戏: #include <stdlib.h> #include <stdio.h> #include <time.h&g...
    99+
    2022-11-12
  • C++实现简单猜数字小游戏
    本文实例为大家分享了C++实现简单猜数字小游戏的具体代码,供大家参考,具体内容如下 一、随机数 本文采用time(0)作为srand()函数的种子生成随机数,time(0)为1970...
    99+
    2022-11-12
  • Java实现猜数字小游戏
    目录1. 开篇简介2. 需求简介3. 思路分析4. 步骤讲解5. 代码实现6. 如何更快猜到数字的方法总结1. 开篇简介 嗨,大家好!!!『』最近『马上』就要『过年』了,先祝大家『新...
    99+
    2022-11-13
  • shell实现猜数字小游戏
    本文实例为大家分享了shell实现猜数字游戏的具体代码,供大家参考,具体内容如下 #!/bin/bash # 猜数字编程游戏 # 系统随机生成一个数字,给这个数字定一个范围(1-60),让用户输入猜的数字,对输入进行...
    99+
    2022-06-04
    shell 猜数字
  • Python实现猜数字小游戏
    首先需求一共有五次猜测机会,在五次机会中才对就赢了,结束游戏,五次都猜错就输了,也结束游戏。首先先画个草图,这是我画的草图 再根据草图编写一个窗口,一个Label,一个Entry,...
    99+
    2022-11-12
  • java实战之猜字小游戏
    目录一、题目描述二、思路三、代码四、效果图一、题目描述 二、思路 语法基础:StringBuilder 类似列表,可以更改元素。 package Practice; pub...
    99+
    2022-11-12
  • C语言版猜数字小游戏
    本文实例为大家分享了C语言版猜数字小游戏的具体代码,供大家参考,具体内容如下 清楚实现目标 做任何一个小项目之前,我们首先都需要明确自己想要实现的目标. 所以猜数字游戏的实现目标是啥...
    99+
    2022-11-12
  • 利用C语言实现猜数字小游戏
    本文实例为大家分享了C语言实现猜数字小游戏的具体代码,供大家参考,具体内容如下 实现猜数字的游戏: 要用程序完成以下几步: 1、电脑自动生成随机数(1到100之间的数字) 2、玩家输...
    99+
    2022-11-12
  • c语言轻松实现猜数字小游戏
    目录一、前言二、游戏逻辑三、思维导图  四、游戏过程  五、代码分析1.生成随机数的方法2.设置随机数范围的方法六、完整代码一、前言     ...
    99+
    2022-11-13
  • C语言实现简单猜数字小游戏
    本文实例为大家分享了C语言实现简单猜数字小游戏的具体代码,供大家参考,具体内容如下 猜数字游戏是令游戏机随机产生一个100以内的正整数 用户输入一个数对其进行猜测,需要你编写程序自动...
    99+
    2022-11-12
  • C++如何实现简单猜数字小游戏
    本文小编为大家详细介绍“C++如何实现简单猜数字小游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++如何实现简单猜数字小游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、随机数本文采用time(0)作...
    99+
    2023-06-26
  • c语言怎么实现猜数字小游戏
    本篇内容介绍了“c语言怎么实现猜数字小游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言      &...
    99+
    2023-06-30
  • python实现简易猜数小游戏
    目录程序思想:具体代码:近几天闲着没事开始学了些python,看了看之前写过的代码,把写过的基础的几个程序写进博客,今天是第一个。一个可以说简单的不能再简单的小程序—&m...
    99+
    2022-11-12
  • 用js实现猜数字小游戏
    上周老师留的小作业,做一个猜数字的小游戏,个人感觉挺有意思的,就随便写了写,有些地方逻辑并不是很合理(学生小白勿喷)。主要内容是随机生成0-100的正整数,猜六次每次提示猜的大了还是...
    99+
    2022-11-12
  • C语言怎么猜数字小游戏
    这篇文章主要讲解了“C语言怎么猜数字小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么猜数字小游戏”吧!清楚实现目标做任何一个小项目之前,我们首先都需要明确自己想要实现的目标.所...
    99+
    2023-06-17
  • linux实现猜数字小游戏源码
    一个简单的linux猜数字小游戏源码 游戏规则: 猜数字游戏通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的 4 个数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数字,出数者就要根据这个数字...
    99+
    2022-06-03
    linux 猜数字
  • java基础实现猜数字小游戏
    本文实例为大家分享了java实现猜数字小游戏的具体代码,供大家参考,具体内容如下 介绍: 电脑随机生成一个1-100的随机数,用户输入一个数;电脑判断输入数与随机数之间的大小,分别提...
    99+
    2022-11-12
  • python猜数字小游戏实现代码
    教大家做一个简易的猜数字的游戏,但确实蛮简单的,我这个四年级的小盆友也才学了一天,所以给那些不会的教一下。 我们先来看导入模块: """ 简易python猜数小游戏""" impo...
    99+
    2022-11-12
  • Java实现猜数字小游戏代码
    目录▲游戏规则:▲实现思路:实验结果:总结▲游戏规则: 系统随机生成一个范围0——100的数,用户输入数字,判断该数字是大于,小于,还是等于随机生成的数字,等...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作