使用 C++ 创建宾果游戏2024 年 8 月 29 日 | 阅读 6 分钟 宾果 是一种碰运气的游戏,参与者将随机选出的数字与预先印在 5x5 网格或卡片上的数字进行匹配。每个网格包含 25 个方格,每个方格中有一个 1 到 75 之间的唯一数字。方格的五列垂直列从左到右标记为 "B"、"I"、"N"、"G" 和 "O"。中心方格通常是一个自由空间。 游戏需要一位 宾果主持人 随机抽取数字,通常是从嘈杂的机械吹球机或一副数字牌中抽取。当数字被叫出时,玩家检查他们的宾果卡片,看看他们的卡片上是否有被叫出的数字。如果有,他们会用记号笔将其标记出来。一些常见的标记被叫出数字的方法是用筹码或硬币盖住方格,或者使用涂抹器印章将其标记。 主持人继续选择并宣布数字,直到一名玩家在其卡片上完成特定模式或覆盖所有匹配的被叫出数字。标准获胜设计要求覆盖卡片上 5 个或更多方格的水平、垂直或对角线。第一个正确标记获胜模式并喊出 "宾果!" 的玩家赢得本轮。之后,游戏以新卡片和数字重新开始下一轮。 宾果规则在不同的场馆可能有所不同,但整体机制保持不变——玩家将随机叫出的数字与宾果卡进行匹配,以完成指定模式以赢得宾果。获胜者可能会获得金钱或小物品等奖品。简单的形式让所有年龄段的人都能轻松上手和玩耍。 项目设置我们必须首先在我们的计算机上设置一个针对 C++ 工作流进行优化的集成开发环境 (IDE),以创建我们的宾果游戏应用程序。流行的具有强大 C++ 支持的 IDE 选择是 Visual Studio Code 和 Visual Studio Community/Enterprise。这些 IDE 配备了代码编辑器、调试器、项目文件管理以及与构建 C++ 程序所需的编译器的集成。如果 IDE 中尚未捆绑 C++ 编译器,我们必须单独安装一个,例如 Linux 上的 GCC/G++ 或 macOS 上的 Clang/LLVM。其他选项包括 Windows 上的 Visual C++。我们应该在 IDE 中为我们的宾果游戏代码库创建一个专门的 C++ 项目。它将允许为我们的应用程序量身定制编译器和链接器设置的正确配置。作为项目设置的一部分,可以定义带有 .cpp 和 .h 扩展名的源代码文件,以保存我们打算编写的实际宾果游戏逻辑和函数。通过初始化项目并将源文件准备好在功能丰富的 IDE 编辑器中进行编辑,我们的 C++ 开发环境将提供开始编码和调试我们激动人心的宾果游戏变体的行为所需的一切。 开发虚拟宾果体验让我们探讨在 C++ 中编写有趣宾果游戏的关键要素 卡片定义 首先,我们需要在我们的软件中建模宾果卡。我们可以设计一个 BingoCard 类来封装一个 1 到 75 之间的整数的 5x5 网格。它代表了游戏开始时每位玩家硬纸板或数字卡片上数字的随机排列。 数字选择 任何宾果游戏的核心都包含一个惊喜元素——玩家期待的随机抽取的数字序列。我们可以开发一个 NumberSelector 实用程序,它随机选择 1 到 75 之间的整数,不重复,直到所有数字都被叫出。 核心游戏循环 有了卡片和数字选择过程,我们将其与 BingoGameEngine 类中的游戏循环联系起来。这个循环将虚拟地抽取和分享新数字,扫描玩家卡片是否有匹配项,检查是否有人获胜,并促进持续的游戏。 获胜逻辑 我们可以编写 BingoCard 方法,根据传统规则检查水平、垂直或对角线上匹配的被叫出数字模式,以识别获胜者。当引擎检测到获胜卡片时,就会发出游戏公告和奖励! 通过将开发分解为这些可重用组件,我们为激动人心的宾果实现奠定了基础,充满了随机性、期待和每轮虚拟比赛中对获胜者的庆祝。 代码实现输出 Bingo Board: 59 68 40 73 38 32 15 0 65 5 26 58 27 12 46 41 17 3 60 47 43 2 69 71 20 The called number is: 55 Enter the number to mark on your Bingo card: 65 Bingo Board: 59 68 40 73 38 32 15 X 65 5 26 58 27 12 46 41 17 3 60 47 43 2 69 71 20 The called number is: 32 Enter the number to mark on your Bingo card: 32 Bingo Board: 59 68 40 73 38 X 15 X 65 5 26 58 27 12 46 41 17 3 60 47 43 2 69 71 20 Congratulations! You've won! 我们将如何玩宾果游戏?以下是宾果游戏玩法说明
运行可执行文件以启动我们的虚拟 宾果游戏。控制台显示每轮的随机数字呼叫和玩家卡片更新。
当自动叫号器选择随机数字时,人类玩家检查他们屏幕上的卡片并标记匹配项。计算机主机和参与者之间来回进行游戏。
第一个完成整行、整列或对角线模式的玩家喊出 "宾果!"。我们的游戏引擎验证获胜并祝贺胜利者,然后结束本轮。 结论总而言之,宾果游戏的 C++ 实现提供了一种虚拟体验,玩家可以在卡片上与随机生成的数字互动,旨在实现特定模式并喊出 "宾果" 以获胜。代码包括初始化游戏板、显示板、生成随机数、标记被叫出的数字以及检查获胜条件等功能。 玩家通过响应自动叫号器的公告在他们的宾果卡上输入标记的数字来参与。游戏继续进行,直到玩家实现获胜模式,例如整行、整列或对角线。简化的基于控制台的输出展示了游戏的进程,显示了被叫出的数字和标记的卡片。 此实现是更广泛且功能更丰富的宾果游戏的基础。可以加入额外的增强功能,例如输入验证、改进的显示格式和高级获胜检查逻辑,以创建更具吸引力和用户友好的体验。代码的模块化结构支持进一步开发和定制,使其成为 C++ 虚拟宾果游戏的多功能起点。 下一主题C++ 中友元函数和虚函数的区别 |
C++ 的不同编译器 本文解释了许多与编译器相关的方面。在这里,我们描述了 C++ 语言与编译器之间的交互。为什么需要编译器?这里有一些解决方案;正如大家所知,计算机可以读取用由...组成的机器语言编写的指令...
阅读 4 分钟
?按位运算符主要用于低级编程。按位运算符允许我们设置、检查、清除或切换整数类型中的位。在嵌入式系统中,按位运算符对端口或寄存器的单个位执行按位操作。在本文中,我们将讨论...
阅读 4 分钟
在本文中,我们将讨论 C++ 中用于计算 LCM 的内置函数及其语法和方法。在编程时,我们经常需要确定两个数之间的最小公倍数(LCM)。我们可以直接使用 C++ boost 的内置函数 boost::math::lcm()...
阅读 3 分钟
我们都知道,学习 C/C++ 或任何其他编程语言的数据类型至关重要。因为我们在软件工程师的编码和职业生涯中始终使用它们。每种数据类型都将与特定的大小和内存相关联...
阅读 3 分钟
在本文中,您将了解 C++ 中的邻接列表及其不同的方法和实现。图表示:图是由连接这些节点的节点(顶点)和边组成的集合。图可以分为各种类型,包括有向图和无向图,加权和...
阅读 22 分钟
在 C++ 中,可以通过使用 stringstream 类将布尔值(true/false)转换为字符串。此类提供了一种存储值的字符串表示形式的方法。要将布尔值转换为字符串,您可以创建一个 stringstream 对象并插入该值...
阅读 2 分钟
在本文中,我们将讨论 C++ 中的 deque::front() 和 deque::back() 及其示例。Deque,即双端队列,是可以在两端扩展和压缩的序列容器。它们与 vector 类似,但在元素插入和删除方面效率更高……
阅读 3 分钟
在本文中,我们将讨论 Objective C 和 C++ 之间的区别。但在讨论差异之前,我们必须了解 Objective C 和 C++ 的优点和缺点。什么是 C++?C++ 是一种通用且面向对象的编程语言。它主要用于系统级编程,...
5 分钟阅读
在本文中,我们将讨论如何用不同的方法计算 C++ 中最多一个字符频率为奇数的子字符串的数量。字符串中连续的字符子集或序列称为子字符串。现在有必要确定...
阅读 4 分钟
我们知道优先级队列具有先进先出 (FIFO) 的功能,但在其基本实现中附加了一些优先级。在 C++ 标准模板库优先级队列中,我们使用一个简单的 C++ 代码片段轻松实现它,它是一个...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India