mirror of
https://github.com/rfivet/BCG101.git
synced 2024-12-23 10:37:15 -05:00
80 lines
2.0 KiB
QBasic
80 lines
2.0 KiB
QBasic
|
1 DIMN1(6,6),K1(18),A1(16),X(2),Y(2)
|
||
|
3 DATA 3,102,103,120,130,121,112,111,12
|
||
|
4 DATA 21,30,1020,1030,1011,1021,1003,1002,1012
|
||
|
10 FORM=1TO18\READK1(M)\NEXTM
|
||
|
13 DATA-1,0,1,0,0,-1,0,1,-1,-1,1,-1,-1,1,1,1
|
||
|
14 FORO1=1TO16\READA1(O1)\NEXTO1
|
||
|
20 GOTO500
|
||
|
50 FORJ=1TO5
|
||
|
51 FORK=1TO5
|
||
|
55 IFN1(J,K)<=99THEN60\GOSUB200
|
||
|
60 NEXTK
|
||
|
65 NEXTJ
|
||
|
90 LETK=0\LETM2=0\LETM3=0
|
||
|
99 FORJ=0TO6\PRINT
|
||
|
100 FORK=0TO6
|
||
|
101 IFJ=0THEN102\IFJ<>6THEN105
|
||
|
102 IFK<>6THEN103\PRINT0;\GOTO125
|
||
|
103 PRINTK;\GOTO120
|
||
|
105 IFK=0THEN106\IFK<>6THEN110
|
||
|
106 IFJ<>6THEN107\PRINT0\GOTO126
|
||
|
107 PRINTJ;\GOTO120
|
||
|
110 GOSUB300
|
||
|
120 NEXTK
|
||
|
125 NEXTJ
|
||
|
126 RETURN
|
||
|
200 LETB=1\IFN1(J,K)<=999THEN220\LETB=10
|
||
|
220 FORO1=1TO15STEP2
|
||
|
230 LETN1(J+A1(O1),K+A1(O1+1))=N1(J+A1(O1),K+A1(O1+1))+B
|
||
|
231 NEXTO1
|
||
|
239 RETURN
|
||
|
300 IFN1(J,K)<3THEN399
|
||
|
305 FORO1=1TO18
|
||
|
310 IFN1(J,K)=K1(O1)THEN350
|
||
|
315 NEXTO1
|
||
|
320 GOTO399
|
||
|
350 IFO1>9THEN360
|
||
|
351 LETN1(J,K)=100\LETM2=M2+1\PRINT" * ";
|
||
|
355 RETURN
|
||
|
360 LETN1(J,K)=1000\LETM3=M3+1\PRINT" # ";
|
||
|
365 RETURN
|
||
|
399 LETN1(J,K)=0\PRINT" ";\RETURN
|
||
|
500 PRINTTAB(10);"U.B LIFE GAME"
|
||
|
505 LETM2=0\LETM3=0
|
||
|
510 FORJ=1TO5
|
||
|
511 FORK=1TO5
|
||
|
515 LETN1(J,K)=0
|
||
|
516 NEXTK
|
||
|
517 NEXTJ
|
||
|
519 FORB=1TO2\LETP1=3\IFB<>2THEN520\LETP1=30
|
||
|
520 PRINT"PLAYER";B;"3 LIVE PIECES"
|
||
|
535 FORK1=1TO3\GOSUB700
|
||
|
540 LETN1(X(B),Y(B))=P1\NEXTK1
|
||
|
542 NEXTB
|
||
|
559 GOSUB90
|
||
|
560 PRINT\GOSUB50
|
||
|
570 IFM2<>0THEN571\IFM3=0THEN574
|
||
|
571 IFM3<>0THEN572\LETB=1\GOTO575
|
||
|
572 IFM2<>0THEN573\LETB=2\GOTO575
|
||
|
573 GOTO580
|
||
|
574 PRINT\PRINT"A DRAW"\STOP
|
||
|
575 PRINT\PRINT"PLAYER";B;"IS THE WINNER"\STOP
|
||
|
580 FORB=1TO2\PRINT\PRINT"PLAYER";B;\GOSUB700
|
||
|
581 IFB=99THEN560
|
||
|
582 NEXTB
|
||
|
586 LETN1(X(1),Y(1))=100\LETN1(X(2),Y(2))=1000
|
||
|
596 GOTO 560
|
||
|
700 PRINT"X,Y"\PRINT"#####";CHR$(13);\INPUTY(B),X(B)
|
||
|
705 IFX(B)>5THEN706\IFX(B)>0THEN708
|
||
|
706 GOTO750
|
||
|
708 IFY(B)>5THEN710\IFY(B)>0THEN 715
|
||
|
710 GOTO750
|
||
|
715 IFN1(X(B),Y(B))<>0THEN750
|
||
|
720 IFB<>1THEN725\RETURN
|
||
|
725 IFX(1)<>X(2)THEN730\IFY(1)=Y(2)THEN 740
|
||
|
730 RETURN
|
||
|
740 PRINT "SAME COORD. SET TO 0"
|
||
|
741 LETN1(X(B)+1,Y(B)+1)=0\LETB=99\RETURN
|
||
|
750 PRINT"ILLEGAL COORDS. RETYPE"\GOTO700
|
||
|
999 END
|