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 para CREATION
↑ = Arriba ↓ = Abajo ← = Izquierda → = Derecha Números 1 al 8 = Seleccionar gráfico ESPACIO = Borrar la pantalla C = Cargar E = Borrar Q = Salir G = Guardar
Controles para BOUSTOUS
+ = Izquierda - = Derecha ESPACIO = Comenzar
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
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.
- 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.1657372130.txt.gz · Última modificación: 2022/07/09 16:08 por jevicac