这是一款为 DOS 制作的 x86 贪吃蛇游戏,但也有一个不需要 BIOS、引导加载程序或操作系统的版本。
Hackaday 对这款游戏进行了报道。
要测试代码,您可以查看在线演示,该演示会针对 Snake.asm 中的每次更改进行更新(在 PC 上使用箭头键或在移动设备上滑动)。
如果您想自己测试代码,您需要安装构建过程的要求并在您的计算机上运行它。
我使用的是nasm
和python3
,可以使用apt install nasm python3 -y
安装。
要测试它,只需运行 main.sh 并打开 http://localhost:8000。
受到“你能将整个游戏放入二维码吗?”的启发。作者:@itsmattkc,它也在 Hackaday 上得到了推荐。
对于提到 jinX 的 Snake64 的人,我要指出的是,在不贬低 jinX 所取得的成就的情况下,他的实现并不遵守我的相同限制:在他的版本中,蛇可以从右侧直接到达左侧,但不能从右侧从上到下,食物随机生成,因此可能同时有 30 个,一些随机像素变白,您需要使用 4、6、8、2 键移动而不是箭头,您必须向下开始游戏移动或崩溃,你必须在开始游戏之前clear
屏幕,你必须提前初始化正确的视频模式,当你通过顶部并且应该输掉时,你可以直接回去,正如 jinX 所说的“它会如果您从 DOSBox 终端运行游戏,则在启动时需要 0(或 50h、80h、0D0h...)端口 60h 值。”
对于无数人说我故意不提及Hugi 大小编码比赛(一项比赛,参赛者必须做出最小的蚕食游戏才能获胜),这是我对此类评论的回复(从游戏仍然是 133 字节开始) ):
首先,看来你根本没有读过“Nibbles”游戏的规则:
在这个边界的内部应该有一条“蛇”生长,它的大小一开始是一个像素。启动程序后,每次重复程序的主循环时,蛇的大小都会增加一个像素。
这与蛇根本不一样,并且实现起来难度要小得多。
其次,本次比赛的实现存在缺陷(并不是说它们不好,而是我说这不会让我的版本变坏),例如获奖作品中的评论:
游戏无法处理除键盘箭头键之外的任何其他键,您需要通过在 DOS 提示符中输入暂停|半字节,然后按箭头键来启动游戏
和
由于 PSP 中的顶部内存段取决于环境[原文如此],因此您需要适合您环境的版本
由于需要一些特殊配置,它甚至无法在 DOSBox 上运行。
从第二名参赛作品来看:
启动此程序时,按 2(向下)键 __IMMEDIATELY__
如果不设置周期计数,它也无法工作,并且更改它有时会破坏游戏
至于第三名
游戏立即开始后按“8”、“4”、“6”但不要按“2”
游戏以与第二名相同的方式打破(并且需要相同的周期调整),但墙壁也被打破。
我会看看第四名的参赛作品,然后停止浪费时间这样做,
额,刚刚看了下,还是无法启动
最后,您参加比赛的地点是哪里?在你批评别人之前,首先检查你的批评是否正确,并在做出判断之前先尝试自己这样做。
无论如何,感谢您的反馈:)
PS我什至没有声称我的版本是理想的,帖子的要点是寻求帮助,这个评论实际上让我在某种程度上对我的实现感觉更好,就像在实际的尺寸优化竞赛中有人提交了仅在屏幕上延伸的一条线就需要 121 个字节,而我的整个贪吃蛇游戏(显然包含此功能,只是整个程序的一小部分)现在只需要 12 个字节,如果我可以修复 PR,则只需要 7 个字节。
据我所知,这是有史以来最小的贪吃蛇游戏。
它是如此之小,我可以将它放入一个二维码中:
是58字节。
58字节是多少?嗯,这行文本有 70 多个字节。
这个任意的表情符号序列也是如此:??❤️???????♀️??❤️???
使用gcc -Os -w -xc - <<< "main;"
生成的空C 程序在 linux-x86_64 上是 15776 字节。
c53000b80000cd108b3f8d22e5402
1c3300fbbd0077af5e4606bc00ad4
14d5449801c739dfad10257bd9893
a74de880f83eb5079f95b88277bd8
我的版本 | 马特KC的版本 | 伊原的版本 | 艾玛梅的版本 | |
---|---|---|---|---|
字节 | 58 | ~1400(压缩) | 2024年 | 2953 |
二维码 | ||||
关联 | https://github.com/donno2048/snake | https://mattkc.com/etc/snakeqr/ | https://github.com/ibara/snakeqr | https://github.com/EimaMei/snake-qr |