Herramientas de usuario

Herramientas del sitio


es:le_bouscule_tout

¡Esta es una revisión vieja del documento!


LE BOUSCULE TOUT

Ficha

Autor Cyril Henard & Logi'Stick
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1990
Género Arcade
Controles Teclado
Lenguajes Francés
Estado Preservado

Capturas

Descripción

Listado

  • Listado 1 - CREATION.BAS
10 REM' Création de tableaux 
20 CLEAR:WIDTH 255:ON ERROR GOTO 760:esc$=CHR$(27):bip$=CHR$(7)
30 cl$=esc$+"y"+esc$+"E"+esc$+"H"+esc$+"0" 
40 iv$=esc$+"p":vi$=esc$+"q":cu$=esc$+"e":nc$=esc$+"f"
50 DEF FNl$(x,y)=esc$+"Y"+CHR$(32+y)+CHR$(32+x) 
60 REM' chargement et redéfinition caractères 
70 RESTORE 80:FOR n=&HC070 TO &HC098:READ d8:POKE n,d8:NEXT n
80 DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41
90 DATA 41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201 
100 RESTORE 130:FOR i=1 TO 8:READ n:FOR ap=1 TO 8 
110 READ pn(ap):NEXT ap:POKE &HC099,n:FOR tp=1 TO 8 
120 POKE &HC099+tp,pn(tp):NEXT tp:c=&HC070:CALL c:NEXT i
130 DATA 206,204,51,204,51,204,51,204,51,207,85,85,85,85,85,85,85,85
140 DATA 208,0,42,84,170,85,42,20,0,209,24,60,90,90,90,90,60,24
150 DATA 210,0,24,126,243,243,126,24,0,211,7,15,31,62,124,138,134,131
160 DATA 212,96,48,56,126,255,255,126,0,213,60,60,24,126,219,60,102,195
170 DIM ca(90,28),ca$(45,20),lgn$(28):a=0:b=0:PRINT nc$cl$
180 REM' affichage dessin et mode d'emploi 
190 GOSUB 410
200 GOSUB 480:PRINT FNl$(b,a)" "; 
210 IF ca$(b,a)="" THEN PRINT FNl$(b,a)" "FNl$(b,a)" "ELSE PRINT FNl$(b,a)ca$(b,a) 
220 PRINT FNl$(62,10)"points du tableau :mpnt 
230 z$=INKEY$:IF z$="" THEN 200 ELSE z=ASC(z$) 
240 IF z=31 THEN a=a-1
250 IF z=30 THEN a=a+1
260 IF z=6 THEN b=b+1
270 IF z=1 THEN b=b-1 
280 IF z=32 THEN PRINT cl$:ERASE ca,ca$:DIM ca(90,28),ca$(45,20):mpnt=0:GOTO 190 
290 IF z$="1" THEN GOSUB 750:ca(b,a)=1:ca$(b,a)=CHR$(206):mpnt=mpnt+2
300 IF z$="2" THEN GOSUB 750:ca(b,a)=2:ca$(b,a)=CHR$(207):mpnt=mpnt+5
310 IF z$="3" THEN GOSUB 750:ca(b,a)=3:ca$(b,a)=CHR$(208):mpnt=mpnt+10
320 IF z$="4" THEN GOSUB 750:ca(b,a)=4:ca$(b,a)=CHR$(209):mpnt=mpnt+20
330 IF z$="5" THEN GOSUB 750:ca(b,a)=5:ca$(b,a)=CHR$(210):mpnt=mpnt+25
340 IF z$="6" THEN GOSUB 750:ca(b,a)=6:ca$(b,a)=CHR$(211):mpnt=mpnt+50
350 IF z$="7" THEN GOSUB 750:ca(b,a)=7:ca$(b,a)=CHR$(212):mpnt=mpnt+75
360 IF z$="8" THEN GOSUB 750:ca(b,a)=8:ca$(b,a)=CHR$(213):mpnt=mpnt+100
370 IF z$="E" THEN GOSUB 660:ca(b,a)=0:ca$(b,a)="" 
380 IF z$="C" THEN GOSUB 610:GOTO 190 
390 IF z$="S" THEN GOSUB 530:GOTO 190 
400 IF z$="Q" THEN PRINT cu$;:END ELSE 200
410 PRINT FNl$(15,28)"Les flèches pour se déplacer, <ESPACE> pour effacer l'écran" 
420 FOR i=1 TO 8 STEP 2:PRINT FNl$(55,i)CHR$(48+i)": "CHR$(205+i)" =    points, "CHR$(49+i)": "CHR$(206+i)" =     points":NEXT i
430 PRINT FNl$(62,1)" 2"FNl$(80,1)"  5"FNl$(62,3)"10"FNl$(80,3)" 20"
440 PRINT FNl$(62,5)"25"FNl$(80,5)" 50"FNl$(62,7)"75"FNl$(80,7)"100"
450 PRINT FNl$(65,13)"<C> = CHARGER"FNl$(65,15)"<E> = EFFACER" 
460 PRINT FNl$(65,17)"<Q> = QUITTER"FNl$(65,19)"<S> = SAUVER":RETURN
470 REM' controle des limites d'ecran 
480 IF a<0 THEN a=0
490 IF a=18 THEN a=17
500 IF b<0 THEN b=0
510 IF b=40 THEN b=39 
520 RETURN:REM' sauvegarde des créations 
530 PRINT cl$"Sauvegarde du tableau créé (8 lettres maximum): ";:INPUT"",nom$:pt=0 
540 nom$=UPPER$(LEFT$(nom$,8)):OPEN"O",2,nom$+".TBL":FOR i=0 TO 18:FOR j=0 TO 39 
550 IF ca(j,i)=1 THEN pt=pt+2 ELSE IF ca(j,i)=2 THEN  pt=pt+5
560 IF ca(j,i)=3 THEN pt=pt+10 ELSE IF ca(j,i)=4 THEN pt=pt+20 
570 IF ca(j,i)=5 THEN pt=pt+25 ELSE IF ca(j,i)=6 THEN pt=pt+50 
580 IF ca(j,i)=7 THEN pt=pt+75 ELSE IF ca(j,i)=8 THEN pt=pt+100 
590 PRINT #2,ca(j,i):NEXT j,i:PRINT #2,pt:CLOSE:PRINT cl$:RETURN
600 REM' chargement de tableaux 
610 i=1:PRINT cl$"Nom du fichier à charger : ";:INPUT"",nom$:nom$=UPPER$(LEFT$(nom$,8)) 
620 OPEN"I",1,nom$+".TBL":FOR i=0 TO 18:FOR j=0 TO 39:INPUT #1,mur:ca(j,i)=mur
630 IF mur=0 THEN PRINT FNl$(j,i)" "ELSE ca$(j,i)=CHR$(205+mur):PRINT FNl$(j,i)ca$(j,i)
640 NEXT j,i:INPUT #1,mpnt:CLOSE:RETURN 
650 REM' calcul des points du tableau en cours de création
660 IF ca(b,a)=1 THEN mpnt=mpnt-2 
670 IF ca(b,a)=2 THEN mpnt=mpnt-5 
680 IF ca(b,a)=3 THEN mpnt=mpnt-10 
690 IF ca(b,a)=4 THEN mpnt=mpnt-20 
700 IF ca(b,a)=5 THEN mpnt=mpnt-25 
710 IF ca(b,a)=6 THEN mpnt=mpnt-50 
720 IF ca(b,a)=7 THEN mpnt=mpnt-75 
730 IF ca(b,a)=8 THEN mpnt=mpnt-100 
740 RETURN
750 IF ca(b,a)<>0 THEN PRINT bip$:GOTO 200 ELSE RETURN
760 PRINT FNl$(18,15)iv$" Erreur n°"ERR"en ligne"ERL vi$:h$=INPUT$(1):RESUME NEXT
  • Listado 2 - BOUSTOUS.BAS
1 REM'***************************** 
3 REM'* Cyril HENARD & LOGI'STICK * 
5 REM'*    Vous   prsentent      *
7 REM'*   LE   BOUSCULE   TOUT    * 
9 REM'*****************************
10 CLEAR:WIDTH 255:ON ERROR GOTO 870:IF FIND$("RECORD.BUT")="" THEN 30
20 OPEN"I",1,"RECORD.BUT":INPUT #1,recor,rec$:CLOSE 
30 esc$=CHR$(27):cl$=esc$+"y"+esc$+"E"+esc$+"H"+esc$+"0"
40 iv$=esc$+"p":vi$=esc$+"q":ef$=esc$+"K":cu$=esc$+"e":nc$=esc$+"f"
50 DEF FNl$(x,y)=esc$+"Y"+CHR$(32+y)+CHR$(32+x) 
55 REM' redéfinition caractères 
60 RESTORE 70:FOR n=&HC070 TO &HC098:READ d8:POKE n,d8:NEXT n
70 DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41
80 DATA 41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201 
90 RESTORE 120:FOR i=1 TO 14:READ n:FOR ap=1 TO 8 
100 READ pn(ap):NEXT ap:POKE &HC099,n:FOR tp=1 TO 8 
110 POKE &HC099+tp,pn(tp):NEXT tp:c=&HC070:CALL c:NEXT i
120 DATA 200,0,127,127,96,111,111,108,109,201,0,254,254,6,246,246,54,182
130 DATA 202,109,108,111,111,96,127,127,0,203,182,54,246,246,6,254,254,0
140 DATA 204,0,0,60,126,126,60,0,0,205,255,255,255,255,0,0,0,0
150 DATA 206,204,51,204,51,204,51,204,51,207,85,85,85,85,85,85,85,85
160 DATA 209,24,60,90,90,90,90,60,24,208,0,42,84,170,85,42,20,0
170 DATA 210,0,24,126,243,243,126,24,0,211,7,15,31,62,124,138,134,131
180 DATA 212,96,48,56,126,255,255,126,0,213,60,60,24,126,219,60,102,195
190 DIM ch(77,47):RESTORE 200:FOR tb=1 TO 6:READ a$:tbl$(tb)=a$:NEXT tb:tb=1
200 DATA "TABLEAU1","TABLEAU2","TABLEAU3","TABLEAU4","TABLEAU5","TABLEAU6"
205 REM' cadres et mode d'emploi 
210 OUT 248,8:PRINT nc$cl$FNl$(53,0)iv$CHR$(134)STRING$(35,138)CHR$(140)
220 PRINT FNl$(53,1)CHR$(133)"  L E   B O U S C U L E   T O U T  "CHR$(133)
230 PRINT FNl$(53,2)CHR$(131)STRING$(35,138)CHR$(137)vi$
240 PRINT FNl$(58,4)"Jeu d'adresse et de précision" 
250 PRINT FNl$(54,6)ef$"Se joue avec les touches"esc$"23 º+§ et º-§"
260 PRINT FNl$(54,8)ef$esc$"21pour les déplacements gauche-droite"
270 PRINT FNl$(58,10)"<S>auvegarde ? <C>hargement"FNl$(53,12)STRING$(37,126)
280 PRINT FNl$(60,17)iv$CHR$(134)STRING$(20,138)CHR$(140)
290 FOR i=18 TO 28:PRINT FNl$(60,i)CHR$(133)SPC(20)CHR$(133)
300 NEXT i:PRINT FNl$(60,29)CHR$(131)STRING$(20,138)CHR$(137)vi$:OUT 248,7
310 w$=CHR$(200)+CHR$(201):v$=CHR$(202)+CHR$(203):FOR i=0 TO 47 STEP 2
320 PRINT FNl$(i,0)w$FNl$(i,28)w$FNl$(i,1)v$FNl$(i,29)v$:NEXT i:FOR i=2 TO 26 STEP 2 
330 PRINT FNl$(0,i)w$FNl$(46,i)w$FNl$(0,i+1)v$FNl$(46,i+1)v$:NEXT i 
340 tb=1:fin=0:mscor=0:bx=INT(RND*34)+2:bal=3:niv=1:IF bx/2<>INT(bx/2) THEN 340
350 scor=0
355 REM' chargement tableaux 
360 OPEN"I",2,tbl$(tb)+".TBL":FOR j=0 TO 18 
370 FOR i=0 TO 39:INPUT #2,mur:ch(i+4,j+3)=mur 
380 IF mur=0 THEN PRINT FNl$(4+i,j+3)" " ELSE PRINT FNl$(4+i,j+3)CHR$(205+mur)
390 NEXT i,j:INPUT #2,maxi:CLOSE:mscor=mscor+maxi 
400 PRINT FNl$(58,13)ef$"Score de qualification :"mscor-(150*tb)
410 PRINT FNl$(58,15)ef$"pour accéder au tableau "niv+1
420 GOSUB 460:PRINT FNl$(bx+4,25)CHR$(204)FNl$(3,27)SPC(43)
430 PRINT FNl$(4,27)"Appuyez sur <ESPACE> pour lancer le jeu" 
440 GOSUB 890:a=a+1:IF h$<>" " THEN 440 ELSE RANDOMIZE(a):PRINT FNl$(3,27)SPC(43)
450 GOSUB 780:GOTO 470 
460 PRINT FNl$(bx,26)"  "STRING$(6,205)"  ":RETURN 
465 REM' controle limites d'écran 
470 az=INT(RND*9)+1:IF az>=0 AND az<3 THEN xa=-1 
480 IF az>=3 AND az<6 THEN xa=0 
490 IF az>=6 AND az<=9 THEN xa=1 
500 ya=-1:GOSUB 460:x=bx+4:y=25:x1=x:y1=y:IF a<0 THEN a=0 
510 x1=x+xa:y1=y+ya:IF x1<=4 THEN x1=4:xa=-xa ELSE IF x1>=43 THEN x1=43:xa=-xa 
520 GOSUB 740:IF y1=26 AND x1>bx+1 AND x1<bx+4 THEN xa=-1:x1=x+2*xa:ya=-ya:y1=y1-2 
530 IF y1=26 AND x1>bx+5 AND x1<bx+8 THEN xa=1:ya=-ya:y1=y1-2:x1=x+2*xa 
540 IF y1=26 AND (x1=bx+4 OR x1=bx+5) THEN xa=0:ya=-ya:y1=y1-2 
550 IF y1=27 THEN PRINT FNl$(x,y)" ":GOTO 720 
560 GOSUB 460
565 REM' controle et calcul score
570 t=ch(x1,y1) 
580 IF t<>0 THEN FOR i=0 TO 9:OUT 248,11:OUT 248,12:NEXT i:ya=-ya:PRINT FNl$(x,y)" ":x=x1:y=y1:y1=y1+ya
590 IF t=1 THEN ch(x1,y1-ya)=0:scor=scor+2:GOSUB 780:GOTO 570
600 IF t=2 THEN ch(x1,y1-ya)=0:scor=scor+5:GOSUB 780:GOTO 570
610 IF t=3 THEN ch(x1,y1-ya)=0:scor=scor+10:GOSUB 780:GOTO 570
620 IF t=4 THEN ch(x1,y1-ya)=0:scor=scor+20:GOSUB 780:GOTO 570
630 IF t=5 THEN ch(x1,y1-ya)=0:scor=scor+25:GOSUB 780:GOTO 570
640 IF t=6 THEN ch(x1,y1-ya)=0:scor=scor+50:GOSUB 780:GOTO 570
650 IF t=7 THEN ch(x1,y1-ya)=0:scor=scor+75:GOSUB 780:GOTO 570
660 IF t=8 THEN ch(x1,y1-ya)=0:scor=scor+100:GOSUB 780:GOTO 570
670 IF y1=2 THEN ya=1
675 REM' *** si tout est éliminé 
680 IF scor=mscor+(fin*500) THEN fin=fin+1:scor=scor+500:bal=3:niv=niv+1:tb=tb+1:GOSUB 880:GOTO 360 
690 PRINT FNl$(x,y)" "FNl$(x1,y1)CHR$(204):x=x1:y=y1
700 IF y=2 OR x=4 OR x=43 THEN FOR i=0 TO 99:OUT 248,11:OUT 248,12:NEXT i
705 REM' balle rebondissant contre les bords 
710 GOTO 510
720 bal=bal-1:IF bal=0 THEN 770
730 GOTO 430
735 REM' controle test clavier 
740 tch$=INKEY$:IF tch$=CHR$(22) AND bx>2 THEN bx=bx-2:RETURN
750 IF tch$=CHR$(28) AND bx<36 THEN bx=bx+2:RETURN 
760 RETURN
765 REM' controle et enregistrement record 
770 IF scor>=mscor-(150*tb) THEN bal=3:niv=niv+1:tb=tb+1:GOSUB 880:GOTO 360 ELSE 810 
780 PRINT FNl$(63,21)iv$"De "rec$FNl$(63,19)"RECORD.: "USING"######";recor
790 PRINT FNl$(63,27)"BALLES.:     "bal;FNl$(63,25)"TABLEAU:     "USING"##";niv 
800 PRINT FNl$(63,23)"SCORE..: "USING"######";scor:PRINT vi$:RETURN
810 IF scor>recor THEN recor=scor:GOSUB 850:OPEN"O",1,"RECORD.BUT":PRINT #1,recor,rec$:CLOSE 
820 GOSUB 780:PRINT FNl$(3,27)nc$"Appuyez <R> pour re jouer, <Q> pour quitter"
830 GOSUB 1010:IF h$="R" THEN PRINT FNl$(4,26)SPC(41):GOTO 340
840 IF h$="Q" THEN PRINT cl$cu$;:END ELSE 830 
850 PRINT FNl$(58,13)ef$STRING$(10,7)iv$" BRAVO ! Record battu... "vi$
860 PRINT FNl$(58,15)ef$cu$;:INPUT"Votre nom : ",rec$:RETURN
865 REM' traitement d'erreurs basic du listing 
870 PRINT FNl$(10,14)iv$" Erreur nº"ERR"en ligne"ERL vi$:h$=INPUT$(1):RESUME NEXT 
875 REM' controle si dernier tableau utilisé 
880 IF tb=7 THEN tb=1:scor=scor+700:GOTO 360 ELSE RETURN
890 GOSUB 1010:IF bal=3 AND h$="S" THEN 920 
900 IF bal=3 AND h$="C" THEN 960
910 RETURN
915 REM' sauvegarde partie en cours 
920 PRINT FNl$(54,6)ef$"Nom du fichier à sauvegarder"FNl$(54,8)ef$cu$;
930 INPUT"(sans extension) : ",n$:n$=LEFT$(n$,8)+".PEC":PRINT nc$
940 mscor=mscor-maxi:OPEN"O",1,n$:PRINT #1,niv,tb,scor,mscor,fin
950 CLOSE:PRINT cl$cu$;:END 
955 REM' chargement partie en cours 
960 PRINT FNl$(54,6)ef$"Nom du fichier à charger..."FNl$(54,8)ef$cu$;
970 INPUT"(sans extension) : ",n$:n$=LEFT$(n$,8)+".PEC":PRINT nc$
980 PRINT FNl$(54,6)ef$"Se joue avec les touches"esc$"23 º+§ et º-§"
990 PRINT FNl$(54,8)ef$esc$"21pour les deplacements gauche-droite"
1000 mscor=0:maxi=0:OPEN"I",1,n$:INPUT #1,niv,tb,scor,mscor,fin:CLOSE:KILL n$:GOTO 360
1010 h$=UPPER$(INPUT$(1)):IF h$="" THEN 1010 
1020 RETURN

Controles

      N = NORTE
      S = SUR
      E = ESTE
      W = OESTE
      L = OBSERVAR
      I = INVENTARIO
      TOMAR, SALTAR, GOLPEAR, DECIR...
      

Carga del programa

1.- Introducir el disco CP/M por la cara 2
2.- Escribir BASIC y esperar a que cargue
3.- Retirar el disco CP/M e introducir el disco que contiene el juego Le Bouscule Tout
4.- Teclear run "CREATION" y pulsar la tecla "ENTER" para crear los tableros
5.- Teclear run "BOUSTOUS" y pulsar la tecla "ENTER" para jugar con los tableros creados

Extras

  • Listado del programa en revista de gran tirada de la época

boustous_01.jpg boustous_02.jpg boustous_03.jpg boustous_04.jpg boustous_05.jpg

Descarga

Se han creado los tableros solo en la versión española. Puede crear los que vienen en la revista, para la versión francesa.

es/le_bouscule_tout.1657371546.txt.gz · Última modificación: 2022/07/09 15:59 por jevicac