es:chomp
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaPróxima revisiónAmbos lados, revisión siguiente | ||
es:chomp [2022/07/01 11:47] – [Descripción] jevicac | es:chomp [2022/07/01 11:49] – [Carga del programa] jevicac | ||
---|---|---|---|
Línea 21: | Línea 21: | ||
===== Listado ===== | ===== Listado ===== | ||
- | * **__Listado - KC.BAS__** | + | * **__Listado - CHOMP.BAS__** |
< | < | ||
- | 10 REM By Mike Noels | + | |
- | 20 REM (c) Computing With The Amstrad | + | 1 ' Chomp by M.A. Owen |
- | 30 REM PCW | + | 2 ' |
- | 40 DEFINT a-z:PRINT CHR$(27);" | + | 3 ' |
- | 50 DIM d(10,4) | + | 5 clock=256*PEEK(2)-10 |
- | 60 h$=SPACE$(25): | + | 10 GOSUB 600 |
- | 70 hh$=SPACE$(255):oo$=h$:hh$="": | + | 20 PRINT cl$:ERASE l$:DIM l$(26):c=0:w=0 |
- | 80 FOR i=1 TO 10: FOR j=1 TO 4 | + | 30 PRINT FNp$(85,0);CHR$(200);CHR$(201);FNp$(85,1);CHR$(202);CHR$(203) |
- | 90 READ d(i,j) | + | 40 PRINT FNp$(84,30);CHR$(204);CHR$(205);CHR$(206);CHR$(207);e$+"H" |
- | 100 NEXT:NEXT | + | 50 FOR f=0 TO 27:PRINT FNp$(82,f);CHR$(149): |
- | 110 n=12: | + | 60 PRINT FNp$(0,24)STRING$(82,154)CHR$(157) |
- | 120 DIM j$(n):DIM o(n):DIM m$(m) | + | 70 PRINT FNp$(0, |
- | 130 FOR i=1 TO n:READ hh$:READ cc$:GOSUB 530:j$(i)=oo$: | + | 80 PRINT FNp$(37-LEN(h$)\2,2);e$+"r";"Guess ";h$;e$+"u" |
- | 140 FOR i=1 TO m:READ m$(i):NEXT | + | 90 PRINT FNp$(0,10);"What is this :"FNp$(18, |
- | 150 h$="" | + | 100 IF d$(choice,1)="1" |
- | 160 b=-1:d=-1:e=-1: | + | 110 d$(choice,1)="1":le=0:FOR f=1 TO LEN(d$(choice,0)) |
- | 170 r=2: | + | 120 IF MID$(d$(choice, |
- | 180 PRINT"On a visit to the palace of Craal, you find the place in uproar. The king is dead and his" | + | 130 PRINT CHR$(154); |
- | 190 PRINT"crown stolen by a wicked wizard who's fled to his den in the palace dungeons. By paying" | + | 140 NEXT f:t=t+1 |
- | 200 PRINT" | + | 150 PRINT FNp$(0,16);"Choose a letter"; |
- | 210 PRINT" | + | 160 i$=LOWER$(INKEY$):IF i$<"a" |
- | 220 PRINT "You are thrown into the dungeons and told not to come back without the crown." | + | 170 IF l$(ASC(i$)-96)="" |
- | 230 PRINT:PRINT "Here begins the adventure....": | + | 180 PRINT FNp$(0,16)" |
- | 240 GOTO 50 | + | 190 l$(ASC(i$)-96)="1":PRINT FNp$(1+2*(ASC(i$)-96),26);i$;e$+"H" |
- | 250 WHILE NOT g | + | 200 found=0:FOR f=1 TO LEN(d$(choice,0)) |
- | 260 IF r<>x THEN GOSUB 610 | + | 210 IF MID$(d$(choice,0),f,1)<>i$ THEN 230 |
- | 270 x=r:c=0:WHILE c=0:GOSUB 380:WEND | + | 220 PRINT FNp$(15+3*f, |
- | 280 ON c GOSUB 810, | + | 230 NEXT f:IF found=1 AND c< |
- | 290 WEND | + | 240 IF found=1 THEN 360 ELSE w=w+1 |
- | 300 PRINT | + | 250 PRINT FNp$(0, |
- | 310 IF o(8)=1 THEN GOTO 330 ELSE m=31:GOSUB 2160 | + | 260 GOSUB 390:IF w<8 THEN GOSUB 380:GOTO 150 |
- | 320 m=32:GOSUB 2160:PRINT:GOTO 350 | + | 270 PRINT FNc$(8):GOSUB 390:PRINT FNc$(4):GOSUB 390 |
- | 330 m=29:GOSUB 2160: | + | 280 PRINT FNc$(10):GOSUB 390:PRINT FNp$(84,28)" |
- | 340 m=30:GOSUB 2160:END | + | 290 PRINT FNp$(85,29);CHR$(200);CHR$(201);FNp$(85,30); |
- | 350 PRINT: | + | 300 PRINT CHR$(202);CHR$(203); |
- | 360 a$="": | + | 310 PRINT FNp$(0, |
- | 370 a$=UPPER$(a$):IF a$="N" THEN END ELSE RUN | + | 320 PRINT FNp$(0, |
- | 380 PRINT:PRINT"What now?" | + | 330 PRINT FNp$(0,22)"Do you want another go? (y or n)" |
- | 390 c$="": | + | 340 i$=INKEY$: |
- | 400 IF LEN(c$)<>1 THEN 420 | + | 350 IF i$<>" |
- | 410 c=INSTR("nsewil",c$): IF c<>0 THEN RETURN ELSE PRINT"I don't recognise this single letter command - only n, | + | 360 PRINT FNp$(0,16)"Well done."SPACE$(40)FNc$(8) |
- | 420 sx=INSTR(c$," "): IF sx=0 THEN PRINT "I don't understand - put a space between command and object, please.":c=0:RETURN | + | 370 GOSUB 390:PRINT FNc$(9): |
- | 430 verb$=LEFT$(c$,SX-1):o$=" "+MID$(c$,SX+1):WHILE LEFT$(o$,1)=" ":o$=RIGHT$(o$,LEN(o$)-1):WEND | + | 380 PRINT FNc$(8): |
- | 440 c=INSTR(" | + | 390 FOR g=1 TO 1000:NEXT g:RETURN |
- | 450 IF c<>1 AND c<>5 AND c<>9 AND c<> | + | 400 DATA 01,67,e0,18, |
- | 460 IF c=1 THEN c=7 ELSE IF c=5 THEN c=8 ELSE IF c=12 THEN c=10 ELSE IF c=9 THEN RETURN | + | 410 DATA e0,c5,2a,01, |
- | 470 z=0:i=1:m=0:WHILE m<>1 AND i<> | + | 420 DATA c1,cd,00,00, |
- | 480 IF LEFT$(o$,4)=LEFT$(j$(i),4) THEN m=1 | + | 430 DATA eb,7d,e6,07, |
- | 490 i=i+1 | + | 440 DATA b1,6f,c9,db, |
- | 500 WEND | + | 450 DATA 40,28,f4,c9, |
- | 510 IF m=1 THEN z=i-1 ELSE PRINT"I don't understand the object you mean.": | + | 460 DATA 00,ed,b0,c9, |
- | 520 RETURN | + | 470 DATA b7,cd,1f, |
- | 530 oo$="" | + | 480 DATA 02,ed,b0,c1, |
- | 540 FOR jj=1 TO LEN(hh$) | + | 490 DATA b7,e5,cd,1f,e0, |
- | 550 rr=ASC(MID$(hh$,jj,1))-3 | + | 500 DATA cd,33, |
- | 560 IF rr=38 OR rr=41 OR rr=34 THEN rr=rr+3 | + | 510 DATA a8,02, |
- | 570 oo$=oo$+CHR$(rr) | + | 520 DATA 1a, |
- | 580 NEXT | + | 530 DATA &hd2,01, |
- | 590 RETURN | + | 540 DATA 10,5e, |
- | 600 END | + | 550 DATA 2c, |
- | 610 in=-1:m=r-1: | + | 560 DATA a5,81, |
- | 620 PRINT:PRINT: | + | 570 DATA 00,00,00,ff,00,ff, |
- | 630 f=0 | + | 580 DATA fe, |
- | 640 FOR i=1 TO n | + | 590 DATA 24, |
- | 650 IF o(i)<>r THEN 670 ELSE f=-1 | + | 600 MEMORY 57343!: |
- | 660 GOSUB 1400 | + | 610 cl$=e$+" |
- | 670 NEXT | + | 620 DEF FNp$(x,y)=e$+"Y"+CHR$(32+y)+CHR$(32+x): |
- | 680 IF NOT f THEN PRINT"Nothing of interest." | + | 630 DIM d$(200,1),l$(26):DEF FNc$(x)=FNp$(84,30)+CHR$(200+x)+e$+"H" |
- | 690 PRINT | + | 640 RESTORE 710:f=1:READ h$,i$: |
- | 700 RETURN | + | 650 f=f+1:WEND:t=0:n=f-1 |
- | 710 DATA 0,0,0,0 | + | 660 IF (PEEK(init)=1) AND (PEEK(init+1)=64) THEN RETURN |
- | 720 DATA 3,9,0,0 | + | 670 RESTORE 400:add=spid:FOR g=1 TO 2:f=0:cs=0:READ d$:WHILE d$<>" |
- | 730 DATA 0,2,4,0 | + | 680 m=VAL("& |
- | 740 DATA 0,0,5,3 | + | 690 WEND:READ d$:IF cs<> |
- | 750 DATA 0,0,0,4 | + | 700 add=60928!:NEXT g:CALL init:RETURN |
- | 760 DATA 0,7,0,0 | + | 710 DATA an Animal |
- | 770 DATA 6,0,0,8 | + | 720 DATA ass,badger,bat,bear,beaver,bison,boar,buffalo,caribou |
- | 780 DATA 0,0,7,9 | + | 730 DATA cat,coypu,deer,dolphin,dormouse,elk,ferret,fox,hamster |
- | 790 DATA 2,0,8,0 | + | 740 DATA hare,hedgehog,horse,jackal,lemming,lynx,mink,mole,mongoose |
- | 800 DATA 0,0,0,0 | + | 750 DATA moose,mouse,otter,ox,polecat,porcupine,porpoise,rabbit |
- | 810 IF d(r,1)=0 THEN PRINT" Not allowed": | + | 760 DATA raccoon,rat,reindeer,seal,sheep,shrew,squirrel,stoat,vole |
- | 820 IF r=7 AND a THEN m=33:GOSUB 2160: | + | 770 DATA walrus,weasel,whale, |
- | 830 r=d(r,1) | + | 780 DATA lion, |
- | 840 RETURN | + | |
- | 850 IF d(r,2)=0 THEN PRINT" Not allowed": | + | |
- | 860 r=d(r,2) | + | |
- | 870 RETURN | + | |
- | 880 IF d(r,3)=0 THEN PRINT" Not allowed": | + | |
- | 890 IF d(r,3)=8 AND ff THEN m=34:GOSUB 2160:ff=0 | + | |
- | 900 IF d(r,3)=7 AND o(7)=0 THEN o(7)=8:m=35:GOSUB 2160:PRINT | + | |
- | 910 r=d(r,3) | + | |
- | 920 RETURN | + | |
- | 930 IF d(r,4)=0 THEN PRINT" | + | |
- | 940 r=d(r,4) | + | |
- | 950 RETURN | + | |
- | 960 IF o(z)=1 THEN PRINT" | + | |
- | 970 IF o(z)<> | + | |
- | 980 IF z<t THEN PRINT" | + | |
- | 990 RETURN | + | |
- | 1000 IF o(z)=1 THEN o(z)=R ELSE PRINT "You don't have it":RETURN | + | |
- | 1010 ON (r-1) GOSUB 1250, | + | |
- | 1020 RETURN | + | |
- | 1030 h$="": | + | |
- | 1040 h$=h$+MID$(o$,i,1) | + | |
- | 1050 NEXT | + | |
- | 1060 IF o$=h$ THEN g=-1: | + | |
- | 1070 PRINT" | + | |
- | 1080 RETURN | + | |
- | 1090 PRINT"Your inventory contains:-" | + | |
- | 1100 f=0 | + | |
- | 1110 FOR i=t TO n | + | |
- | 1120 IF o(i)<>1 THEN 1140 ELSE f=-1 | + | |
- | 1130 GOSUB 1400 | + | |
- | 1140 NEXT | + | |
- | 1150 IF NOT f THEN PRINT"Nothing at all." | + | |
- | 1160 PRINT | + | |
- | 1170 RETURN | + | |
- | 1180 IF o(z)<>r THEN PRINT" | + | |
- | 1190 IF o(11)<>1 THEN m=36:GOTO 2160 | + | |
- | 1200 IF z<>6 AND z<>3 THEN PRINT"This has no effect whatsoever." | + | |
- | 1210 IF z=6 AND a THEN a=0:m=37:GOSUB 2160: | + | |
- | 1220 IF z=3 AND s=0 THEN m=38:GOSUB 2160:s=-1: | + | |
- | 1230 IF z=3 AND s=-1 THEN m=39:GOTO 2160 | + | |
- | 1240 RETURN | + | |
- | 1250 IF z=8 AND e THEN m=40:GOSUB 2160:o(z)=0:e=NOT e:o(11)=1 | + | |
- | 1260 RETURN | + | |
- | 1270 IF z=7 AND NOT b AND l THEN m=41:GOSUB 2160: | + | |
- | 1280 IF z=9 THEN m=42:GOSUB 2160:o(z)=0:o(12)=3 | + | |
- | 1290 IF z=10 THEN d=0 | + | |
- | 1300 RETURN | + | |
- | 1310 IF o(7)=5 AND o(12)=5 THEN m=43:GOSUB 2160:b=0:o(12)=0:o(7)=1 | + | |
- | 1320 RETURN | + | |
- | 1330 IF z<>10 THEN 1370 | + | |
- | 1340 IF d THEN m=44:GOSUB 2160:GOTO 350 | + | |
- | 1350 IF (NOT l) OR (o(7)<>8 AND o(7)<> | + | |
- | 1360 IF o(2)=0 THEN m=46:GOSUB 2160:o(1)=0: | + | |
- | 1370 IF z=7 AND NOT b THEN l=-1:m=47:GOSUB 2160: | + | |
- | 1380 IF z=9 OR z=12 THEN m=48:GOSUB 2160: | + | |
- | 1390 RETURN | + | |
- | 1400 IF i=1 THEN m=10:GOSUB 2110 | + | |
- | 1410 IF i=2 THEN m=11:GOSUB 2110 | + | |
- | 1420 IF i=3 AND NOT s THEN m=12:GOSUB 2110 | + | |
- | 1430 IF i=3 AND s THEN m=14:GOSUB 2110 | + | |
- | 1440 IF i=4 THEN m=15:GOSUB 2110: | + | |
- | 1450 IF i=5 THEN m=18:GOSUB 2110 | + | |
- | 1460 IF i=6 THEN m=19:GOSUB 2110 | + | |
- | 1470 IF i=7 AND NOT b AND NOT l THEN m=21:GOSUB 2110 | + | |
- | 1480 IF i=7 AND NOT b AND l THEN m=22:GOSUB 2110 | + | |
- | 1490 IF i=7 AND b THEN m=23:GOSUB 2110 | + | |
- | 1500 IF i=8 THEN m=20:GOSUB 2110 | + | |
- | 1510 IF i=9 THEN m=24:GOSUB 2110 | + | |
- | 1520 IF i=10 AND d THEN m=25:GOSUB 2110 | + | |
- | 1530 IF i=10 AND NOT d THEN m=28:GOSUB 2110 | + | |
- | 1540 IF i=11 AND NOT a THEN m=26:GOSUB 2110 | + | |
- | 1550 IF i=11 AND a THEN crip$="a "+j$(i):PRINT crip$ | + | |
- | 1560 IF i=12 THEN m=27:GOSUB 2110 | + | |
- | 1570 PRINT | + | |
- | 1580 RETURN | + | |
- | 1590 DATA iluh,;,sloh# | + | |
- | 1600 DATA " | + | |
- | 1610 DATA " | + | |
- | 1620 DATA " | + | |
- | 1630 DATA " | + | |
- | 1640 DATA " | + | |
- | 1650 DATA " | + | |
- | 1660 DATA " | + | |
- | 1670 DATA " | + | |
- | 1680 DATA " | + | |
- | 1690 DATA " | + | |
- | 1700 DATA " | + | |
- | 1710 DATA " | + | |
- | 1720 DATA " | + | |
- | 1730 DATA " | + | |
- | 1740 DATA " | + | |
- | 1750 DATA " | + | |
- | 1760 DATA " | + | |
- | 1770 DATA " | + | |
- | 1780 DATA " | + | |
- | 1790 DATA " | + | |
- | 1800 DATA " | + | |
- | 1810 DATA " | + | |
- | 1820 DATA " | + | |
- | 1830 DATA " | + | |
- | 1840 DATA " | + | |
- | 1850 DATA " | + | |
- | 1860 DATA " | + | |
- | 1870 DATA ",# | + | |
- | 1880 DATA " | + | |
- | 1890 DATA " | + | |
- | 1900 DATA " | + | |
- | 1910 DATA " | + | |
- | 1920 DATA " | + | |
- | 1930 DATA " | + | |
- | 1940 DATA " | + | |
- | 1950 DATA " | + | |
- | 1960 DATA " | + | |
- | 1970 DATA " | + | |
- | 1980 DATA " | + | |
- | 1990 DATA " | + | |
- | 2000 DATA " | + | |
- | 2010 DATA " | + | |
- | 2020 DATA " | + | |
- | 2030 DATA " | + | |
- | 2040 DATA " | + | |
- | 2050 DATA " | + | |
- | 2060 DATA " | + | |
- | 2070 DATA " | + | |
- | 2080 DATA " | + | |
- | 2090 DATA " | + | |
- | 2100 DATA " | + | |
- | 2110 hh$=m$(m): | + | |
- | 2120 crip$=" | + | |
- | 2130 IF NOT in THEN crip$=" | + | |
- | 2140 in=0 | + | |
- | 2150 RETURN | + | |
- | 2160 hh$=m$(m): | + | |
- | 2170 RETURN | + | |
- | in THEN crip$=" | + | |
- | 2140 in=0 | + | |
- | 2150 RETURN | + | |
- | 2160 hh$=m$(m): | + | |
</ | </ | ||
Línea 250: | Línea 112: | ||
===== Controles ===== | ===== Controles ===== | ||
- | | + | |
- | S = SUR | + | |
- | E = ESTE | + | |
- | W = OESTE | + | |
- | L = OBSERVAR | + | |
- | I = INVENTARIO | + | |
- | TOMAR, SALTAR, GOLPEAR, DECIR... | + | |
===== Carga del programa ===== | ===== Carga del programa ===== | ||
1.- Introducir el disco CP/M por la cara 2 | 1.- Introducir el disco CP/M por la cara 2 | ||
2.- Escribir BASIC y esperar a que cargue | 2.- Escribir BASIC y esperar a que cargue | ||
- | 3.- Retirar el disco CP/M e introducir el disco que contiene el juego Kingdom of Craal | + | 3.- Retirar el disco CP/M e introducir el disco que contiene el juego Chomp |
- | 4.- Teclear run "KC" y pulsar la tecla " | + | 4.- Teclear run "CHOMP" y pulsar la tecla " |
===== Extras ===== | ===== Extras ===== |
es/chomp.txt · Última modificación: 2022/07/01 12:12 por jevicac