home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
RUN Flagazine: Run 1
/
run1.zip
/
YINYANG.BAS
< prev
next >
Wrap
BASIC Source File
|
2014-09-03
|
3KB
|
39 lines
100 REM YING/YANG-SCHUIFPUZZEL GWBASIC CGA (C) W. VERSLOOT - HEERJANSDAM
110 DATA 50,18,250,18,50,18,50,183,50,183,250,183,250,18,250,183
120 DATA 38,8,262,8,38,8,38,193,262,8,262,193,262,193,38,193
130 DATA 90,18,90,183,130,18,130,183,170,18,170,183,210,18,210,183
140 DATA 50,51,250,51,50,84,250,84,50,117,250,117,50,150,250,150
150 T$=CHR$(0):K$=T$+CHR$(80):I$=T$+CHR$(72):J$=T$+CHR$(75):L$=T$+CHR$(77)
160 KEY OFF:CLS:SCREEN 1:FOR I=1 TO 8:READ A,B,C,D:LINE(A,B)-(C,D):NEXT
170 PAINT(53,23),2,3:CIRCLE(150,99),74:CIRCLE(150,68),37,,1.571,4.712:H=19
180 CIRCLE(150,130),37,,4.712,1.571:CIRCLE(150,130),10:CIRCLE(150,68),10
190 PAINT(150,130),5,3:PAINT(190,68),5,3:PAINT(168,158),5,3:DIM S$(10000)
200 FOR I=1 TO 8:READ A,B,C,D:LINE(A,B)-(C,D):NEXT:PAINT(43,15),1,3:D=1:Y=0
210 DIM X(100):GET(211,19)-(249,50),X:PUT(211,19),X:RANDOMIZE -TIMER:G=211
220 GOSUB 420:WHILE INKEY$="":WEND:GOTO 240
230 BEEP:FOR V=1 TO 5000:NEXT V
240 FOR I=0 TO 250:Z=INT(RND*4):IF Z=1 THEN Z=5 ELSE IF Z=2 THEN Z=8
250 B$=T$+CHR$(72+Z):P=0:GOTO 290
260 B$=INKEY$:IF B$="" THEN 260 ELSE T=T+1
270 IF T=10 THEN BEEP:LOCATE 1,8:PRINT "Toets <o> voor oplossing";
280 IF B$="q" THEN CLS:END ELSE IF B$="r" THEN RUN ELSE IF B$="o" THEN 360
290 IF (B$=I$ AND H=151) OR (B$=K$ AND H=19) THEN 350
300 IF (B$=L$ AND G=51) OR (B$=J$ AND G=211) THEN 350
310 IF B$=I$ THEN GET(G,H+33)-(G+38,H+64),X:PUT(G,H+33),X:PUT(G,H),X:H=H+33: IF D=1 THEN S$(Y)=K$:Y=Y+1
320 IF B$=K$ THEN GET(G,H-33)-(G+38,H-2),X:PUT(G,H-33),X:PUT(G,H),X:H=H-33: IF D=1 THEN S$(Y)=I$:Y=Y+1
330 IF B$=L$ THEN GET(G-40,H)-(G-2,H+31),X:PUT(G-40,H),X:PUT(G,H),X:G=G-40: IF D=1 THEN S$(Y)=J$:Y=Y+1
340 IF B$=J$ THEN GET(G+40,H)-(G+78,H+31),X:PUT(G+40,H),X:PUT(G,H),X:G=G+40: IF D=1 THEN S$(Y)=L$:Y=Y+1
350 IF P=2 THEN RETURN ELSE IF P=1 THEN GOTO 260 ELSE NEXT I:P=1:GOTO 260
360 GOSUB 420::D=0:P=2:FOR I=Y-1 TO 0 STEP -1:FOR V=1 TO 750:NEXT V
370 IF I>1 THEN IF (S$(I)=K$) AND (S$(I-1)=I$) THEN I=I-2:GOTO 370
380 IF I>1 THEN IF (S$(I)=I$) AND (S$(I-1)=K$) THEN I=I-2:GOTO 370
390 IF I>1 THEN IF (S$(I)=J$) AND (S$(I-1)=L$) THEN I=I-2:GOTO 370
400 IF I>1 THEN IF (S$(I)=L$) AND (S$(I-1)=J$) THEN I=I-2:GOTO 370
410 B$=S$(I):GOSUB 310:NEXT I:Y=0:P=0:D=1:B$="":GOTO 230
420 LOCATE 1,8:PRINT SPACE$(25);:LOCATE 1,15:PRINT "Yin en Yang":T=0:RETURN
430 REM /* 32/.2994,2838,3090,2976,3916,4014,3891,3717,3803,4113
440 REM /*/....4080,2399,1592,3633,1675,2088,4405,3860,2412,2405
450 REM /*/....5598,5550,5537,5590,3975,3570,3258,3258,3260,3260
460 REM /*/....3024,4606
470 REM Checksum...............: 114387