archive-name: listings.rand-usr.com/books/haunted_house_2.basic found at: page 42 last-modified: jan 28, 2026 ----------------------------------- START ------------------------------------- 5 REM ****************** 10 REM casa encantada 11 REM 18 bytes de codigo maquina almacenados en la linea 5 20 GOSUB 6500: REM inicializar 30 GOSUB 2000: REM fondo 40 GOSUB 2500: REM castillo 50 GOSUB 4500: REM arboles 60 GOSUB 5000: REM oscuridad 70 LET n=5: GOSUB 1500: REM rayo 80 LET m=1300 90 FOR b=0 TO 29 100 GOSUB 500: REM murcielago 110 GOSUB 1000: REM bruja 120 if b=29 THEN PRINT AT 1,29;" ": REM esp, esp, esp 130 NEXT b 140 LET n=5: GOSUB 1500: REM rayo 150 GOSUB 5500: REM fuego 160 GOSUB 6000: REM calavera 170 STOP 500 REM mucielago 510 IF m<150 THEN LET xm=xm+1: GOTO 530 520 LET m=m-8: LET a=m*PI/180: LET xm=16+INT (4.5*SIN (a)): LET ym=4+INT (3.5*COS (a)) 530 PAPER 0: INK 7: PRINT AT ym,xm;"R": REM (R) 535 PAUSE 3 540 PRINT AT ym,xm;"S": REM (S) 545 PAUSE 3 550 PRINT AT ym,xm;" ": REM esp 560 RETURN 1000 REM bruja 1010 PAPER 0: INK 7 1020 PRINT AT 1,b;" IJ": GOSUB 500: REM esp,(I),(J) 1030 PRINT AT 1,b;" KL": GOSUB 500: REM esp,(K),(L) 1040 PRINT AT 1,b;" MN": GOSUB 500: REM esp,(M),(N) 1050 PRINT AT 1,b;" OPQ": REM esp,(O),(P),(Q) 1060 RETURN 1500 REM rayo 1510 FOR l=1 TO n 1520 INK 0: PLOT 255,170: DRAW -39,-40: DRAW 10,0: DRAW -29,-40 1530 POKE 23761,7: RANDOMIZE USR 23760 1540 INK 6: PRINT AT 3,3;"G";AT 4,3 ;"H": REM (G);(H) 1545 PAUSE 5 1550 POKE 23761,1: RANDOMIZE USR 23760 1560 INK 6: PRINT AT 3,3;"G";AT 4,3;"H": REM (G);(H) 1570 INK 0: PLOT 255,170: DRAW -39,-40: DRAW 10,0: DRAW -29,-40 1575 PAUSE 1 1580 NEXT l 1590 RETURN 2000 REM fondo 2010 PAPER 4: INK 0: CLS 2020 FOR r=1 TO 100 2030 LET x=INT (RND*255): LET y=INT (RND*80): PLOT x,y 2040 NEXT r: PAPER 5 2050 FOR y=0 TO 12: FOR x=0 TO 31 2060 PRINT AT y,x;" ": REM esp 2070 NEXT x: NEXT y 2080 INK 0 2090 PLOT 0,72: DRAW 255,0: LET i=4 2100 FOR p=39 TO 0 STEP -2 2110 PLOT 130*SIN (p/30),p: DRAW i,0: LET i=i+2 2120 NEXT p 2130 RETURN 2500 REM castillo 2510 LET x1=10: LET x2=21: LET y1=10: LET y2=16: LET lad=400: GOSUB 3000: REM bloque frontal 2520 LET x1=8: LET x2=10: LET y1=6: LET y2=11: LET lad=100: GOSUB 3000: REM bloque torre izda. 2530 LET x1=21: LET x2=23: LET y1=6: LET y2=11: LET lad=100: GOSUB 3000: REM bloque torre dcha. 2540 LET xs=75: LET ys=159: GOSUB 3500: REM segmento tejado torre izda. 2550 LET xs=179: LET ys=159: GOSUB 3500: REM segmento tejado torre dcha. 2560 FOR r=88 TO 103 2570 PLOT 88,r: DRAW 79,0 2580 NEXT r 2590 FOR b=12 TO 20 STEP 2: PRINT AT 11,b;"8": NEXT b: REM (8) 2600 LET x=68: LET y=102: GOSUB 4000 2610 LET x=76: LET y=88: GOSUB 4000 2620 LET x=182: LET y=102: GOSUB 4000 2630 LET x=174: LET y=88: GOSUB 4000 2640 LET x=96: LET y=56: GOSUB 4000 2650 LET x=157: LET y=56: GOSUB 4000 2660 PRINT AT 15,15;"88";AT 16,15;"88": REM (8),(8);(8),(8) 2670 RETURN 3000 REM bloque 3010 FOR y=y2 TO y1 STEP -1: FOR x=x1 TO x2 3020 PAPER 2: PRINT AT y,x;" ": REM espacio 3030 NEXT x: NEXT y 3040 LET x1=x1*8: LET x2=x2*8: LET y1=y1*8: LET y2=y2*8 3050 FOR y=y2 TO y1 STEP -2 3060 INK 0: PLOT x1,168-y: DRAW (x2-x1)+7,0 3070 NEXT y 3080 FOR m=1 TO lad 3090 LET a=INT (RND*(x2-x1+7)+x1): LET b=168-INT (RND*(y2-y1)+y1): PLOT a,b 3100 NEXT m 3110 RETURN 3500 REM segmento 3510 LET r=39: INK 3 3520 FOR t=160 TO 200 3530 LET a=t*PI/180: LET x=r*SIN (a): LET y=r*COS (a) 3540 PLOT xs,ys: DRAW x,y 3550 NEXT t 3560 RETURN 4000 REM ventana 4010 INK 0: FOR w=y TO y+10: PLOT x,w: DRAW 3,0 4011 NEXT w 4020 RETURN 4500 REM arboles 4510 PAPER 4: INK 0: OVER 1 4520 FOR t=1 TO 30 4530 LET x=INT (RND*29): LET y=13+INT (RND*7) 4540 IF (x>8 AND x<22 AND y<17) THEN GOTO 4530 4550 PRINT AT y,x;"AB";AT y+1,x;"CD";AT y+2,x;"EF": REM (A),(B);(C),(D);(E),(F) 4560 NEXT t 4570 OVER 0: PAUSE 200 4580 RETURN 5000 REM oscuridad 5010 POKE 23761,1: RANDOMIZE USR 23760 5020 PAPER 0: INK 6: PRINT AT 3,3;"G";AT 4,3;"H": REM (G);(H) 5030 PAUSE 100 5040 RETURN 5500 REM fuego 5510 DIM f(2,6): INK 6: PAPER 0 5520 FOR g=1 TO 6 5530 READ y,x: LET f(1,g)=y: LET f(2,g)=x 5540 NEXT g 5550 LET n=0 5560 FOR t=1 TO 6 5570 LET n=n+1 5580 FOR d=1 TO 30 5590 FOR j=1 TO n 5600 PRINT AT f(1,j),f(2,j);"T": REM (t) 5610 PRINT AT f(1,j),f(2,j);" ": REM espacio 5620 NEXT j: NEXT d: NEXT t 5630 FOR y=2 TO 11: FOR x=7 TO 23 5640 PRINT AT y,x;" ": REM espacio 5650 NEXT x: NEXT y 5660 RETURN 6000 REM calavera 6010 INK 0 6020 FOR s=270 TO 450 STEP 2 6030 LET a=s*PI/180: LET x=40*SIN (a) 6040 LET y=40*COS (a): PLOT 127,135: DRAW x,y 6050 NEXT s: LET x1=87: LET x2=80 6060 FOR y=135 TO 87 STEP -1 6070 PLOT x1,y: DRAW x2,0: LET x1=x1+.3: LET x2=x2-.6 6080 NEXT y 6090 PAPER 0: PRINT AT 6,13;" ";AT 6,17;" ": REM esp,esp;esp,esp 6100 PRINT AT 8,15;" ": REM espacio,espacio 6110 PRINT AT 10,14;" ": REM espacio,espacio,espacio 6120 FOR y=81 TO 169 STEP 8: FOR x=87 TO 167 STEP 8 6130 IF POINT (x,y)=1 THEN PAPER 0: INK INT (RND*(7))+1: FLASH 1: PRINT AT 22-y/8,x/8-1;"6": FLASH 0: REM (6) 6140 NEXT x: NEXT y 6150 RETURN 6500 REM inicializar 6510 FOR a=65368 TO 65527: READ d: POKE a,d: NEXT a 6520 REM introducir codigo maquina en la sentencia REM de la linea 5 6530 FOR i=23760 TO 23777: READ d: POKE i,d: NEXT i 6540 RETURN 7000 DATA 16,129,73,40,16,80,48,9: REM arbol (A) 7010 DATA 128,32,74,134,164,68,204,30: REM arbol (B) 7020 DATA 5,38,178,27,31,15,3,3: REM arbol (C) 7030 DATA 48,96,192,192,194,244,152,128: REM arbol (D) 7040 DATA 1,1,1,3,3,7,31,51: REM arbol (E) 7050 DATA 192,192,192,128,128,128,224,252: REM arbol (F) 7060 DATA 8,16,48,32,96,96,233,224: REM luna (G) 7070 DATA 240,254,127,113,48,54,31,6: REM luna (H) 7080 DATA 1,2,6,230,19,255,17,226: REM bruja (I) 7090 DATA 0,0,0,128,240,128,0,0: REM bruja (J) 7100 DATA 0,0,1,57,4,31,4,56: REM bruja (K) 7110 DATA 64,128,128,160,252,224,64,128: REM bruja(L) 7120 DATA 0,0,0,14,1,7,1,14: REM bruja (M) 7130 DATA 16,32,96,104,63,248,16,32: REM bruja (N) 7140 DATA 0,0,0,3,0,1,0,3: REM bruja (O) 7150 DATA 4,8,24,154,79,254,68,136: REM bruja (P) 7160 DATA 0,0,0,0,192,0,0,0: REM bruja (Q) 7170 DATA 0,0,0,66,36,24,24,0: REM murcielago (R) 7180 DATA 0,0,0,0,0,255,24,0: REM murcielago (S) 7190 DATA 8,128,65,2,150,68,40,40: REM llamas (T) 7500 REM datos codigos maquina 7510 DATA 62,0,33,0,88,6,24,197,6,32 7520 DATA 119,35,16,252,193,16,246,201 7530 REM datos posicion ventanas 7540 DATA 10,22,8,23,14,19,14,12,10,9,8,8 ----------------------------------- NOTES ------------------------------------- substitute any " AB" character for its corresponding graphics mode UDG key at lines: 530,540,1020,1030,1040,1050,1540,2590,4550,5600, except for lines 2590 and 6130 use system UDG original listing typo: line 520 missing ":" ----------------------------------- SOURCE ------------------------------------ source original (not found) title: "write your own program" advanced graphics - haunted house genre: book publisher: aladdin books ltd. author: marcus milton year: 1985 isbn: unknown source (spanish edition) title: aprende a programar: animacion genre: book publisher: e.g. anaya author: angel garcia garcia (trans.) year: 1986 isbn: 84-7525-361-X Archive-name: listings.rand-usr.com/books/haunted_house.basic