欢迎光临散文网 会员登陆 & 注册

股票量化交易软件下载_创建“贪吃蛇”游戏

2023-07-31 17:05 作者:bili_58743380139  | 我要投稿

在本文中,我们将考虑一个用 赫兹量化软件 编写“贪吃蛇”游戏的例子。

从赫兹量化起,游戏编程变为可能,主要是因为事件处理功能,包括自定义事件。面向对象编程简化此类程序的设计,使代码更加清晰,并且减少错误的数量。

在阅读本文之后,您将了解 OnChart 事件处理、赫兹量化标准库类的使用例子和在一定时间之后循环调用函数来进行任何计算的方法。

游戏说明

选择“贪吃蛇”游戏作为例子主要是因为其实施非常简单。每一个对编程有极大兴趣的人都能编写此游戏。

依据维基百科的解释:

“贪吃蛇”是一款产生于二十世纪七十年代中后期的视频游戏,从出现之后就一直广受欢迎,成为经典。 玩家控制一个类似于蛇的细长生物,该生物在一个有边界的平面中四处移动,一路拾起食物(或类似物品),尝试避免碰到自己的尾巴或围绕游戏区域的“墙”。在某些变异中还有额外的障碍物。贪吃蛇每吃一件食物,其尾巴就变长一些,让游戏的难度渐渐变大。用户控制蛇头的方向(上、下、左、右),蛇身跟随蛇头移动。游戏正在进行时,玩家不能停止贪吃蛇的移动,并且不能让贪吃蛇反向。

用 MQL5 实施“贪吃蛇”有某些限制和特点。

有 6 关(从 0 至 5)。每一关 5 条命。在用完所有命之后或者通关之后,游戏返回到第一关。您可以创建您自己的关。对于第一关,蛇的速度及其最大长度是相同的。

游戏区由 4 个元素构成:

  1. 游戏标题。它用于游戏在图表上的定位。移动标题,所有游戏元素也随之移动。

  2. 移动区。它是一个 20x20 的单元格数组(表)。每个单元格的大小为 20x20 像素。移动区中的元素包括:

  • 贪吃蛇。它由至少三个连续的元素(头、身、尾)构成。头可以左、右、上、下移动。蛇的所有其他元素随头移动。

  • 障碍。用灰色矩形表示;如果蛇头碰到障碍物,则当前关将重新启动,并且减一条命。

  • 食物。用浆果表示食物;如果蛇头碰到食物,则蛇的大小(其身体的长度)增大。在吃完 12 件食物之后,贪吃蛇前进到下一关。

  • 信息面板(游戏的状态栏)它包含三个元素:

  • 关。显示当前关。

  • 剩下的食物数量。显示还剩下多少浆果要吃。

  • 命。显示剩下的命数。

  • 面板。它包含三个按钮:

  • "Start"(开始)按钮。开始当前关。

  • "Pause"(暂停)按钮。暂停游戏。

  • "Stop"(停止)按钮。停止游戏,同时在初始关卡出现过渡。

图 1 显示了所有这些元素:

图 1. “贪吃蛇”游戏的元素

游戏标题是一个“按钮”类型的对象。所有移动区元素是 "BmpLabel"(位图标签) 类型的对象。信息面板由三个“编辑”类型的对象构成,控制面板由三个“按钮”类型的对象构成。所有对象都依据相对于图表左上角的沿 X 轴和 Y 轴的像素距离来定位。

应注意,移动区边缘并不是贪吃蛇移动的障碍物。例如,贪吃蛇穿过左边,从右边出现。如图 2 所示:

图 2. 贪吃蛇穿过移动区边缘

蛇头和蛇尾与蛇身不同,能够旋转。头的方向由移动方向或其相邻元素的位置决定。尾的方向仅由相邻元素的位置决定。

举例而言,如果相邻的蛇尾元素在左侧,则蛇尾左转。蛇头稍有不同。如果相邻元素在右侧,则蛇头左转。下面的示意图举例说明了蛇头和蛇尾的方向。注意,蛇头和蛇尾的转向与它们的相邻元素有关。

蛇头和蛇尾向左

蛇头和蛇尾向右

蛇头和蛇尾向下

蛇头和蛇尾向上

蛇的移动分为三个阶段:

  1. 视方向而定,一个单元格的蛇头向右、向左、向上或向下移动。

  2. 蛇身的最后一个元素移动到上一个蛇头位置。

  3. 蛇尾移动到最后一个蛇身元素的上一个位置。蛇尾移动到最后一个蛇身元素的上一个位置。

如果贪吃蛇吃食物,则蛇尾不移动。然而,在最后一个蛇身元素的过去位置创建一个新的蛇身元素。

以下示意图说明了一个向左移动的贪吃蛇例子:


股票量化交易软件下载_创建“贪吃蛇”游戏的评论 (共 条)

分享到微博请遵守国家法律