快速阅读

记录大一上学期做过的一个双人贪吃蛇游戏。

功能概述

基于 C语言 和 EasyX图形库 实现的双人贪吃蛇,引入了咬合玩法,当玩家的头部前向接触到对手的任何部位时,若咬合力(基于体长)大于此部位韧性(基于此部位到尾部的距离)则咬断对手(减少对方体长),若咬断部位为头部则玩家获胜;否则计时结束后体长最大的一方获胜。

按键控制

  • 玩家1:W A S D 控制移动方向,SPACE 暂停移动。
  • 玩家2: 控制移动方向,NUMPAD0 暂停移动。

随机位置会刷新食物,可以按键暂停自己以微调坐标。

玩家可以沿斜向共 8 个方向移动,当头部指向自己的身体时算法会自动改变玩家的方向。

核心节点

相对于 C语言 原生的黑白屏符号游戏,利用绘图代码实现的程序视觉效果上要提升很多,难点主要在于设计合适的代码结构和运行逻辑。

运行效果

初始界面
规则界面
游戏界面

备注信息

  1. 咬合力与韧性规则
  • 咬合力 Force = 体长 / 2

  • 韧性 Toughness = 尾部为 1,尾至头部依次 +1

    例如:体长为 5,则尾部韧性为 1,头部韧性为 5,身体部位递变。

  1. 修改游戏内置音乐
    参考文件内置图片 “修改音乐”,修改后把 mp3 文件放到文件夹内。

  2. 修改游戏运行速度
    参考文件内置图片 “修改刷新率”,修改后重新生成 exe 文件。

  3. Force A / B 同时小于 Toughness A / B 的情况下对心碰撞
    逻辑上需要双方都随机转到另一个方向,系统会先判定 A 是否随机到空位置,然后判定 B,如果双方的下一个坐标分别是对方,会造成胜负误判。


  1. 五子棋
  2. 国际象棋
  3. 图表编辑器
  4. 媒体播放器
  5. 虚拟桌面
  6. 贪吃蛇
  7. 音频播放器