mirror of
https://github.com/rfivet/BCG101.git
synced 2024-11-18 02:17:00 -05:00
125 lines
2.9 KiB
QBasic
125 lines
2.9 KiB
QBasic
1 LET Y1=0
|
|
10 LET M1=0
|
|
20 DIM M(20),Y(20)
|
|
30 PRINT" THIS IS A TWO PERSON GAME CALLED 'EVEN WINS.'"
|
|
40 PRINT"TO PLAY THE GAME, THE PLAYERS NEED 27 MARBLES OR"
|
|
50 PRINT"OTHER OBJECTS ON A TABLE."
|
|
60 PRINT
|
|
70 PRINT
|
|
80 PRINT" THE 2 PLAYERS ALTERNATE TURNS, WITH EACH PLAYER"
|
|
90 PRINT"REMOVING FROM 1 TO 4 MARBLES ON EACH MOVE. THE GAME"
|
|
100 PRINT"ENDS WHEN THERE ARE NO MARBLES LEFT, AND THE WINNER"
|
|
110 PRINT"IS THE ONE WITH AN EVEN NUMBER OF MARBLES."
|
|
120 PRINT
|
|
130 PRINT
|
|
140 PRINT" THE ONLY RULES ARE THAT (1) YOU MUST ALTERNATE TURNS,"
|
|
150 PRINT"(2) YOU MUST TAKE BETWEEN 1 AND 4 MARBLES EACH TURN,"
|
|
160 PRINT"AND (3) YOU CANNOT SKIP A TURN."
|
|
170 PRINT
|
|
180 PRINT
|
|
190 PRINT
|
|
200 PRINT" TYPE A 1 IF YOU WANT TO GO FIRST, AND TYPE"
|
|
210 PRINT"A 0 IF YOU WANT ME TO GO FIRST"
|
|
220 INPUT C
|
|
230 IF C=0 THEN 250
|
|
240 GOTO 1060
|
|
250 LETT=27
|
|
260 LET M=2
|
|
270 PRINT"TOTAL =";T
|
|
280 LET M1=M1+M
|
|
290 LET T=T-M
|
|
300 PRINT"I PICK UP";M;"MARBLES."
|
|
310 IF T=0 THEN 880
|
|
320 PRINT"TOTAL=";T
|
|
330 PRINT""
|
|
340 PRINT" AND WHAT IS YOUR NEXT MOVE, MY TOTAL IS";M1
|
|
350 INPUT Y
|
|
360 PRINT""
|
|
370 IF Y<1 THEN 1160
|
|
380 IF Y>4 THEN 1160
|
|
390 IF Y<=T THEN 430
|
|
400 PRINT" YOU HAVE TRIED TO TAKE MORE MARBLES THAN THERE ARE"
|
|
410 PRINT"LEFT. TRY AGAIN."
|
|
420 GOTO 350
|
|
430 LET Y1=Y1+Y
|
|
440 LET T=T-Y
|
|
450 IF T=0 THEN 880
|
|
460 PRINT"TOTAL =";T
|
|
470 PRINT""
|
|
480 PRINT" YOUR TOTAL IS ";Y1
|
|
490 IF T<.5 THEN 880
|
|
500 LET R=T-6*INT(T/6)
|
|
510 IF INT(Y1/2)=Y1/2 THEN 700
|
|
520 IF T<4.2 THEN 580
|
|
530 IF R>3.4 THEN 620
|
|
540 LET M=R+1
|
|
550 LET M1=M1+M
|
|
560 LET T=T-M
|
|
570 GO TO 300
|
|
580 LET M=T
|
|
590 LET T=T-M
|
|
600 GO TO 830
|
|
610 REM 250 IS WHERE I WIN.
|
|
620 IF R<4.7 THEN 660
|
|
630 IF R>3.5 THEN 660
|
|
640 LET M=1
|
|
650 GOTO 670
|
|
660 LET M=4
|
|
670 LET T=T-M
|
|
680 LET M1=M1+M
|
|
690 GOTO 300
|
|
700 REM I AM READY TO ENCODE THE STRAT FOR WHEN OPP TOT IS EVEN.
|
|
710 IF R<1.5 THEN 1020
|
|
720 IF R>5.3 THEN 1020
|
|
730 LET M=R-1
|
|
740 LET M1=M1+M
|
|
750 LET T=T-M
|
|
760 IF T<.2 THEN 790
|
|
770 REM IS # ZERO HERE
|
|
780 GOTO 300
|
|
790 REM IS = ZERO HERE
|
|
800 PRINT"I PICK UP";M;" MARBLES."
|
|
810 PRINT""
|
|
820 GOTO 880
|
|
830 REM THIS IS WHERE I WIN
|
|
840 PRINT "I PICK UP";M;" MARBLES."
|
|
850 PRINT""
|
|
860 PRINT "TOTAL = 0"
|
|
870 LET M1=M1+M
|
|
880 PRINT " THAT IS ALL OF THE MARBLES."
|
|
890 PRINT""
|
|
900 PRINT" MY TOTAL IS";M1;" YOUR TOTAL IS";Y1
|
|
910 PRINT""
|
|
920 IF INT(M1/2)=M1/2 THEN 950
|
|
930 PRINT" YOU WON. DO YOU WANT TO PLAY"
|
|
940 GOTO 960
|
|
950 PRINT" I WON. DO YOU WANT TO PLAY"
|
|
960 PRINT"AGAIN? TYPE 1 FOR YES AND 0 FOR NO."
|
|
970 INPUT A1
|
|
980 IF A1=0 THEN 1030
|
|
990 LET M1=0
|
|
1000 LET Y1=0
|
|
1010 GOTO 200
|
|
1020 GOTO 640
|
|
1030 PRINT""
|
|
1040 PRINT" OK. SEE YOU LATER."
|
|
1050 GOTO 1230
|
|
1060 LET T = 27
|
|
1070 PRINT
|
|
1080 PRINT
|
|
1090 PRINT
|
|
1100 PRINT"TOTAL =";T
|
|
1110 PRINT
|
|
1120 PRINT
|
|
1130 PRINT" WHAT IS YOUR FIRST MOVE?"
|
|
1140 INPUT Y
|
|
1150 GOTO 360
|
|
1160 PRINT
|
|
1170 PRINT" THE NUMBER OF MARBLES YOU TAKE MUST BE A POSITIVE"
|
|
1180 PRINT"INTEGER BETWEEN 1 AND 4."
|
|
1190 PRINT
|
|
1200 PRINT" WHAT IS YOUR NEXT MOVE?"
|
|
1210 PRINT
|
|
1220 GOTO 350
|
|
1230 END
|