這是一款為 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 終端運行遊戲,則啟動時端口 60h 需要 0(或 50h、80h、0D0h...)值。”
對於無數人說我故意不提及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 |
QR 圖碼 | ||||
關聯 | https://github.com/donno2048/snake | https://mattkc.com/etc/snakeqr/ | https://github.com/ibara/snakeqr | https://github.com/EimaMei/snake-qr |