Il s'agit d'un jeu de serpent x86 conçu pour DOS, mais il existe également une version qui ne nécessite aucun BIOS, chargeur de démarrage ou système d'exploitation.
Le jeu a été couvert sur Hackaday.
Pour tester le code, vous pouvez consulter la démo en ligne qui se met à jour à chaque modification dans Snake.asm (utilisez vos touches fléchées sur PC ou faites glisser votre doigt sur mobile).
Si vous souhaitez tester le code vous-même, vous devez installer la configuration requise pour le processus de construction et l'exécuter sur votre ordinateur.
J'utilise nasm
et python3
qui peuvent être installés avec apt install nasm python3 -y
.
Pour le tester, exécutez simplement main.sh et ouvrez http://localhost:8000.
Inspiré par « Pouvez-vous insérer un jeu entier dans un code QR ? » par @itsmattkc qui a également été présenté sur Hackaday.
Pour les personnes qui mentionnent le serpent de jinX64, je précise que sans dénigrer la réussite de jinX, son implémentation n'obéit pas aux mêmes restrictions que la mienne : Dans sa version, le serpent peut passer par le côté droit directement vers le côté gauche mais pas depuis de haut en bas, les aliments apparaissent aléatoirement donc il pourrait y en avoir 30 simultanément, certains pixels aléatoires deviennent blancs, vous devez utiliser les touches 4, 6, 8, 2 pour vous déplacer au lieu des flèches, vous devez démarrer le jeu avec mouvement vers le bas ou il plante, vous devez clear
l'écran avant de commencer le jeu, vous devez initialiser le bon mode vidéo à l'avance, lorsque vous passez par le haut et que vous êtes censé perdre, vous pouvez simplement redescendre, et comme jinX l'a déclaré "Il ne fonctionnera pas si vous exécutez un jeu depuis le terminal DOSBox. Il nécessite une valeur 0 (ou 50h, 80h, 0D0h...) dans le port 60h au démarrage."
Pour les innombrables personnes qui disent que je ne mentionne pas intentionnellement le concours de codage Hugi Size (un concours dans lequel les concurrents devaient créer le plus petit jeu de grignotages pour gagner), voici ma réponse à l'un de ces commentaires (de l'époque où le jeu faisait encore 133 octets). ) :
Premièrement, il semble que vous n'ayez même pas lu les règles du jeu "Nibbles":
à l'intérieur de cette bordure est censé grandir un "serpent", dont la taille est au départ d'un pixel. après le démarrage du programme, la taille du serpent augmentera d'un pixel de plus à chaque répétition de la boucle principale du programme.
Ce qui n’est tout simplement pas la même chose que le serpent et beaucoup moins difficile à mettre en œuvre.
Deuxièmement, les implémentations de ce concours ont des défauts (non pas qu'elles ne soient pas bonnes mais je dis que cela ne rend pas ma version mauvaise) comme, par exemple, d'après les commentaires de l'entrée gagnante :
le jeu ne peut gérer aucune autre touche que les touches fléchées du clavier, vous devez le démarrer en tapant pause|nibbles dans l'invite DOS, puis en appuyant sur une touche fléchée
et
Étant donné que le segment de mémoire supérieur de la PSP dépend de l'environnement, vous avez besoin d'une version adaptée à votre environnement.
et cela ne fonctionne même pas sur DOSBox en raison de certaines configurations spéciales nécessaires.
À partir de la deuxième place :
Au démarrage de ce programme, appuyez sur la touche 2 (BAS) __IMMÉDIATEMENT__
Et cela non plus ne fonctionnera pas sans définir le nombre de cycles et le modifier interrompt parfois le jeu.
Quant à la troisième place
appuyez sur '8', '4', '6' mais pas sur '2' une fois que le jeu commence immédiatement
et le jeu se brise de la même manière que la deuxième place (et nécessite le même cycle d'ajustement) mais les murs sont également brisés.
Je vais regarder la quatrième place et arrêter de perdre mon temps à faire ça,
Eh bien, je viens de le regarder et je n'ai pas pu démarrer
Et enfin, quelle est votre place pour votre entrée au concours ? Avant de critiquer les autres, vérifiez d’abord que vos critiques sont correctes et essayez de les faire vous-même avant de juger.
Merci pour le retour en tout cas :)
PS, je n'ai même pas prétendu que ma version était idéale, le point principal du message était de demander de l'aide, et ce commentaire m'a en fait permis de me sentir mieux dans ma mise en œuvre d'une certaine manière, comme dans un véritable concours d'optimisation de taille, quelqu'un avait soumis une proposition de 121 octets pour juste une ligne s'étendant sur l'écran et l'ensemble de mon jeu de serpent (qui contient évidemment cette fonctionnalité comme une petite partie de l'ensemble du programme) ne prend que 12 octets de plus maintenant, et si je peux corriger le PR, seulement 7 octets de plus.
AFAIK C'est le plus petit jeu de serpent jamais créé.
Il est si petit que je pourrais l'insérer dans un seul QR :
C'est 58 octets.
Quelle est la taille de 58 octets ? Eh bien, cette ligne de texte pèse plus de 70 octets.
Et il en va de même pour cette séquence arbitraire d’émojis : ??❤️?????♀️??❤️???
Un programme C vide généré avec gcc -Os -w -xc - <<< "main;"
sous Linux-x86_64, la taille est de 15 776 octets.
c53000b80000cd108b3f8d22e5402
1c3300fbbd0077af5e4606bc00ad4
14d5449801c739dfad10257bd9893
a74de880f83eb5079f95b88277bd8
Ma version | La version de MattKC | la version d'ibara | La version d'EimaMei | |
---|---|---|---|---|
Octets | 58 | ~1400 (compressé) | 2024 | 2953 |
QR | ||||
Lien | https://github.com/donno2048/snake | https://mattkc.com/etc/snakeqr/ | https://github.com/ibara/snakeqr | https://github.com/EimaMei/snake-qr |