10 BORDER 4 INK 0 FLASH 0 OVER 0 INVERSE 0 BRIGHT 0 LET njug=2 LET mj=0 LET pin=2 INPUT ; 20 FOR n=0 TO 21 PRINT PAPER 4+(1 AND n<14);AT n,0;" " NEXT n GO SUB 510 30 PRINT PAPER 3;AT 1,6;"-DRAGO-"; PAPER 8;AT 0,18;"p s-Senalar";AT 1,17;"q+w 0-Borr.";AT 2,18;"l a-Acabar";AT 18,21;"Tirada: ";AT 19,1;"MUEVE : Jugador" 40 PAPER 8 BRIGHT 8 INK 7 FOR n=1 TO 10 LET p=INT (RND*32) PLOT 0,175-p DRAW p,p,PI/2 NEXT n INK 0 50 DIM p(37,3) GO SUB 510 60 PRINT AT 4,8;"==MENU==";AT 6,4;"J-Jugar";AT 8,4;"N-Numero de jugadores=";njug;AT 10,4;"M-Modo de juego=";("NORMAL" AND mj=0);("INVERSO" AND mj=1);" ";AT 12,4;"P-Puntos iniciales=";pin;" ";AT 14,4;"R-Reglas" 70 LET i$=INKEY$ IF i$="" THEN GO TO 70 80 IF i$ ="n" THEN LET njug=1+(njug AND njug<9) 90 IF i$ ="m" THEN LET mj=1-mj 100 IF i$ ="p" THEN LET pin=1+(pin AND pin<12) 110 IF i$ ="j" THEN GO TO 180 120 IF i$ ="r" THEN GO TO 140 130 GO TO 60 140 GO SUB 510 RESTORE 150 PRINT AT 3,9;"# REGLAS #" FOR n=1 TO 3 READ a$ FOR m=1 TO 14 PRINT AT m+3,3;a$(1+(m-1)*26 TO m*26) NEXT m PRINT AT 21,0;"PULSE UNA TECLA" PAUSE 0 PAUSE 0 NEXT n PRINT AT 21,0;" " GO TO 50 150 DATA "El drago es un juego de inteligencia. Comenzamos conun numero inicial de pun- tos sobre el tablero. Los jugadores mueven por turno,un movimiento consiste entrazar una linea que una un punto con otro o consi-go mismo.Sobre la linea sedibuja otro nuevo punto. Hay que tener en cuenta estas limitaciones: 1.- Las lineas no pueden cortarse entre si. " 160 DATA " 2.- Por cada punto podranpasar un maximo de tres lineas. Los jugadores trazan cur-vas por turno. En el modo de juego normal gana el ultimo jugador que puede mo-ver y en el inverso gana el primero que no puede hacerlo. Para jugar primero elegimos los puntos, juga-dores y el modo de juego. Para hacer un movimiento primero elegimos el punto con ENTER y con ESPACIO co-" 170 DATA "con ENTER y con ESPACE co-menzamos a dibujar la li- nea . Las teclas de movi- miento aparecen en panta- lla. Cuando un jugador no puede mover terminamos la partida con~a~.Con ~0~ bo-rramos la linea punto a punto. Cuando la linea esta borrada entera podemos elegir otro punto. Si una linea es demasiado larga deberemos borrarla y dibu-jar otra mas corta. " 180 GO SUB 510 LET actp=pin LET tir=0 LET tirmax=3*pin-1 RESTORE 520 FOR n=1 TO pin READ a,b LET p(n,1)=a LET p(n,2)=b FOR m=-1 TO 1 PLOT a-1,b+m DRAW 2,0 NEXT m NEXT n 190 FOR n=1 TO njug LET tir=tir+1 PRINT AT 18,28;tir;" ";AT 19,17;n;" " 200 FOR k=1 TO actp 210 IF p(k,3)>2 THEN NEXT k GO TO 200 220 OVER 1 FOR t=1 TO 2 FOR s=-1 TO 1 PLOT p(k,1)-1,p(k,2)+s DRAW 2,0 NEXT s NEXT t OVER 0 230 IF INKEY$="" THEN GO TO 220 240 IF INKEY$=" " THEN GO TO 260 250 NEXT k GO TO 200 260 DIM s(300,2) LET x=p(k,1) LET y=p(k,2) LET p(k,3)=p(k,3)+1 270 FOR m=1 TO 300 280 LET ax=0 LET ay=0 IF IN 64510=190 AND x>25 THEN LET ax=-2 290 IF IN 64510=189 AND x<230 THEN LET ax=2 300 IF IN 57342=190 AND y<150 THEN LET ay=2 310 IF IN 49150=189 AND y>33 THEN LET ay=-2 320 IF ABS ax+ABS ay<>0 THEN GO TO 380 330 IF INKEY$="s" THEN OVER 1 CIRCLE x,y,4 CIRCLE x,y,4 OVER 0 GO TO 280 340 IF INKEY$="0" AND m>2 THEN OVER 1 PLOT x,y PLOT (x+s(m-2,1))/2,(y+s(m-2,2))/2 LET m=m-1 LET x=s(m-1,1) LET y=s(m-1,2) OVER 0 GO TO 280 350 IF INKEY$="a" THEN GO TO 480 360 IF INKEY$="0" AND m<=2 THEN PLOT OVER 1;s(1,1),s(1,2) LET p(k,3)=p(k,3)-1 GO TO 200 370 GO TO 280 380 IF ABS ax+ABS ay=4 AND (x/4=INT (x/4) AND y/4=INT ( y/4)) THEN LET ay=0 390 IF POINT (x+ax,y+ay)=1 THEN GO TO 410 400 PLOT x+ax/2,y+ay/2 LET x=x+ax LET y=y+ay PLOT x,y LET s(m,1)=x LET s(m,2)=y NEXT m PRINT AT 20,2;"LINEA DEMASIADO LARGA" OVER 1 PLOT x-ax/2,y-ay/2 PLOT x,y BEEP .1,RND*40 OVER 0 LET m=m-1 LET x=x-ax LET y=y-ay GO TO 280 410 FOR t=1 TO actp 420 IF p(t,1)=x+ax AND p(t,2)=y+ay AND p(t,3)<3 THEN LET p(t,3)=p(t,3)+1 GO TO 440 430 NEXT t GO TO 280 440 IF tir>=tirmax THEN GO TO 480 450 LET actp=actp+1 LET p(actp,1)=s(m/2,1) LET p(actp,2)=s(m/2,2) LET p(actp,3)=2 460 FOR t=1 TO 2 FOR s=-1 TO 1 PLOT p(actp,1)-1,p(actp,2)+s DRAW 2,0 NEXT s NEXT t 470 NEXT n GO TO 190 480 PRINT AT 20,2;"FINAL DE LA PARTIDA " BEEP .5,9 BEEP .6,-10 PAUSE 0 IF mj=1 THEN PRINT AT 20,2;"GANADOR EL JUGADOR ";n PAUSE 0 GO TO 50 490 LET n=n-1 IF n=0 THEN LET n=njug 500 PRINT AT 20,2;"GANADOR EL JUGADOR ";n PAUSE 0 GO TO 50 510 FOR n=3 TO 17 PRINT PAPER 7; BRIGHT 1;AT n,3;" " NEXT n RETURN 520 DATA 92,92,162,92,92,68,162,68,92,116,162,116,200,112,56,112,200,80,56,80,128,56,128,136