これは DOS 用に作られた x86 スネーク ゲームですが、BIOS、ブートローダー、OS を必要としないバージョンもあります。
このゲームは Hackaday で取り上げられました。
コードをテストするには、snake.asm の変更ごとに更新されるオンライン デモを表示できます (PC では矢印キーを使用するか、モバイルではスワイプします)。
コードを自分でテストしたい場合は、ビルド プロセスの要件をインストールし、コンピューター上で実行する必要があります。
私はnasm
とpython3
使用しています。これはapt install nasm python3 -y
でインストールできます。
テストするには、main.sh を実行して http://localhost:8000 を開きます。
「ゲーム全体を QR コードに収めることはできますか?」からインスピレーションを得たものです。 @itsmattkc によるもので、Hackaday でも紹介されました。
jinX のsnake64 について言及している人のために、jinX の功績を軽視することなく、彼の実装は私の実装と同じ制限に従っていないことに注意してください。彼のバージョンでは、スネークは右側から直接左側に移動できますが、左側からは移動できません。上から下へ、食品アイテムはランダムに出現するため、同時に 30 個存在する可能性があります。いくつかのランダムなピクセルが白に変わります。移動するには、矢印の代わりに 4、6、8、2 キーを使用する必要があります。ゲームを開始する必要があります。下に移動しないとクラッシュします。ゲームを開始する前に画面をclear
必要があります。事前に正しいビデオ モードを初期化する必要があります。一番上まで進んで負けそうなときは、下に戻るだけで済みます。jinX が述べているように、「それは、 DOSBox ターミナルからゲームを実行する場合は動作しません。開始時にポート 60h に 0 (または 50h、80h、0D0h...) の値が必要です。」
Hugi サイズ コーディング コンペティション(参加者が勝つには最小のニブル ゲームを作成する必要があるコンペティション) について、私が意図的に言及していないと言っている無数の人々のために、ここにそのようなコメントの 1 つに対する私の返信があります (ゲームがまだ 133 バイトだったときのもの) ):
まず、あなたは「Nibbles」ゲームのルールさえ読んでいないようです。
この境界線の内側には「蛇」が成長することになっており、そのサイズは最初は 1 ピクセルです。プログラムの開始後、プログラムのメインループが繰り返されるたびに、ヘビのサイズは 1 ピクセルずつ増加します。
これは単純に Snake と同じではなく、実装の難易度もはるかに低くなります。
第二に、このコンテストの実装には欠陥があります (良くないというわけではありませんが、私のバージョンが悪くなるわけではないと言いたいのです)。たとえば、優勝したエントリのコメントにあるような欠陥があります。
ゲームはキーパッドの矢印キー以外のキーを処理できません。DOS プロンプトで「pause|nibbles」と入力し、矢印キーを押してゲームを開始する必要があります。
そして
PSP の最上位メモリ セグメントは環境に依存するため、環境に適したバージョンが必要です
また、特別な設定が必要なため、DOSBox では動作しません。
2位のエントリーからは、
このプログラムを開始するときは、__すぐに 2 (下) キーを押してください__
また、これもサイクル数を設定しないと機能せず、変更するとゲームが中断されることがあります。
3位に関しては
ゲームがすぐに始まったら、「8」、「4」、「6」を押しますが、「2」は押しません
そして、ゲームは 2 位と同じように壊れます (同じサイクルの調整が必要です) が、壁も壊れます。
4 位のエントリを見て、これに時間を無駄にするのはやめます。
まあ、見ただけで起動できませんでした
最後に、コンテストへのエントリーは何位ですか?他人を批判する前に、まず自分の批判が正しいかどうかを確認し、判断する前に自分でもやってみてください。
とにかくフィードバックをありがとう:)
追伸、私は自分のバージョンが理想的であるとは主張していませんでした。この投稿の主な目的は助けを求めることでした。実際、このコメントを読んで、実際のサイズ最適化コンテストで誰かが提出したものと同じように、ある意味私の実装について気分が良くなりました。画面上に伸びる 1 行に 121 バイト、私のスネーク ゲーム全体 (プログラム全体のほんの一部としてこの機能が含まれていることは明らかです) には、あと 12 バイトしか必要ありません。PR を修正できれば、さらに 7 バイトしか必要ありません。
私の知る限り、これはこれまでに作られた中で最小のヘビゲームです。
非常に小さいので、1 つの QR に収まります。
58バイトです。
58バイトってどのくらい小さいのでしょうか?さて、このテキスト行の重さは 70 バイトを超えています。
そして、この任意の絵文字のシーケンスも同様です: ??❤️?????♀️??❤️???
gcc -Os -w -xc - <<< "main;"
で生成された空のC プログラムlinux-x86_64 では 15776 バイトです。
c53000b80000cd108b3f8d22e5402
1c3300fbbd0077af5e4606bc00ad4
14d5449801c739dfad10257bd9893
a74de880f83eb5079f95b88277bd8
私のバージョン | MattKCのバージョン | イバラさんバージョン | えいまめいさんバージョン | |
---|---|---|---|---|
バイト | 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 |