Dies ist ein x86-Snake-Spiel für DOS, aber es gibt auch eine Version, die kein BIOS, Bootloader oder Betriebssystem erfordert.
Über das Spiel wurde am Hackaday berichtet.
Um den Code zu testen, können Sie sich die Online-Demo ansehen, die bei jeder Änderung in Snake.asm aktualisiert wird (verwenden Sie Ihre Pfeiltasten auf dem PC oder wischen Sie auf dem Handy).
Wenn Sie den Code selbst testen möchten, müssen Sie die Anforderungen für den Build-Prozess installieren und ihn auf Ihrem Computer ausführen.
Ich verwende nasm
und python3
, die mit apt install nasm python3 -y
installiert werden können.
Um es zu testen, führen Sie einfach main.sh aus und öffnen Sie http://localhost:8000.
Inspiriert von „Kann man ein ganzes Spiel in einen QR-Code unterbringen?“ von @itsmattkc, das auch auf Hackaday vorgestellt wurde.
Den Leuten, die die Schlange von jinX erwähnen64, möchte ich anmerken, dass, ohne die Leistung von jinX herabzuwürdigen, seine Implementierung nicht den gleichen Einschränkungen unterliegt wie meine: In seiner Version kann die Schlange von der rechten Seite direkt zur linken Seite gehen, aber nicht von dort Von oben nach unten spawnen Lebensmittel zufällig, so dass es 30 gleichzeitig sein könnten, einige zufällige Pixel werden weiß, Sie müssen zum Bewegen die Tasten 4, 6, 8, 2 anstelle der Pfeile verwenden, Sie müssen das starten Spiel mit Abwärtsbewegung oder es stürzt ab, Sie müssen den Bildschirm clear
, bevor Sie das Spiel starten, Sie müssen den richtigen Videomodus initialisieren, wenn Sie durch die Spitze gehen und verlieren sollen, können Sie einfach wieder nach unten gehen, und wie jinX sagte „Es funktioniert nicht, wenn Sie ein Spiel über das DOSBox-Terminal ausführen. Beim Start ist der Wert 0 (oder 50h, 80h, 0D0h...) in Port 60h erforderlich.“
Für die unzähligen Leute, die sagen, dass ich den Hugi Size Coding Competition (einen Wettbewerb, bei dem die Teilnehmer das Spiel mit den kleinsten Nibbles machen mussten, um zu gewinnen) absichtlich nicht erwähne, ist hier meine Antwort auf einen solchen Kommentar (aus der Zeit, als das Spiel noch 133 Bytes groß war). ):
Erstens scheinen Sie die Regeln des „Nibbles“-Spiels noch nicht einmal gelesen zu haben:
Im Inneren dieses Randes soll eine „Schlange“ wachsen, deren Größe zu Beginn einen Pixel beträgt. Nach dem Start des Programms soll die Größe der Schlange bei jeder Wiederholung der Hauptschleife des Programms um ein Pixel größer werden.
Das ist einfach nicht dasselbe wie Snake und viel weniger schwierig zu implementieren.
Zweitens weisen die Implementierungen dieses Wettbewerbs Mängel auf (nicht, dass sie nicht gut wären, aber ich sage, das macht meine Version nicht schlecht), wie zum Beispiel aus den Kommentaren im Gewinnerbeitrag hervorgeht:
Da das Spiel keine anderen Tasten als die Pfeiltasten des Tastenfelds verarbeiten kann, müssen Sie es starten, indem Sie in der DOS-Eingabeaufforderung pause|nibbles eingeben und dann eine Pfeiltaste drücken
Und
Da das oberste Speichersegment in der PSP umgebungsabhängig ist, benötigen Sie eine für Ihre Umgebung geeignete Version
und es funktioniert nicht einmal unter DOSBox, da einige spezielle Konfigurationen erforderlich sind.
Aus dem Zweitplatzierten:
Drücken Sie beim Starten dieses Programms die Taste 2 (AB) __SOFORT__
Und es funktioniert auch nicht, ohne die Zyklusanzahl festzulegen, und eine Änderung führt manchmal zu Spielunterbrechungen
Was den dritten Platz betrifft
Drücken Sie „8“, „4“, „6“, aber nicht „2“, sobald das Spiel sofort beginnt
und das Spiel bricht auf die gleiche Weise ab wie der Zweitplatzierte (und erfordert die gleiche Anpassung des Zyklus), aber die Mauern werden ebenfalls durchbrochen.
Ich werde mir den Eintrag für den vierten Platz ansehen und damit aufhören, meine Zeit zu verschwenden.
Nun, ich habe es mir gerade angeschaut und konnte es nicht schaffen
Und schließlich: An welchem Ort nehmen Sie am Wettbewerb teil? Bevor Sie andere kritisieren, überprüfen Sie zunächst, ob Ihre Kritik richtig ist und versuchen Sie es selbst, bevor Sie urteilen.
Danke jedenfalls für das Feedback :)
PS: Ich habe nicht einmal behauptet, meine Version sei ideal, der Hauptpunkt des Beitrags bestand darin, um Hilfe zu bitten, und dieser Kommentar gab mir in gewisser Weise tatsächlich ein besseres Gefühl bei meiner Implementierung, als hätte jemand bei einem Wettbewerb zur tatsächlichen Größenoptimierung einen Beitrag eingereicht 121 Bytes für nur eine Zeile, die sich über den Bildschirm erstreckt, und mein gesamtes Snake-Spiel (das diese Funktionalität offensichtlich nur als kleinen Teil des gesamten Programms enthält) benötigt jetzt nur noch 12 Bytes mehr, und wenn ich den PR reparieren kann, sind es nur noch 7 Bytes mehr.
AFAIK Dies ist das kleinste Schlangenspiel, das jemals gemacht wurde.
Es ist so klein, dass es in einen einzigen QR passen könnte:
Es sind 58 Bytes.
Wie klein sind 58 Bytes? Nun, diese Textzeile wiegt mehr als 70 Bytes.
Und so auch diese willkürliche Abfolge von Emojis: ??❤️?????♀️????❤️???
Ein leeres C-Programm, generiert mit gcc -Os -w -xc - <<< "main;"
unter Linux-x86_64 sind es 15776 Bytes.
c53000b80000cd108b3f8d22e5402
1c3300fbbd0077af5e4606bc00ad4
14d5449801c739dfad10257bd9893
a74de880f83eb5079f95b88277bd8
Meine Version | MattKCs Version | Ibaras Version | EimaMeis Version | |
---|---|---|---|---|
Bytes | 58 | ~1400 (komprimiert) | 2024 | 2953 |
QR | ||||
Link | https://github.com/donno2048/snake | https://mattkc.com/etc/snakeqr/ | https://github.com/ibara/snakeqr | https://github.com/EimaMei/snake-qr |