es:le_bouscule_tout
¡Esta es una revisión vieja del documento!
Tabla de Contenidos
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
Descarga
- Le Bouscule Toue en francés (juego en formato dsk, comprimido con zip)
- Le Bouscule Toue en español (juego en formato dsk, comprimido con zip)
es/le_bouscule_tout.1657371401.txt.gz · Última modificación: 2022/07/09 15:56 por jevicac