《C++游戏编程入门》第2章 真值、分支与游戏循环: Guess My Number

《C++游戏编程入门》第2章 真值、分支与游戏循环: Guess My Number

    • 2.1 关系运算符
    • 2.2 条件语句
        • 02.score_rater.cpp
        • 02.score_rater2.cpp
        • 02.score_rater3.cpp
    • 2.5 switch语句
        • 02.menu_chooser.cpp
    • 2.6 while循环
        • 02.play_again.cpp
    • 2.7 do循环
        • 02.play_again2.cpp
    • 2.8 break和continue语句
        • 02.finicky_counter.cpp
    • 2.9 逻辑运算符
        • 02.designers_network.cpp
    • 2.10 随机数
        • 02.die_roller.cpp
    • 2.12 Guess My Number游戏
        • 02.guess_my_number.cpp

2.1 关系运算符

==, !=
>, >=
<, <=

2.2 条件语句

02.score_rater.cpp
#include <iostream>
using namespace std;

int main()
{
	if (true)
	{
		cout << "This is always displayed.\n\n";
	}

	if (false)
		cout << "This is never displayed.\n\n";

	int score = 1000;

	if (score)
	{
		cout << "At least you didn't score zero.\n\n";
	}

	if (score >= 250)
		cout << "You scored 250 or more. Decent.\n\n";

	if (score >= 500)
	{
		cout << "You scored 500 or more. Nice.\n\n";

		if (score >= 1000)
			cout << "You scored 1000 or more. Impressive!\n";
	}

	return 0;
}
02.score_rater2.cpp
#include <iostream>
using namespace std;

int main()
{
	int score;
	cout << "Enter your score: ";
	cin >> score;

	if (score >= 1000)
		cout << "You scored 1000 or more. Impressive!\n";
	else
		cout << "You scored less than 1000.\n";

	return 0;
}
02.score_rater3.cpp
#include <iostream>
using namespace std;

int main()
{
	int score;
	cout << "Enter your score: ";
	cin >> score;

	if (score >= 1000)
	{
		cout << "You scored 1000 or more. Impressive!\n";
	}
	else if (score >= 500)
	{
		cout << "You scored 500 or more. Nice.\n";
	}
	else if (score >= 250)
	{
		cout << "You scored 250 or more. Decent.\n";
	}
	else
	{
		cout << "You scored less than 250. Nothing to brag about.\n";
	}

	return 0;
}

2.5 switch语句

只用于比较int型(或可当作int型处理的值,char型或枚举型)。

02.menu_chooser.cpp
#include <iostream>
using namespace std;

int main()
{
	cout << "Difficulty Levels\n\n";
	cout << "1 - Easy\n";
	cout << "2 - Normal\n";
	cout << "3 - Hard\n\n";

	int choice;
	cout << "Choice: ";
	cin >> choice;

	switch (choice)
	{
	default:
		cout << "You made an illegal choice.\n";
		break;
	case 1:
		cout << "You picked Easy.\n";
		break;
	case 2:
		cout << "You picked Normal.\n";
		break;
	case 3:
		cout << "You picked Hard.\n";
		break;
	}

	return 0;
}

2.6 while循环

02.play_again.cpp
#include <iostream>
using namespace std;

int main()
{
	char again = 'y';
	while (again == 'y')
	{
		cout << "\n**Played an exciting game**";
		cout << "\nDo you want to play again? (y/n): ";
		cin >> again;
	}

	cout << "\nOkay, bye.";

	return 0;
}

2.7 do循环

02.play_again2.cpp
#include <iostream>
using namespace std;

int main()
{
	char again;
	do
	{
		cout << "\n**Played an exciting game**";
		cout << "\nDo you want to play again? (y/n): ";
		cin >> again;
	} while (again == 'y');

	cout << "\nOkay, bye.";

	return 0;
}

2.8 break和continue语句

02.finicky_counter.cpp
#include <iostream>
using namespace std;

int main()
{
	int count = 0;
	while (true)
	{
		count += 1;

		// end loop if count is greater than 10
		if (count > 10)
		{
			break;
		}

		// skip the number 5
		if (count == 5)
		{
			continue;
		}

		cout << count << endl;
	}

	return 0;
}

2.9 逻辑运算符

!
&&
||
注意优先级和短路现象

02.designers_network.cpp
#include <iostream>
#include <string>
using namespace std;

int main()
{
	string username;
	string password;
	bool success;

	cout << "\tGame Designer's Network\n";

	do
	{
		cout << "\nUsername: ";
		cin >> username;

		cout << "Password: ";
		cin >> password;

		if (username == "S.Meier" && password == "civilization")
		{
			cout << "\nHey, Sid.";
			success = true;
		}

		else if (username == "S.Miyamoto" && password == "mariobros")
		{
			cout << "\nWhat's up, Shigeru?";
			success = true;
		}

		else if (username == "W.Wright" && password == "thesims")
		{
			cout << "\nHow goes it, Will?";
			success = true;
		}

		else if (username == "guest" || password == "guest")
		{
			cout << "\nWelcome, guest.";
			success = true;
		}

		else
		{
			cout << "\nYour login failed.";
			success = false;
		}
	} while (!success);

	return 0;
}

2.10 随机数

02.die_roller.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
	srand(static_cast<unsigned int>(time(0))); // seed random number generator based on current time

	int randomNumber = rand(); // generate random number

	int die = (randomNumber % 6) + 1; // get a number between 1 and 6
	cout << "You rolled a " << die << endl;

	return 0;
}

2.12 Guess My Number游戏

02.guess_my_number.cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main()
{
	srand(static_cast<unsigned int>(time(0))); // seed random number generator

	int secretNumber = rand() % 100 + 1; // 生成随机数
	int tries = 0;
	int guess;

	cout << "\tWelcome to Guess My Number\n\n";

	do
	{
		cout << "Enter a guess: ";
		cin >> guess; // 获取用户猜测
		++tries;	  // 增加猜测次数

		// 告知猜测情况
		if (guess > secretNumber)
		{
			cout << "Too high!\n\n";
		}
		else if (guess < secretNumber)
		{
			cout << "Too low!\n\n";
		}
		else
		{
			cout << "\nThat's it! You got it in " << tries << " guesses!\n";
		}

	} while (guess != secretNumber); // 是否猜对

	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】常见的基本指令(下)

在本篇博客中&#xff0c;继续介绍Linux的常见的基本指令。 一.find指令 find指令是一条搜索指令&#xff0c;在目录结构中搜索文件。 find [目录名] -name [文件名] 在指定的目录下以文件名的搜索方式去搜索文件 二.which指令 which指令是只用来搜索命令在那个路径下…

Ableton Live 12 Suite:音乐创作的全能工作站 mac版

在数字音乐制作的领域中&#xff0c;Ableton Live 11 Suite 无疑是引领潮流的旗舰产品。作为一款综合性的音乐制作和演出软件&#xff0c;它提供了从创作灵感的萌芽到最终作品完成的全方位解决方案。 Ableton Live 12 Suite Mac版软件获取 Ableton Live 11 Suite 凭借其强大的…

登录与注册功能(简单版)(1)登录

目录 1、需求 2、怎样实现 3、步骤 1&#xff09;创建login.html 2&#xff09;创建user数据表 3&#xff09;IDEA连接数据库 4&#xff09;pom.xml中添加MyBatis和MySQL驱动坐标 5&#xff09;创建User实体类 6&#xff09;创建UserMapper.xml映射文件 7&#xff0…

实体好做,还是电商好做?最适合新手的是哪种?

我是电商珠珠 时间过得很快&#xff0c;距离2025年转眼间也就只剩下了9个月&#xff0c;部分人想要充分利用自己的时间去做一些可以赚钱的项目。 现在创业要么做实体店&#xff0c;要么做自媒体&#xff0c;要么就做电商。按照现在的经济发展趋势&#xff0c;开实体店甚至不能…

Tiktok视频播放为何为0?4大原因小白需了解

原因一、养号失败&#xff0c;被判为营销号 注册了tiktok账号以后&#xff0c;是需要一段时间进行养号&#xff0c;培养账号权重的&#xff01;而有些小伙伴未经养号&#xff0c;直接注册上手开始发视频&#xff01;这样很容易导致视频没有播放&#xff01;因为这样连续的一系…

比派电器T6白色系高速吹风机,高品质保证下,追求极致性价比

广东比派电器科技有限公司于2020年成立于东莞市松山湖高新技术企业园区融易大厦&#xff0c;公司聚焦于小家电的研发&#xff0c;生产&#xff0c;销售。专注在小家电的PCBA研发&#xff0c;产品设计&#xff0c;成品生产。提供小家电产品一站式解决方案&#xff0c;致力于成为…

铁威马TOS 6即将登场,全新设计更多功能抢先看!

错过了TOS 6内测的铁粉们注意啦&#xff01; 很高兴与大家宣布 铁威马TOS 6 Beta 将在本月与大家见面 时隔一年多 TOS 6历经严格测试与精细优化 焕然一新的用户界面 由内而外展现全新风采 今天小马就来给大家小剧透 TOS 6新功能抢先看 TOS 6是铁威马迄今为止“最友好最美…

深度强化学习(三)(DQN)

深度强化学习&#xff08;三&#xff09;DQN与Q学习 一.DQN 通过神经网络来近似最优动作价值函数 Q ∗ ( a t , s t ) Q_*(a_t,s_t) Q∗​(at​,st​),在实践中, 近似学习“先知” Q ⋆ Q_{\star} Q⋆​ 最有效的办法是深度 Q \mathrm{Q} Q网络 (deep Q network, 缩写 DQN)…

Java进程CPU高负载排查

Java进程CPU高负载排查步骤_java进程cpu使用率高排查_YouluBank的博客-CSDN博客 【问题定位】使用arthas定位CPU高的问题_arthas cpu高_秋装什么的博客-CSDN博客 CPU飙升可能原因 CPU 上下文切换过多。 对于 CPU 来说&#xff0c;同一时刻下每个 CPU 核心只能运行-个线程&…

深度学习模型部署(六)TensorRT工作流and入门demo

TensorRT工作流程 官方给出的步骤&#xff1a; 总结下来可以分为两大部分&#xff1a; 模型生成&#xff1a;将onnx经过一系列优化&#xff0c;生成tensorrt的engine模型 选择batchsize&#xff0c;选择精度precision&#xff0c;模型转换 模型推理&#xff1a;使用python或…

SpringBoot(容器功能)

文章目录 1.Configuration 添加/注入bean1.注入bean1.编写一个JavaBean&#xff0c;Monster.java2.创建一个config文件夹&#xff08;名字任意&#xff09;&#xff0c;用于存放配置Bean的类&#xff08;相当于配置文件&#xff09;3.BeanConfig.java4.测试使用 MainApp.java2.…

Spring中使用自带@Autowired注解实现策略模式

场景 SpringBoot中策略模式工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else&#xff1a; SpringBoot中策略模式工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else_springboot编写策略工厂-CSDN博客 设计模式…

NASA和IBM联合开发的 2022 年多时相土地分类数据集

简介 美国国家航空航天局&#xff08;NASA&#xff09;和国际商业机器公司&#xff08;IBM&#xff09;合作&#xff0c;利用大规模卫星和遥感数据&#xff0c;包括大地遥感卫星和哨兵-2 号&#xff08;HLS&#xff09;数据&#xff0c;创建了地球观测人工智能基础模型。通过奉…

【Windows】解决Windows磁盘有锁和感叹号方法

文章目录 1、概述2、效果3、解决方案3.1、先看自己电脑环境3.2、查看BitLocker情况3.3、查看设备加密 4、其他方案5、BitLocker5.1、BitLocker 是什么5.2、BitLocker 作用5.3、BitLocker 和 TPM 1、概述 目前在整理自己新电脑的软件&#xff0c;无意间电脑磁盘有锁和感叹号的标…

Dynamic Wallpaper v17.4 mac版 动态视频壁纸 兼容 M1/M2

Dynamic Wallpaper Engine 是一款适用于 Mac 电脑的视频动态壁纸&#xff0c; 告别单调的静态壁纸&#xff0c;拥抱活泼的动态壁纸。内置在线视频素材库&#xff0c;一键下载应用&#xff0c;也可导入本地视频&#xff0c;同时可以将视频设置为您的电脑屏保。 应用介绍 Dynam…

多线程案例及常用模式

一.单例模式——经典的设计模式 什么是单例模式&#xff1a;就是规定一个类只能创建一个对象&#xff0c;也就是保证某个类在程序中只存在唯一一个实例&#xff0c;而不会创建出多个实例 根据对象创建的时机不同&#xff0c;可以分为饿汉模式和懒汉模式 1.饿汉模式 在类加载…

2024.3.12 C++

1、自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height) 定义公有成员函数初始化函数:void init(int w, int h)更改宽度的函数:set w(int w)更改高度的函数:set h(int h)输出该矩形的周长和面积函数:void show() #include <iostream>using nam…

动手学深度学习-注意力机制Transformer

注意力机制 1. 注意力提示 1.1. 生物学中的注意力提示 **自主性提示&#xff08;随意线索&#xff09;&#xff1a;收到认知和意识的控制&#xff0c;有主观意愿的推动。**如下图&#xff0c;所有纸制品都是黑白印刷的&#xff0c;但咖啡杯是红色的。 换句话说&#xff0c;这…

【图像超分】论文复现:Pytorch实现FSRCNN,包含详细实验流程和与SRCNN的比较

文章目录 前言1. FSRCNN网络结构2. 训练FSRCNN3. FSRCNN模型测试4. 训练好的FSRCNN模型超分自己的图像 前言 论文地址&#xff1a;Accelerating the Super-Resolution Convolutional Neural Network 论文精读&#xff1a; 请配合上述论文精读文章使用&#xff0c;效果更佳&…

Python接口自动化核心模块 - 数据库操作和日志

一、Python连接数据库常见模块 MysqlDBpython2时代最火的驱动库。基于C开发&#xff0c;对windows平台不友好。现在已经进入python3时代&#xff0c;基本不再使用MysqlClientmysqldb的衍生版本&#xff0c;完全兼容python3.它是重量级Web开发框架Django中ORM功能依赖工具Pymys…
最新文章