10 REM ***************************************************************** 20 REM GRANHER 30 REM (C) 2020 - MARIANO CHIAVERANO 50 REM Participante Basic puro Bytemaniacos 60 REM ***************************************************************** 80 POKE 23570,6 90 CLS 95 GO SUB 5000 100 GO SUB 850 105 GO SUB 2000 110 REM ************************ Comienzo: armado de pantalla******************************* 115 RANDOMIZE 0 120 CLS : PAPER 4: BORDER 0: INK 0: CLS 130 FOR a=0 TO 17: PRINT AT a,0; PAPER 0; INK 2;"\p": PRINT AT a,31; PAPER 0; INK 2;"\p" 140 FOR b=0 TO 31: PRINT AT 0,b; PAPER 0; INK 2;"\k": PRINT AT 17,b; PAPER 0; INK 2;"\k" 150 NEXT a: NEXT b 160 FOR c=0 TO 31: FOR d=18 TO 21: PRINT AT d,c; PAPER 0;"\::": NEXT d: NEXT c 170 GO SUB 950 180 PLOT 15,130: DRAW 0,-17: DRAW 37,0: DRAW 0,17: DRAW -37,0 190 PLOT 14,129: DRAW 20,28: PLOT 33,154: DRAW 19,-25 200 PLOT 30,120: DRAW 0,-7: DRAW 8,0: DRAW 0,7: DRAW -8,0 210 CIRCLE 32,139,4 220 PRINT AT 8,2;"\e\e";AT 8,5;"\e\o": PRINT AT 9,6; INK 3; PAPER 0;"\i"; PAPER 4; INK 0;AT 10,6;"\o";AT 11,6;"\o";AT 12,6;"\o";AT 13,6;"\o";AT 14,1;"\n\n\n\n\n\n" 230 PRINT AT x,y;"\d" 240 GO TO 310 250 REM Sucesos 270 LET jue=INT (RND*5) 280 IF jue=4 AND huevos<=20 THEN LET huevos=huevos+10: GO SUB 950 290 IF jue=3 AND lena<=20 THEN LET lena=lena+20: GO SUB 950 300 IF jue=2 AND ladron=0 AND oro>=20 THEN BEEP .02,3: BEEP .01,1: LET ladron=1: LET lax=INT (2+10*RND): LET lay=INT (7+15*RND): PRINT AT lax,lay; INK 2;"\d" 310 REM personaje 320 LET yy=y: LET xx=x 325 IF ladron=1 AND lax=x AND lay=y THEN LET ladron=0: LET puntos=puntos+5: BEEP .1,5 330 IF INKEY$="q" AND x>1 THEN LET x=x-1: PRINT AT x,y;"\d": GO SUB 990: GO SUB 428 340 IF INKEY$="a" AND x<16 THEN LET x=x+1: PRINT AT x,y;"\d": GO SUB 990: GO SUB 428 350 IF INKEY$="o" AND y>7 THEN LET y=y-1: PRINT AT x,y;"\s": GO SUB 990 360 IF INKEY$="p" AND y<24 THEN LET y=y+1: PRINT AT x,y;"\t": GO SUB 990 365 IF INKEY$="7" THEN GO TO 90 370 IF INKEY$="h" AND ATTR (x,y+1)=40 AND bolsa<10 THEN GO SUB 570 380 IF INKEY$="m" AND ATTR (x,y+1)=56 AND bolsa<10 THEN GO SUB 580 390 IF INKEY$="d" AND ATTR (x,y-1)=3 THEN GO SUB 1200: GO SUB 615 400 IF INKEY$="e" THEN GO SUB 660 410 IF INKEY$="1" THEN GO SUB 590 420 IF INKEY$="2" THEN GO SUB 600 423 LET contador=contador+1 424 IF contador>250 THEN LET dia=dia+1: LET alimento=alimento-5: LET contador=0: GO SUB 428: GO SUB 900 425 GO TO 315 428 REM juego 430 IF alimento<0 THEN LET alimento=0: GO SUB 900 440 IF madera<0 THEN LET madera=0: GO SUB 900 460 REM juego 470 IF dia=10 AND oro>=500 THEN GO SUB 710 480 IF dia=10 AND oro<500 THEN GO SUB 730 510 IF ladron=1 AND contador>=200 AND oro>=20 THEN LET oro=oro-20: LET contador=250: GO SUB 800: GO SUB 900 515 REM cambios 520 LET suceso=INT (RND*7): IF suceso>1 THEN GO TO 250 550 RETURN 560 REM recolectar 570 IF huevos>0 THEN LET bolsa=bolsa+10: LET huevos=huevos-10: LET i$="Alimento": GO SUB 950: PAUSE 0: BEEP .01,1: RETURN 580 IF lena>0 THEN LET bolsa=bolsa+10: LET lena=lena-10: LET i$="Madera": PAUSE 0: GO SUB 950: BEEP .01,1: RETURN 590 IF alimento>10 THEN LET alimento=alimento-20: LET oro=oro+50: LET puntos=puntos+30: GO SUB 760: GO TO 610 600 IF madera>10 THEN LET madera=madera-10: LET oro=oro+20: LET puntos=puntos+20: GO SUB 760 610 GO SUB 900: RETURN 615 IF bolsa<>10 THEN BEEP .01,5: RETURN 620 IF i$="Alimento" THEN LET alimento=alimento+bolsa: LET bolsa=0: PAUSE 1 630 IF i$="Madera" THEN LET madera=madera+bolsa: LET bolsa=0 640 BEEP .01,2: BEEP .01,3: BEEP .01,4: GO SUB 950 650 RETURN 660 IF emple>=2 THEN PRINT AT 11,3;"\u": LET emple=2: BEEP .001,1: GO TO 700 670 IF alimento>=50 AND madera>=20 THEN LET alimento=alimento-50: LET madera=madera-20: LET emple=emple+1: BEEP .01,6: BEEP .01,7: GO SUB 900 680 IF emple=1 THEN PRINT AT 10,3;"\a" 690 IF emple=2 THEN PRINT AT 10,5;"\a" 700 RETURN 710 REM juego ganado 711 CLS : PAPER 4 712 PLOT 15,130: DRAW 0,-17: DRAW 37,0: DRAW 0,17: DRAW -37,0: PLOT 14,129: DRAW 20,28: PLOT 33,154: DRAW 19,-25: PLOT 30,120: DRAW 0,-7: DRAW 8,0: DRAW 0,7: DRAW -8,0: CIRCLE 32,139,4 715 PRINT AT 6,15;"\a": PRINT AT 7,15;"\b \m \m \n\n\n\n\n\n\n\n\n\n\n\n\n": PRINT AT 8,0;"\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''": PRINT AT 11,0;"\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.." 720 PRINT AT 9,0; INK 1;" Bien! Has salvado la granja! ": LET puntos=puntos+oro: PRINT AT 10,5; INK 1;" TUS PUNTOS:";puntos: GO SUB 820 722 PRINT AT 21,1;"Juega otra vez? S/N": INPUT g$ 725 IF g$="s" OR g$="S" THEN GO SUB 850: GO TO 110 728 IF g$="n" OR g$="N" THEN GO TO 100 730 REM juego perdido 740 CLS : BEEP 01,5: BEEP 01,3: BEEP 01,0: PAPER 0: BORDER 0: INK 7: CLS : LET puntos=puntos+oro: PRINT AT 10,0; FLASH 1;"JUEGO PERDIDO - TUS PUNTOS:";puntos: GO TO 722 750 REM rutinas de sonido 760 REM oro 770 BEEP .1,55: BEEP .1,50: BEEP .1,55: RETURN 780 REM ladron 790 BEEP .1,2: BEEP 1,1: PAPER 4: RETURN 800 REM ladron roba 810 FOR a=0 TO 3: BEEP .003,PEEK a/10: BORDER PEEK a/100: NEXT a: BORDER 0: RETURN 820 REM gano 830 FOR n=0 TO 15: BORDER INT (RND*5): BEEP .1,10: BEEP .09,n: NEXT n 840 FOR f=10 TO 0 STEP -1: BEEP .09,f: BEEP .1,10: NEXT f: FOR l=0 TO 7: BEEP .1,20: BEEP .1,24: NEXT l: RETURN 850 REM variables 860 LET madera=0: LET lena=10: LET huevos=10: LET oro=0: LET x=10: LET y=13: LET i$="Bolsa vacia" 870 LET alimento=10: LET lax=0: LET lay=0 880 LET dia=1: LET jue=0: LET ladron=0: LET contador=0: LET bolsa=0: LET suceso=01: LET emple=0: LET xx=1: LET yy=1: LET puntos=0: LET n$="d" 890 RETURN 900 REM impresion variables 910 PRINT AT 19,26; FLASH 1;" ": PRINT AT 19,11; FLASH 1;" ": PRINT AT 21,7; PAPER 0;" ": FLASH 0: PRINT INK 7; PAPER 0;AT 17,10;" \h DIA: ";dia: PRINT INK 7; PAPER 0;AT 19,2;"\{i4}\c\{i7} MADERA:";madera;;: PRINT INK 7; PAPER 0;AT 19,15;"\{i2}\g\{i7} ALIMENTO:";alimento;;: PRINT INK 7; PAPER 0;AT 21,2;"\{i6}\f\{i7} ORO:";oro;;;AT 21,15;"U BOLSA: ";bolsa;; 920 PRINT INK 0;AT 1,25;"\o\r\m\{i7} \m\{i0} ";AT 2,25;"\o";AT 3,25;"\o\m \{i7}\m\{i0} \m";AT 4,26;"\n\n\n\n\n": PRINT INK 0; PAPER 5;AT 4,25;"\l" 930 PRINT INK 2; BRIGHT 0;AT 13,25;"\e\c \c\c";AT 14,25;"\c\e \c\c";AT 15,25;"\c\c\c";AT 16,25;" \c \c\c";AT 12,26;"\c\c \c";AT 10,25;" \c\c \c": PRINT AT 12,25; PAPER 7;"\l" 940 RETURN 950 REM variables parciales 960 PRINT AT 5,25; FLASH 1;" ": PRINT INK 1; FLASH 0;AT 5,25;;huevos: PRINT AT 11,25; FLASH 1;" ": PRINT INK 1; FLASH 0;AT 11,25;;lena 970 GO SUB 900 980 RETURN 990 REM borrado personaje 1000 IF x<>xx OR y<>yy THEN PRINT INK 7;AT xx,yy;" ": RETURN 1200 REM empleados producen 1300 IF emple=0 AND bolsa=10 THEN LET oro=oro+10: GO SUB 900: RETURN 1530 IF emple=1 AND bolsa=10 THEN LET oro=oro+30: GO SUB 900 1540 IF emple=2 AND bolsa=10 THEN LET oro=oro+40: LET puntos=puntos+10: GO SUB 900 1600 RETURN 2000 REM menu 2010 CLS : PAPER 0: BORDER 0: INK 7: CLS 2015 GO SUB 2700 2040 PRINT AT 6,7;"\{i1}0\{i7} EMPEZAR JUEGO";AT 8,7;"\{i4}1\{i7} CONTROLES";AT 10,7;"\{i2}2\{i7} NIVEL";AT 12,7;"3 CREDITOS": INPUT d 2050 IF d=0 THEN GO TO 110 2052 IF d=3 THEN GO TO 3000 2055 IF d=1 THEN GO SUB 2500 2060 IF d=2 THEN INPUT "Nivel? D (Difcil), F (Facil)";n$ 2070 IF n$="D" OR n$="d" THEN LET oro=0: GO TO 2040 2080 IF n$="F" OR n$="f" THEN LET oro=50: GO TO 2040 2100 GO TO 2040 2400 REM controles 2500 CLS : GO SUB 2700: PRINT AT 6,7; INK 7;"H: Tomar alimento";AT 8,7;"M: Tomar Madera";AT 10,7;"D: vaciar bolsa";AT 12,7;"QAOP: Movimiento";AT 14,7;"E: Contratar emp.";AT 16,5;"\{i1}Para + lea el manual\{i7}" 2510 PAUSE 0: GO TO 2000 2700 REM armado menu 2900 INK 7: FOR z=2 TO 28: PRINT AT 3,z;"\n": PRINT AT 17,z;"\n": BEEP .01,z: NEXT z 2910 PRINT AT 1,10; INK 6;"**GRANHER**" 2950 FOR j=4 TO 16: PRINT AT j,2;"\o": PRINT AT j,28;"\o": BEEP .01,j: NEXT j: PRINT AT 13,21;"\a";AT 14,21;"\b";AT 12,20;"\{i5}\j \j\{i7}": PLOT 150,51: DRAW 20,8: DRAW 25,-10: PLOT 148,50: DRAW -20,-3: INK 6: CIRCLE 187,74,4 2960 RETURN 3000 REM creditos 3010 BORDER 0: PAPER 0: INK 7: CLS 3020 FOR t=15 TO 8 STEP -1: CLS : PRINT AT t,6;"JUEGO PRODUCIDO POR:": PRINT AT t+1,5;"MARIANO E.M CHIAVERANO": PRINT AT t+2,9;"CON BASINC 1.7": PRINT AT t+3,13;"\* 2020": PRINT AT t+5,5;"http://czarg.speccy.org": PAUSE 10 3040 BEEP .1,t+10: NEXT t 3050 BEEP .1,20: BEEP .1,25: PAUSE 0: GO TO 2000 4900 REM Historia 5000 PAPER 0: BORDER 0: INK 7: CLS 5010 FOR u=10 TO 2 STEP -1 5020 PRINT AT u,0; INK 6;"\:'\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\':" 5030 PRINT AT u+1,0;" ": BEEP .01,u: NEXT u 5040 FOR g=10 TO 19 5050 PRINT AT g,0; INK 6;"\:.\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.:" 5060 PRINT AT g-1,0;" " 5070 BEEP .01,g: NEXT g 5080 PRINT AT 21,4; INK 7; PAPER 2;"CONTROLES EN EL MANUAL" 5090 PRINT AT 4,2; INK 7;"Her es nuestra heroina";AT 5,2;"encargada de una granja";AT 6,2;"que ha acumulado deudas";AT 7,2;"por haber sido mal traba-";AT 8,2;"jada por su dueno anterior.";AT 9,2;"Her tendra que juntar 500";AT 10,2;"monedas de oro para pagar";AT 11,2;"en el decimo dia.";AT 12,2;"Para eso debera trabajar";AT 13,2;"la granja de forma astuta,";AT 14,2;"evitando robos,juntando";AT 15,2;"alimento,madera,comerciando";AT 16,2;"y contratando empleados en";AT 17,2;"los tiempos justos." 5100 BEEP .35,21 5110 BEEP 0.36,26 5120 BEEP 0.37,28 5130 BEEP 0.35,26 5140 BEEP 0.36,21 5150 BEEP 0.361,26 5160 BEEP 0.33,28 5170 BEEP 0.41,26 5180 BEEP 0.34,21 5190 BEEP 0.36,26 5200 BEEP 0.32,28 5210 BEEP 0.36,26 5220 BEEP 0.32,29 5230 BEEP 0.4,28 5240 BEEP 0.34,26 5250 BEEP 0.37,28 5260 BEEP 0.38,21 5270 BEEP 0.35,21 5280 BEEP 0.379,19 5290 BEEP 0.34,19 5300 BEEP 0.36,24 5310 BEEP 0.34,26 5320 BEEP 0.33,24 5330 BEEP 0.34,19 5340 BEEP 0.32,24 5350 BEEP 0.35,26 5360 BEEP 0.32,24 5370 BEEP 0.39,19 5380 BEEP 0.37,24 5390 BEEP 0.34,26 5400 BEEP 0.34,28 5410 BEEP 0.36,26 5420 BEEP 0.34,24 5430 BEEP 0.38,26 5440 BEEP 0.39,28 5450 BEEP 1.8,19 5460 PAUSE 0: RETURN