李大恕 的博客

OI蒟蒻的水坑

2048游戏(高仿版)

实现原理

作为一名Oier,我会告诉你,整个程序用到的只有一种算法,那就是:模!拟!

(而且本游戏的灵感就来源于我做过的一道OI题)

既然是模拟,那么按照游戏流程编制就行了。整个程序分为这样几个部分:

  1. 初始化
  2. 绘制界面
  3. 玩家移动,并计算生成新棋盘、计算分数
  4. 返回 步骤2. 直至游戏结束 或 胜利

依次实现即可(详见代码)。

游戏方法

先贴一张运行截图:

可使用 WASD 或 方向键 进行游戏。

游戏结束后,可选择重新开局 或 退出游戏。

完整源码

该项目的 github 地址:https://github.com/Dashu-Li/2048Game

完整代码如下:

// 程序名称:2048Game
...

诺基亚经典贪吃蛇

代码描述

纯代码实现的经典贪吃蛇。相信贪吃蛇是不少人儿时的美好记忆。诺基亚的像素版贪吃蛇,曾经风靡一时。今天,我用 EasyX 实现了它。

这是本人第一次发表代码,且本人为初中生,如有可改进之处欢迎提出建议!

操作方法

可通过 wasd 或上下左右键控制蛇的移动。

通过食物的成员函数 color 将吃掉食物后增加的节颜色设定为吃掉食物的颜色。

每得 500 分,增加一个食物,但食物总数不超过 10 个。

撞墙或撞到自己即为死亡。

代码简述

蛇的移动原理:保存每一节的坐标信息,移动时将除头之外每一节移动到它前面一节的坐标,并通过当前方向移动蛇头。详见代码。

使用 vector 解除了蛇身长度的限制。

使用了批量绘图以避免闪烁。

执行效果

完整源码

// 程序名称:贪吃
...