★ AMSTRAD CPC ★ GAMESLIST ★ LE RUBIK'S CUBE (c) SCIENCE ET VIE ★

LE RUBIK'S CUBE
Au début des années 80, venu tout droit de Hongrie et inventé par Enno Rubik, arrivait en France le Rubik's cube. Ce casse-tête, d'ailleurs plus difficile qu'hongrois, se composait d'un cube dont chaque face comportait 9 carrés de base. Par rotation ou translation de groupes d'entre eux il était simple et rapide de détruire la belle organisation de chaque face mais... beaucoup plus délicat de revenir à la situatuion de départ. Ce mois-ci, nous vous proposerons donc d'adapter le Rubik's cube à l'informatique. Notre programme remplacera le cube en affichant chacune de ses faces sur l'écran et permettra, par l'intermédiaire du clavier, de déplacer les carrés de base. De plus, nous avons muni ce programme d'une option complémentaire que nous avons baptisée PLAY BACK. Après qu'une série de déplacements a été effectuée, si cette option est demandée, tous vos coups seront visualisés les uns après les autres, en marche arrière, jusqu'au retour à la disposition de départ du cube, soit chaque face d'une couleur unique. De même, la fonction CONTINUER? restituera l'état du cube après le dernier coup joué afin de pouvoir poursuivre le jeu. Ces quelques précisons apportées, passons à l'écriture du programme.

En premier lieu nous demanderons à l'Amstrad de fonctionner en mode 0, ceci afin de disposer d'une palette de couleurs suffisante pour différencier chacune des faces du cube; puis nous redéfinirons les symboles graphiques nécessaires à la représentation des carrés de base. Ensuite nous créerons une série de tableaux de mémorisation à l'aide de l'instruction DIM ; A, B, C, D, E et F auront pour mission de mémoriser l'état de chaque face avant et après un coup. De même T$ et S$ mémoriseront respectivement “numéro de tranche” et “direction” de chaque coup ; enfin P mémorisera trois carrés adjacents de manière à pouvoir effectuer, sur l'écran, la translation ou la rotation adéquate.

Vient ensuite la page de présentation. Nous initialiserons nos tableaux de mémorisation de manière à présenter les faces du cube en position de départ. Son affichage, chaque face déployée, sera assuré par une première sous- routine et une vue en perspective ne prenant pas en compte les couleurs, et prendra place en haut et à droite de l'écran. Sur cette dernière sera indiqué le numéro de chaque tranche (de 1 a 6) ceci afin de remémorer au joueur leur disposition tout au long de la partie.

Ensuite vient le début du jeu. La machine demandera qu'on lui indique sur quelle tranche doit être effectué le mouvement, puis fera préciser sa direction; gauche ou droite pour les tranches 1 à 3, haut ou bas pour celles de 4 à 6. A chaque fois l'ordinateur contrôlera la cohérence du coup ; il est en effet impossible de déplacer, par exemple, la tranche 1 vers le haut. Ces indications fournies, le programme s'aiguillera vers une série de sous-routines de déplacement. Les deux premières concernent les translations et donc les mouvements effectués sur les tranches 2 et 5 ; la troisième concerne les rotations des faces supérieures et inférieures, donc les tranches 1 et 3 et enfin, la dernière, les faces latérales du cube, donc les tranches 4 et 6.

  • La sous-routine de translation : ici deux cas sont à distinguer, la translation à droite ou la translation à gauche. Notre sous-routine comportera donc deux parties fonctionnant sur le même principe mais dont l'ordre de permutation sera inverse. Dans les deux cas, P mémorisera le dernier triplet sur lequel portera le coup puis les déplacements seront effectués vers celui-ci et les valeurs contenues dans P seront utilisées pour modi-fer le premier triplet. Nous pratiquerons de même pour les translations verticales.
  • Les sous-routines de rotation de face : ici encore P prendra la valeur du dernier triplet concerné et nous effectuerons des permutations circulaires sur le tableau de mémorisation de la face concernée. Précisons ici que nous aurons toutefois recours en parallèle à la sous-routine de translation ; ceci afin de conserver la cohérence du cube. Un élément placé sur un bord, par exemple sera toujours constitué des deux mêmes couleurs. Lors de son déplacement sur une face il faudra donc le répercuter sur la face contiguë.
  • La sous-routine concernant le mode PLAY BACK: nous utiliserons ici les tableaux T$ et S$. En effet, ces derniers ayant mémorisé les mouvements de chaque coup en les lisant à l'envers et en inversant les directions, nous serons en mesure de revenir à la situation de départ en faisant défiler la partie en marche arrière.

L'instruction MODE détermine le nombre de caractères par ligne d'écran, et influe sur la palette de couleurs. SYMBOL AFTER libère une zone de la grille de caractères standards pour pouvoir les modifier. A cette instruction sera associé SYMBOLE, qui sera utilisée pour définir chaque nouveau graphique. Le premier nombre indiquera le numéro de symbole à utiliser pour l'appeler par CHR$ (X), les 8 suivants la position des points. BORDER, PAPER et PEN fixent respectivement la couleur des bords de l'écran, du fond et des caractères. LOCATE X, Y adresse le curseur en ligne-colonne sur l'écran. Ses équivalents les plus cou-rants sont HTAB-VTAB, PRINT AT. Les valeurs prises par X varient de 1 à 21 et celles de Y, de 1 à 25.

L'utilisation de ce programme est très simple. Après l'avoir entièrement frappé et demandé RUN, le cube s'affichera sur l'écran. Puis TRANCHE ? sera demandé. Il suffira, en s'aidant le la représentation du cube en perspective, de taper le numéro de la tranche sur laquelle on souhaite agir. Dès lors, DIRECTION ?, suivi de “(D ou G)” ou de "(H ou B)” en fonction de la tranche choisie, sera demandé. Une fois la réponse fournie, la représentation du cube sera modifiée conformément à la demande de mouvement. Pour accéder au mode PLAY BACK il suffira de taper “P” au lieu d'un numéro de tranche. La partie défilera en marche arrière jusqu'à la situation de départ. Là on répondra à la question CONTINUER ? par oui ou par non selon que l'on désire reprendre la partie au dernier coup joué ou, inversement, repartir sur de nouvel-les bases.

Henri-Pierre PENEL , Science&Vie n°880

LE RUBIK'S CUBE
(c) SCIENCE ET VIE

AUTEUR: Henri-Pierre PENEL

★ ANNÉE: 1991
★ LANGAGE:
★ GENRE: BASIC , BOARD , PUZZLE
★ LiCENCE: LISTING

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» Le  Rubik  s  cube    (Science  et  Vie)    FRENCHDATE: 2016-06-26
DL: 199
TYPE: ZIP
SiZE: 6Ko
NOTE: Uploaded by hERMOL ; Extended DSK/40 Cyls
.HFE: Χ

» Le  Rubik  s  cube    (Science  et  Vie)    LISTING    FRENCHDATE: 2016-06-24
DL: 229
TYPE: PDF
SiZE: 501Ko
NOTE: Uploaded by hERMOL ; 2 pages/PDFlib v1.6

Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 507 millisecondes et consultée 1129 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.