使用 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++ 虚拟宾果游戏的多功能起点。