SVM n°87 octobre 1991
SVM n°87 octobre 1991
  • Prix facial : 30 F

  • Parution : n°87 de octobre 1991

  • Périodicité : mensuel

  • Editeur : Excelsior Publications

  • Format : (204 x 280) mm

  • Nombre de pages : 288

  • Taille du fichier PDF : 249 Mo

  • Dans ce numéro : les 500 bons modèles des 20 meilleurs constructeurs.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 228 - 229  |  Aller à la page   OK
Pages suivantes >
228 229
Bien que chaque situation proposée ait normalement au moins une solution, il n'est pas certain que le joueur puisse la découvrir dans le temps imparti. Il peut aussi commettre des erreurs qui lui interdisent à tout jamais de la trouver, auquel cas il n'aura comme ultime recours que le "suicide" (touche Return). Pour trouver une solution, on a le droit de détruire certains blocs de blocage : il suffit de placer le curseur au-dessus du bloc et d'appuyer sur la barre d'espace (ou Del ou Ins).ie 1 5 coup 2 E *. « 41 coup 3 (7 cois 1 7,) 4e A Exemple d'alignement des trois laces, obtenu en trois coups, les deux premiers permettant de mettre en place les blocages necessaires. On déplace le curseur à l'aide des touches 8, 6, 4 et 2 du pavé numérique, basculé en position non numérique. Pour déplacer un bloc, il faut alors se placer au-dessus et presser la touche Shift (majuscule) en actionnant le curseur selon la direction désirée. 226 SVM Octobre 1991 y:=random(hauteur-6)+3 ; hv:=random(2) ; if hv=0 then begin for i:=y-1 to y+1 do begin matrice[x,i]:=chr(tete) ; nombre:=nombre+1 ; end ; end else begin for i:=x-1 to x+1 do begin matrice[i,y]:=chr(tete) : nombre:=nombre+1 ; end ; end ; end ; (* prépare une matrice *) procedure irait ; begin init_var ; initjnatrice ; init_cible ; end ; (* fonction testant el la ligne est vide *) function ligne_vide(x,y,xe,ye:integer):boolean ; var ok : boolean ; a,b,c,d,i : integer ; begin ok:=true ; if (x=xe) and (y=ye) then ok:=false ; if x" then ok:=false ; end else begin for i:=a+1 to c do if matrice[i,b]<>'then ok:=false ; end ; ligne_vide:=ok ; end ; (* affichage matrice à l'écran *) procedure afficher_matrice ; vari,j : integer ; begin for i:=0 to longueur+1 do begin gotoxy(i+decx,decy) ; write(chr (bord)) ; gotoxy(i+decx,decy+hauteur+1) ; write(chr(bord)) ; end ; for i:=0 to hauteur+l do begin gotoxy(docx,decy+i) ; write(chr (bord)) ; gotoxy(decx+longueur+1,decy+i) ; write(chr(bord)) ; end ; for i:=1 to longueur do for j:=1 to hauteur do begin gotoxy(i+decx,j+decy) ; write(matrice[i,j]) ; end ; end ; (* procédure faisant la liste des blocs dans la matrice *) procedure transfert_liste_bloc ; vari, j, k,n : integer ; begin k:=0 ; (* indice des tetes, rangees de 1 à 3 *) n:=3 ; (* indice des blocs simples, ranges à partir de 4 *) for i : =1 to longueur do for j:=1 to hauteur do begin if matrice[i,j7=chr(tete) then
Programmation begin k:=k+1 ; bloc[k].x:=i ; bloc[k].y:=j ; end ; if matrice[i,j]=chr(block) then begin n:=n+1 ; bloc[n].x:=i ; bloc[n].y:=j ; end ; end ; end ; (* procédure mélangeant la matrice *) procedure chaos(N:integer) ; vari,x,y,hv,xe,ye,xP,YP : integer ; begin i:=0 ; repeat transfert_liste_bloc ; i:=random(nombre)+1 ; x:=bloc[i].x ; y:=bloc[i].y ; xe:=bloc[i).x ; ye:=bloc[i].y ; hv:=random(2) ; if hv=0 then xe:=random(longueur-2)+2 else ye:=random(hauteur- 2)+2 ; if ligne_vide(x,y,xe,ye) then begin xp:=x ; yp:=y ; if hv=1 then begin (* deplacement vertical *) if ye>y then begin xp:=x ; yp:=y-1 ; end ; if yex then begin xp:=x-1 ; yp:=y ; end ; if xe=1) and (yp<=hauteur) and (yp>=1) then begin if matrice[xp,yp]." then begin matrice[xe,ye]:=matrice[x,y] ; matrice[xp,YP]:=chr(block) ; matrice[x,y]:=" ; nombre:=nombre+1 ; end ; end ; end ; until nombre=n end ; (* procédures gérant le clavier *) procedure K_haut ; begin yc:=yc-l ; if yc<1 then yc:=1 ; end ; procedure K_bas ; begin yc:=yc+1 ; if yc>hauteur then yc:=hauteur ; end ; procedure K_gauche ; begin xc:=xc-l ; if xc<1 then xc:=1 ; end ; procedure K_droit ; begin xc:=xc+1 ; if xc>longueur then xc:=1ongueur ; end ; (* procédure pousse un bloc *) procedure pousse(xd,yd:integer) ; var xb,yb,stop,i,numero:integer ; begin if matrice[xc,yc]<>" then begin xb:=xc ; yb:=yc ; stop:=0 ; (* stop = 1 : collision ; stop =2 : sortie *) LE PROGRAMME Le programme est écrit pour le compilateur Turbo Pascal de Borland, à partir de la version 4. Il fonctionne en mode texte, donc avec toute carte CGA, EGA, VGA, ou Hercules, sur n'importe quel compatible IBM. Les blocs faces sont réalisés avec les caractères standard du PC. Le terrain de jeu est enregistré dans un tableau de caractères à deux dimensions, appelé Matrice. Un deuxième tableau, Bloc, permet de repérer les objets présents dans la matrice (cinquante au maximum), chacun étant associé à une position (couple d'entiers). C'est en particulier grâce à ce tableau Bloc que l'on pourra très facilement savoir si un alignement de trois faces a été ou non obtenu. La première procédure, irait-matrice, remplit le tableau Matrice avec des espaces. Init-var met à zéro le nombre d'objets, et initialise le générateur de hasard. Irait-cible va d'abord placer les trois faces, alignées verticalement ou horizontalement, au hasard dans le damier. Cette méthode permet de s'assurer qu'il y aura toujours au moins une solution : en effet, le programme part de cette situation et mélange progressivement les blocs pour proposer un défi au joueur. Le mélange est effectué par la procédure chaos, qui se charge de pousser les blocs dans le sens contraire, en utilisant l'algorithme suivant : on prend un bloc au hasard, puis une direction. On pousse alors le bloc dans cette direction, jusqu'à une certaine position. Pour que le joueur puisse ensuite le repousser vers sa position initiale, il suffit de placer un bloc d'arrêt juste à côté de l'an- Octobre 1991 SVM 227



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


SVM numéro 87 octobre 1991 Page 1SVM numéro 87 octobre 1991 Page 2-3SVM numéro 87 octobre 1991 Page 4-5SVM numéro 87 octobre 1991 Page 6-7SVM numéro 87 octobre 1991 Page 8-9SVM numéro 87 octobre 1991 Page 10-11SVM numéro 87 octobre 1991 Page 12-13SVM numéro 87 octobre 1991 Page 14-15SVM numéro 87 octobre 1991 Page 16-17SVM numéro 87 octobre 1991 Page 18-19SVM numéro 87 octobre 1991 Page 20-21SVM numéro 87 octobre 1991 Page 22-23SVM numéro 87 octobre 1991 Page 24-25SVM numéro 87 octobre 1991 Page 26-27SVM numéro 87 octobre 1991 Page 28-29SVM numéro 87 octobre 1991 Page 30-31SVM numéro 87 octobre 1991 Page 32-33SVM numéro 87 octobre 1991 Page 34-35SVM numéro 87 octobre 1991 Page 36-37SVM numéro 87 octobre 1991 Page 38-39SVM numéro 87 octobre 1991 Page 40-41SVM numéro 87 octobre 1991 Page 42-43SVM numéro 87 octobre 1991 Page 44-45SVM numéro 87 octobre 1991 Page 46-47SVM numéro 87 octobre 1991 Page 48-49SVM numéro 87 octobre 1991 Page 50-51SVM numéro 87 octobre 1991 Page 52-53SVM numéro 87 octobre 1991 Page 54-55SVM numéro 87 octobre 1991 Page 56-57SVM numéro 87 octobre 1991 Page 58-59SVM numéro 87 octobre 1991 Page 60-61SVM numéro 87 octobre 1991 Page 62-63SVM numéro 87 octobre 1991 Page 64-65SVM numéro 87 octobre 1991 Page 66-67SVM numéro 87 octobre 1991 Page 68-69SVM numéro 87 octobre 1991 Page 70-71SVM numéro 87 octobre 1991 Page 72-73SVM numéro 87 octobre 1991 Page 74-75SVM numéro 87 octobre 1991 Page 76-77SVM numéro 87 octobre 1991 Page 78-79SVM numéro 87 octobre 1991 Page 80-81SVM numéro 87 octobre 1991 Page 82-83SVM numéro 87 octobre 1991 Page 84-85SVM numéro 87 octobre 1991 Page 86-87SVM numéro 87 octobre 1991 Page 88-89SVM numéro 87 octobre 1991 Page 90-91SVM numéro 87 octobre 1991 Page 92-93SVM numéro 87 octobre 1991 Page 94-95SVM numéro 87 octobre 1991 Page 96-97SVM numéro 87 octobre 1991 Page 98-99SVM numéro 87 octobre 1991 Page 100-101SVM numéro 87 octobre 1991 Page 102-103SVM numéro 87 octobre 1991 Page 104-105SVM numéro 87 octobre 1991 Page 106-107SVM numéro 87 octobre 1991 Page 108-109SVM numéro 87 octobre 1991 Page 110-111SVM numéro 87 octobre 1991 Page 112-113SVM numéro 87 octobre 1991 Page 114-115SVM numéro 87 octobre 1991 Page 116-117SVM numéro 87 octobre 1991 Page 118-119SVM numéro 87 octobre 1991 Page 120-121SVM numéro 87 octobre 1991 Page 122-123SVM numéro 87 octobre 1991 Page 124-125SVM numéro 87 octobre 1991 Page 126-127SVM numéro 87 octobre 1991 Page 128-129SVM numéro 87 octobre 1991 Page 130-131SVM numéro 87 octobre 1991 Page 132-133SVM numéro 87 octobre 1991 Page 134-135SVM numéro 87 octobre 1991 Page 136-137SVM numéro 87 octobre 1991 Page 138-139SVM numéro 87 octobre 1991 Page 140-141SVM numéro 87 octobre 1991 Page 142-143SVM numéro 87 octobre 1991 Page 144-145SVM numéro 87 octobre 1991 Page 146-147SVM numéro 87 octobre 1991 Page 148-149SVM numéro 87 octobre 1991 Page 150-151SVM numéro 87 octobre 1991 Page 152-153SVM numéro 87 octobre 1991 Page 154-155SVM numéro 87 octobre 1991 Page 156-157SVM numéro 87 octobre 1991 Page 158-159SVM numéro 87 octobre 1991 Page 160-161SVM numéro 87 octobre 1991 Page 162-163SVM numéro 87 octobre 1991 Page 164-165SVM numéro 87 octobre 1991 Page 166-167SVM numéro 87 octobre 1991 Page 168-169SVM numéro 87 octobre 1991 Page 170-171SVM numéro 87 octobre 1991 Page 172-173SVM numéro 87 octobre 1991 Page 174-175SVM numéro 87 octobre 1991 Page 176-177SVM numéro 87 octobre 1991 Page 178-179SVM numéro 87 octobre 1991 Page 180-181SVM numéro 87 octobre 1991 Page 182-183SVM numéro 87 octobre 1991 Page 184-185SVM numéro 87 octobre 1991 Page 186-187SVM numéro 87 octobre 1991 Page 188-189SVM numéro 87 octobre 1991 Page 190-191SVM numéro 87 octobre 1991 Page 192-193SVM numéro 87 octobre 1991 Page 194-195SVM numéro 87 octobre 1991 Page 196-197SVM numéro 87 octobre 1991 Page 198-199SVM numéro 87 octobre 1991 Page 200-201SVM numéro 87 octobre 1991 Page 202-203SVM numéro 87 octobre 1991 Page 204-205SVM numéro 87 octobre 1991 Page 206-207SVM numéro 87 octobre 1991 Page 208-209SVM numéro 87 octobre 1991 Page 210-211SVM numéro 87 octobre 1991 Page 212-213SVM numéro 87 octobre 1991 Page 214-215SVM numéro 87 octobre 1991 Page 216-217SVM numéro 87 octobre 1991 Page 218-219SVM numéro 87 octobre 1991 Page 220-221SVM numéro 87 octobre 1991 Page 222-223SVM numéro 87 octobre 1991 Page 224-225SVM numéro 87 octobre 1991 Page 226-227SVM numéro 87 octobre 1991 Page 228-229SVM numéro 87 octobre 1991 Page 230-231SVM numéro 87 octobre 1991 Page 232-233SVM numéro 87 octobre 1991 Page 234-235SVM numéro 87 octobre 1991 Page 236-237SVM numéro 87 octobre 1991 Page 238-239SVM numéro 87 octobre 1991 Page 240-241SVM numéro 87 octobre 1991 Page 242-243SVM numéro 87 octobre 1991 Page 244-245SVM numéro 87 octobre 1991 Page 246-247SVM numéro 87 octobre 1991 Page 248-249SVM numéro 87 octobre 1991 Page 250-251SVM numéro 87 octobre 1991 Page 252-253SVM numéro 87 octobre 1991 Page 254-255SVM numéro 87 octobre 1991 Page 256-257SVM numéro 87 octobre 1991 Page 258-259SVM numéro 87 octobre 1991 Page 260-261SVM numéro 87 octobre 1991 Page 262-263SVM numéro 87 octobre 1991 Page 264-265SVM numéro 87 octobre 1991 Page 266-267SVM numéro 87 octobre 1991 Page 268-269SVM numéro 87 octobre 1991 Page 270-271SVM numéro 87 octobre 1991 Page 272-273SVM numéro 87 octobre 1991 Page 274-275SVM numéro 87 octobre 1991 Page 276-277SVM numéro 87 octobre 1991 Page 278-279SVM numéro 87 octobre 1991 Page 280-281SVM numéro 87 octobre 1991 Page 282-283SVM numéro 87 octobre 1991 Page 284-285SVM numéro 87 octobre 1991 Page 286-287SVM numéro 87 octobre 1991 Page 288