Académique Documents
Professionnel Documents
Culture Documents
4
La Gazette des Pockéticaires – numéro 5
5
La Gazette des Pockéticaires – numéro 5
6
La Gazette des Pockéticaires – numéro 5
tableau%(z%) avec z%=X%*Y% ; on peut alors l'ensemble du coup (de la manche) avec l'ordre
accéder à l'élément (a%,b%) en tant que des cartes jouées et leurs propriétaires : T%
tableau%((b%-1)*X%+a%). Si l'on y tient devrait peser 2+2*56, soit 114 octets.
vraiment, cette manière de procéder résout une J'ai longtemps réfléchi aux premiers à attribuer
petite difficulté, mais d'autres apparaissent déjà... aux huit joueurs différents, le souci principal étant
En effet, l'OPL du 3a a été conçu pour la que 103*107*109*113*127*131, soit le produit
rapidité : en présence de plusieurs nombres dont maximal sur une carte jouée simultanément par 6
il doit calculer une opération, il va adopter le joueurs parmi 8 dépasse 2.10^12..., c'est-à-dire
format de calcul qui leur convient le mieux ; s'il un entier bien au delà des 32 707 autorisés dans
constate dans la suite des membres de l'opération les variables d'entiers courts, et même au delà de
la présence d'une variable d'entiers longs parmi la limite des entiers longs. Je crois cependant
plusieurs entiers courts, il adoptera l'arithmétique qu'une organisation judicieuse des premiers
des entiers longs, etc. Cela étant, le (éventuellement négatifs) doit éviter cet écueil.
programmeur doit prêter attention aux calculs Voici une répartition possible des nombres
davantage qu'au résultat ! Par exemple, si l'on premiers pour les joueurs :
déclare LOCAL a%,b%,c, deux variables d'entiers
Carte H1 H2 IA1 IA2 IA3 IA4 IA5 IA6
courts avec a%=300 et b%=400 et une à virgule
flottante pour le résultat, l'OPL sera incapable de
trouver le résultat de leur multiplication car 120 1ère 2 11 13 17 19 23 29 31
000 n'entre pas dans la catégorie « entiers 2ème 3 37 41 43 47 53 59 61
courts » : c=a%*b% retournera donc une erreur
« Overflow » (dépassement de capacité). 3ème 5 67 71 73 79 83 89 97
Pour contourner cette difficulté, on peut utiliser 4ème 7 101 103 107 109 113 127 131
la fonction INT qui transforme un entier court en
entier long sans en changer la valeur. Ainsi Et voici une manche résumée dans un tableau
c=INT(a%)*b% donnera bien 120 000, car on a bidimensionnel à partir du tirage de la photo de
gauche sur 52 cartes (le rang est en indice) :
forcé l'apparition d'un entier long dans la suite des
opérations, ce qui est autorisé par l'OPL. La
fonction INTF et la notation N. à la place de N
fonctionnent aussi, on force alors le calcul en
virgule flottante ; l'usage de nombres
131 176315 129 143
hexadécimaux est encore possible, quoique plus 12 116 130 144
contraignant.
13 117 131 145
Des trous de mémoire 14 118 132 146
15 119 133 147
J'ai opté pour le jeu de
variables le moins coûteux, à 16 120 134 148
savoir la représentation
unidimensionnelle d'une
17 121 135 149
manche à l'aide de nombres 18 122 136 050
entiers – a priori courts. L'idée,
représentée dans le tableau ci-après
19 123 137 151
(bidimensionnel par commodité), est d'attribuer 589310 024 5338 7952
aux cartes (dans l'ordre ) un numéro d'ordre
de 1 à 56 (les as sont doublés pour prendre en 111 125 139 153
compte les suites hautes et basses possibles) ; le 012 159826 71340 5754
tableau T%(56) est initialement empli de « 1 » ;
dès que les trois cartes initiales sont tirées au 113 127 141 155
sort, le contenu des cases correspondantes est 1314 176328 142 1163956
multiplié par 0.
Aux différents joueurs, humains compris, sont Pourrez-vous deviner qui a gagné le pot ? Une
attribués quatre nombres premiers différents décomposition en facteurs premiers est bien sûr
représentant la carte posée tour à tour par indispensable pour le savoir.
chacun ; ce nombre est multiplié par la valeur de Voilà pour le début de notre moteur de jeu.
la case correspondant au rang et à la couleur Avec la prochaine gazette, nous entrerons chez
choisie par le joueur. Naturellement, si deux Mortimer !
joueurs choisissent la même carte, le 1 initial
Solution
sera multiplié deux fois par un premier différent. H1 (Dca, Dpi, abandon),
Pour toute information IA1 (Atr, Aca, 10tr, Api),
Cette organisation des tours de jeu devrait (code, images, sons...), IA2 (Dca, Aca, abandon),
contacter Marge chez IA3 (Dpi, Dca, 10pi, Dco)
permettre de distinguer rapidement les cartes silicium.org/forum/ IA4 (Dco, 10co, 10tr, Api)
impossibles à jouer et les cartes jouables, et de Pot partagé entre IA3 et IA4.