Titre
N'hésitez pas à partager nos informations... mais n'oubliez pas de nous citer ! (SVP)
Vers l'infini et au delà…
Par Gub le 2009-05-03 15:29:59   


Le jeu vidéo Pac Man est théoriquement infini.

Détails :

Par contre, un bug apparaissant au 256ème niveau rend le jeu injouable.

Sources :

Wikipedia.org – Pac-man [fr]
Youtube.com – Pac-Man: Level 256 Split Screen Trick [en]


phileasII
phileasII - 2009-05-04 10:58:15

le lien wiki indique que le jeu se termine au niveau 256.
256 serait donc l'infini pour spontex… et au delà…


spider1163
spider1163 - 2009-05-04 20:07:20

WIKI: “Le jeu original comprend 255 labyrinthes différents”,
ne signifie pas exactement que le jeu se termine au niveau 256….


Animaphagus
Animaphagus - 2009-05-20 21:59:34

Je ne suis pas d'accord avec wikipedia, le pac man original sur borne d'arcade ne comportait qu'un seul niveau qui se répétait infiniment en augmentant chaque fois la difficulté (d'autres tableaux ont étés créés pour la version console). Le record avait été battu sur la borne d'arcade et la moitié de l'écran était envahie par des symboles après le 256e fruit (niveau 255)


quenty45
quenty45 - 2009-06-01 01:17:40

Le jeu n'est pas à l'infini puisqu'il est s'arrête au 256e Niveau dc on peut supprimer ce LSV.
L'homme est immortel mais il meurt entre 80 et 100 ans…Incoherent


Aikanaro
Aikanaro - 2009-06-01 02:21:09

Le jeu est théoriquement infini


Lotharius
Lotharius - 2009-06-01 05:34:16

C'est si difficile à concevoir que théoriquement, quand on programme un jeu à générer une grille ad vitam eternam, c'est qu'il est donc théoriquement infini ?

Ce n'est pas comme si on avait prévu que ce serait le dernier niveau. On ne sait même pas si le bug est systématique où non…


Paul_
Paul_ - 2009-06-21 12:17:28

C'est parcequ'à l'époque les procésseurs utilisés étaient des procésseurs 8bytes (donc 256 bits), hors il s'avère qu'il ne peux gérer que 256 valeurs (comprises seulement entre 0 et 255) et donc lorsqu'il est arrivé à 256, le jeu a planté.


Junk
Junk - 2009-06-21 23:13:06

Paul a presque bon, a part qu'il sagit de 8 bits, pas 8 bytes. Avec 8 bits, on code 256 valeurs, avec 8 bytes, (8 ocitets, donc 8 * 8 = 64 bits), on peut coder 264 = 1.84×1019 .. ce qui ferait bcp de niveau.

Mais l'idee est la, c'est un overflow.


Paul_
Paul_ - 2009-06-25 15:44:05

Oui désolé, c'ést clair dans mon esprit, mais c'est une faute d'innattention.


cacahuete
cacahuete - 2009-07-08 17:58:45

en tout cas, niv 255, c'est déjà pas mal ^^


Epeo
Epeo - 2009-07-10 01:18:38

Je dirais plutôt que “le jeu pacman a été conçu pour être infini” ou quelque chose dans le genre. Si on ne peut pas jouer plus de 256 niveaux, que ce soit intentionnel ou à cause d'un bug, le jeu est bien fini…

Je veux bien admettre, comme dit Lotharius, que le jeu est “théoriquement” infini. Mais il est aussi “théoriquement” sans bugs :-P.


Kicker
Kicker - 2009-09-06 19:27:05

A noter que si ils avaient voulu gérer plus de niveaux, ils auraient pu le faire. Ils leur aurait juste suffit d'utiliser une variable de plus et les joueurs auraient pu alors aller jusqu'au niveau 65536.
Ils n'ont juste probablement pas pensé que quelqu'un se donnerait la peine d'aller jusqu'au 256ème niveau ^^


Capuccino
Capuccino - 2010-01-21 22:33:18

et dire que quelqu'un est arrivé au niveau 256!!!
vous imaginez les heures d'entrainement???


jorganson
jorganson - 2010-05-17 22:23:52

Bah, Chuck Norris, lui, a fini le jeu.


RoroLeSage
RoroLeSage - 2010-05-18 11:35:54

Je sais pas si 255 est l'infini ou pas (cela doit pas être très loin), mais une petite pensée émue va droit au gars qui s'est tapé 255 niveaux de Pacman (c'est quand même super lourd comme jeu !!)


carinou
carinou - 2010-06-25 07:50:10

pour moi vu mon niveau a ce jeu ca tend vers l infini .j etais tres mauvaise et je me souviens simplement de mon corps qui accompagnait frenetiquement la direction que je devais faire prendre a pac man!


Dauby
Dauby - 2010-07-27 17:42:14

Je ne comprends pas trop. Wikipedia parle d'un mec qui a terminé le jeu :

En 1999, l'américain Billy Mitchell devient le premier joueur à avoir réalisé le score parfait de 3 333 360 points sur le jeu. Il a terminé les 256 niveaux en six heures, attrapant tous les fruits, mangeant les quatre fantômes à chaque bonus, et ne perdant aucune vie.

Il semblerait donc que le jeu se termine au niveau 256…


Be@
Be@ - 2010-07-27 17:53:44

Alors si j'ai bien compris, techniquement, le jeu continue après 256 niveaux mais un bug empêche de dépasser ce 256 ème niveau.
Donc, même s'il est “théoriquement” infini, on ne peut pas aller au delà des 256 niveaux.


Dauby
Dauby - 2010-07-27 18:46:18

Oui d'accord mais alors pourquoi le texte dit “il a terminé les 256 niveaux” ? Ça sous entend fortement qu'il a fini le 256ème niveau malgré le bug et qu'il n'y en avait pas d'autres.


Be@
Be@ - 2010-07-27 19:05:41

Je sais pas moi, demande à Wikipedia… :p


taille50
taille50 - 2010-08-10 11:24:13

de 0 à 255, il y a 256 niveaux sans jamais atteindre le niveau 256 :)


melimelou
melimelou - 2010-08-10 16:51:55

je suis actuellement au 268


baribal_
baribal_ - 2010-08-31 11:24:01

Si j'ai bien compris, le jeu pacman est bien infini car pour l'exemple donnée par wiki (qui n'est pas infaillible d'ailleurs) le jeu s'est arrété par manque de puissance du processeur (cf com de paul). Théoriquement, avec un processeur d'une puissance infini, le jeu est infini.


froys
froys - 2011-03-13 13:38:44

Bah, Chuck Norris, lui, a fini le jeu…DEUX FOIS!!!


Sissi
Sissi - 2011-05-07 09:21:07

Je trouve qu'on parle beaucoup de la bravoure du type qui s'est farci les 256/255 niveaux. Mais j'aimerais que spontex ait aussi une petite pensée pour les jurys qui l'ont regardé faire pendant 6h.


legardiencataphile
legardiencataphile - 2011-11-17 00:28:51

ha ouais la rage quand même, je me tape 8h de jeu, 255 niveaux parfait sans perdre une vie, et la paf cette co..e de console qui plante.
pourtant ses pas une windows :/


fyhrel
fyhrel - 2011-12-26 02:43:01

Bon, je vais me permettre de remettre un peu les choses au point, pour une fois qu'un sujet ici touche à l'informatique, autant que j'en profite.

Une console (ou tout autre système) 8 bits ne signifie pas qu'elle peut gérer 256 valeurs; cela signifie que dans son système d'adressage la mémoire (ram) est codée sur 8 bits, ce qui signifie que l'on peut mémoriser 256 variable, de la taille d'un mot (“word”, c'est à dire un “integer” donc la taille varie selon les systèmes, de nos jours 32 ou 64 bits, à l'époque je n'en sais rien). Ce n'est donc pas un “overflow” (même si le terme est mal choisi), du moins cette cause n'ai pas satisfaisante.

Ensuite il me semble, enfin c'est du moins l'intuition que j'en ai, que s'il existe une instance d'exécution pour laquelle celui-ci termine, cela implique fatalement que le programme ne peut s'exécuter infiniment. Mais plus sérieusement, la théorie de la calculabilité et ce bon vieux Turing nous disent qu'il est théoriquement impossible de déterminer si un programme terminera un jour ou non (voir : http://fr.wikipedia.org/wiki/Probl%C3%A8me_de_l%27arr%C3%AAt ). Effectivement, cela reste une démonstration théorique; mais dans la pratique ? Eh bien dans la pratique, on se rend compte que le nombre d'états possibles d'une mémoire finie étant lui-même fini, l'exécution du programme sera forcée de terminer tôt ou tard.

Bon, pour terminer sur une note absurde visant à démontrer que je viens d'écrire tout cela pour finalement rien, je dirais ceci: il est peut-être temps de faire preuve d'un peu de relativisme; je m'explique. L'article Wikipédia cité en référence est un article portant sur le jeu et non un article scientifique, que ce soit sur le génie logiciel, la théorie de la calculabilité ou encore la théorie de l'information; il est donc tout-à-fait absurde de vouloir en inférer quelques conclusions scientifiques que ce soient. L'article dit vrai (même si évidemment, il ne faut jamais faire confiance aveuglément à ce qu'on lit sur internet, mêêême si ça vient de Wikipédia) dans la mesure où le terme infini est ici à interpréter dans le contexte d'un article sur le jeu. Comme le dit un autre LSV, dans le contexte culinaire une fraise est un fruit tandis que dans qu'au point de vue botanique elle n'en est pas un. Cela fait un bout de temps que je suis un peu les LSV et leurs commentaires, et je remarque que l'on a trop vite fait de partir dans tous les sens et cela à cause de fausse interprétations quant au domaine du sujet.

Et si je devais dire un truc au hasard, je dirais simplement que l'explication est que le programmeur du jeu n'avait simplement pas prévu que quelqu'un dépasse un jour le niveau 255 (ou du moins ne voyait pas l'intérêt de gérer ce cas), sans quoi le bug aurait été simplement reporté à un niveau plus élevé (voir peut-être beaucoup plus élevé) et ce sans doute possible.


Ghost
Ghost - 2011-12-26 12:55:11

Tu te trompes.

Un overflow = dépassement de capacité. Un octet à une capacité de 8bits ce qui donne en base 10, une variable pouvant aller de 0 à 255. Si tu additionnes 1 à 255, tu dépasses la capacité d'un octet donc c'est bien un overflow.

Dire que le programme s'arrêtera car la mémoire est finie dans notre cas c'est fallacieux voire faux. Partant de ce postulat, on peut dire qu'un jour la Terre explosera et donc le programme s'arrêtera. De plus le jeu ne fait pas vraiment une boucle infinie, mais “plante” et du coup la partie ne se termine pas quand on a mangé tous les points ce qui rend le jeu “théoriquement infini” comme le stipule le résumé du LSVvidéo démo .

Comme le dit un autre LSV, dans le contexte culinaire une fraise est un fruit tandis que dans qu’au point de vue botanique elle n’en est pas un. Cela fait un bout de temps que je suis un peu les LSV et leurs commentaires, et je remarque que l’on a trop vite fait de partir dans tous les sens et cela à cause de fausse interprétations quant au domaine du sujet.

Aucune fausse interprétation, nos propos sont vérifiés et on a pris pas mal de temps avant de faire une conclusion. Sache que dans l'équipe de modération on a des experts en informatique, en chimie, en physique, en bio (je t'épargnerai leur CV)... et venir nous dire qu'on dit de la merde et en prétextant que Wikipédia est faux, m’énerve en tout point. Et depuis le temps que tu traînes ici, je ne comprends pas ce genre de remarque.

Si vraiment ce LSV t'intéresse, tu peux lire cette page http://home.comcast.net/~jpittman2/pacman/pacmandossier.html#Chapter_5


fyhrel
fyhrel - 2011-12-26 18:16:54

“Un overflow = dépassement de capacité. Un octet à une capacité de 8bits ce qui donne en base 10, une variable pouvant aller de 0 à 255. Si tu additionnes 1 à 255, tu dépasses la capacité d’un octet donc c’est bien un overflow.”

Tu as raison, j'ai écris un peu trop vite. C'est vrai dans le sens où le programmeur n'avait pas prévu le cas où l'on arriverait au niveau 256; c'est d'ailleurs finalement ce sur quoi je termine dans mon dernier commentaire. Mais effectivement mon commentaire sur l'overflow est erroné; par contre la définition d'un “système 8 bits” n'en reste pas moins vraie je pense, c'était afin d'invalider certains commentaires portant sur la question.
——————
“Dire que le programme s’arrêtera car la mémoire est finie dans notre cas c’est fallacieux voire faux.”

Cela est loin d'être faux, et effectivement on peut pousser le vice jusqu'à ton analogie avec la fin du monde; cependant, j'ai préféré émettre une explication plus proche du problème. Mais oui, la Terre explosera, et ça peut paraître stupide comme explication mais ça n'en reste pas moins valide aussi dans ce cas.
En remettant ce que j'ai écris dans l'ordre, tu verras que mon explication portait sur le fait qu'il est impossible de décider si oui ou non un programme s'exécute indéfiniment dans la théorie (sans l'exécuter), mais qu'en pratique on se rend compte qu'il s'arrêtera effectivement un jour.
—————-
“et venir nous dire qu’on dit de la merde et en prétextant que Wikipédia est faux”

Tu aurais du remarquer que je disais justement que Wikipédia disait vrai, et en particulier lorsque j'écris : “L’article dit vrai (même si [...]”.
—————-
“et venir nous dire qu’on dit de la merde”

Je ne pense pas avoir été jusque là, j'ai simplement stipulé que ça partait un peu dans tous les sens, mon commentaire en étant je pense finalement le plus bel exemple, et ce parce qu'entre temps on avait oublié que l'article Wikipédia en question est un article portant sur le jeu vidéo, et non un article scientifique parlant de “théoriquement infini” ou autre questions. Donc pour moi l'article, je le répète une dernière fois, dit vrai (pour peu qu'on l'interprète correctement).


lauvergnat
lauvergnat - 2012-06-16 01:26:49

Pour moi la formulation est à revoir…
– Si la variable qui génère un overflow fait planter le jeu, c'est qu'elle dépasse sa valeur maximale possible, soit 256. Donc le “256ème niveau” devrait être atteignable, même s'il porte le numéro 255 (en partant du niveau numéro 0). Celui qui plante devrait être le 257ème niveau, qui porterait le numéro 256 si on part de zéro donc. Parce qu'à 256, ça tient toujours, mais pas au delà. Je suis clair ? Pas sûr, mais “le niveau 256” serait plus juste, à mes yeux.
– ensuite, la notion de “théoriquement infinie” ne veut pas dire grand chose. Le jeu a été conçu avec des variables qui ne peuvent pas dépasser une certaine valeur, donc a été conçu pour arrêter de fonctionner à un certain moment. Si au niveau 256 il était retombé à 0 et aurait permis de continuer à jouer, là j'aurais été d'accord, mais dans la mesure où même sur le papier, les développeurs ont vu (ou aurait pu voir) les limites de capacité de leur création, on ne peut pas dire qu'il soit infini, pas même théoriquement.


Mako
Mako - 2012-06-16 11:02:14

Pac-Man was designed to have no ending – as long as the player keeps at least one life, he or she should be able to play the game indefinitely. However, a bug keeps this from happening: Normally, no more than seven fruit are displayed at the bottom of the screen at any one time. But when the internal level counter, which is stored in a single byte, reaches 255, the subroutine that draws the fruit erroneously “rolls over” this number to zero, causing it to try to draw 256 fruit instead of the usual seven. This corrupts the bottom of the screen and the entire right half of the maze with seemingly random symbols, making it impossible to eat enough dots to beat the level. Because this effectively ends the game, this “split-screen” level is often referred to as the “kill screen”. Emulators and code analysis have revealed what would happen should this 255th level be cleared: The fruit and intermissions would restart at level 1 conditions, but the enemies would retain their higher speed and invulnerability to power pellets from the higher stages.

Extrait de la page wiki anglaise.


Dauby
Dauby - 2012-06-16 13:12:56

Ce LSV m'a toujours parut limite, même si je fais confiance aux modos qui affirment sa validité.
J'ai mis la vidéo proposée par feu-Alcoofolies en source.


Schtroumpf
Schtroumpf - 2012-06-18 10:28:11

La citation de Mako est claire comme de l'eau de roche. C'est un bug d'overflow : le dépassement de capacité influe sur une autre variable qui génère un bug d'affichage graphique empêchant de terminer le niveau.
Et si le compteur interne de niveau atteint 255, c'est qu'on est au 256e niveau.