mirror of
https://github.com/rfivet/BCG101.git
synced 2024-12-18 08:06:27 -05:00
90 lines
2.1 KiB
QBasic
90 lines
2.1 KiB
QBasic
110 PRINT "THIS PROGRAM IS A 'BATTLE OF NUMBERS'"
|
|
120 PRINT"GAME, WHERE THE COMPUTER IS YOUR OPPONENT."
|
|
130 PRINT
|
|
140 PRINT"THE GAME STARTS WITH AN ASSUMED PILE OF OBJECTS. YOU AND"
|
|
150 PRINT"YOUR OPPONENT ALTERNATLY REMOVE OBJECTS FROM THE PILE."
|
|
160 PRINT"WINNING IS DEFINED IN ADVANCE AS TAKING THE LAST OBJECT"
|
|
170 PRINT"OR NOT. YOU CAN ALSO SPECIFY SOME OTHER BEGINNING"
|
|
180 PRINT"CONDITIONS. DON'T USE ZERO, HOWEVER, IN PLAYING THE GAME."
|
|
200 PRINT
|
|
210 GOTO 330
|
|
220 FOR I=1 TO 10
|
|
230 PRINT
|
|
240 NEXT I
|
|
330 PRINT"ENTER PILE SIZE:";
|
|
340 INPUT N
|
|
350 IF N<>0 THEN 370
|
|
360 GOTO 330
|
|
370 IF N<>INT(N) THEN 220
|
|
380 IF N<1 THEN 220
|
|
390 PRINT "ENTER WIN OPTION - 1 TO TAKE LAST, 2 TO AVOID LAST: ";
|
|
400 INPUT M
|
|
410 IF M=1 THEN 430
|
|
420 IF M<>2 THEN 390
|
|
430 PRINT "ENTER MIN AND MAX: ";
|
|
440 INPUT A,B
|
|
450 IF A>B THEN 430
|
|
460 IF A<1 THEN 430
|
|
470 IF A<>INT(A) THEN 430
|
|
480 IF B<>INT(B) THEN 430
|
|
490 PRINT"ENTER START OPTION - 1 COMPUTER FIRST, 2 YOU FIRST:";
|
|
500 INPUT S
|
|
510 IF S=1 THEN 530
|
|
520 IF S<>2 THEN 490
|
|
530 LET C=A+B
|
|
540 IF S=2 THEN 570
|
|
550 GOSUB 600
|
|
560 IF W=1 THEN 220
|
|
570 GOSUB 810
|
|
580 IF W=1 THEN 220
|
|
590 GOTO 550
|
|
600 LET Q=N
|
|
610 IF M=1 THEN 630
|
|
620 LET Q=Q-1
|
|
630 IF M=1 THEN 680
|
|
640 IF N>A THEN 720
|
|
650 LET W=1
|
|
660 PRINT"COMPUTER TAKES";N;"AND LOSES."
|
|
670 RETURN
|
|
680 IF N>B THEN 720
|
|
690 LET W=1
|
|
700 PRINT "COMPUTER TAKES";N;"AND WINS."
|
|
710 RETURN
|
|
720 LET P=Q-C*INT(Q/C)
|
|
730 IF P>=A THEN 750
|
|
740 LET P=A
|
|
750 IF P<=B THEN 770
|
|
760 LET P=B
|
|
770 LET N=N-P
|
|
780 PRINT"COMPUTER TAKES";P;"AND LEAVES";N
|
|
790 LET W=0
|
|
800 RETURN
|
|
810 PRINT "YOUR MOVE: ";
|
|
820 INPUT P
|
|
830 IF P<>0 THEN 870
|
|
840 PRINT "I TOLD YOU NOT TO USE ZERO...COMPUTER WINS BY FORFEIT."
|
|
850 LET W=1
|
|
860 RETURN
|
|
870 IF P<>INT(P) THEN 920
|
|
880 IF P>=A THEN 910
|
|
890 IF P=N THEN 960
|
|
900 GOTO 920
|
|
910 IF P<=B THEN 940
|
|
920 PRINT "ILLEGAL MOVE, REENTER IT: ";
|
|
930 GOTO 820
|
|
940 LET N=N-P
|
|
950 IF N<>0 THEN 1030
|
|
960 IF M=1 THEN 1000
|
|
970 PRINT"TOUGH LUCK, YOU LOSE."
|
|
980 LET W=1
|
|
990 RETURN
|
|
1000 PRINT"CONGRATULATIONS, YOU WIN."
|
|
1010 LET W=1
|
|
1020 RETURN
|
|
1030 IF N>=0 THEN 1060
|
|
1040 LET N=N+P
|
|
1050 GOTO 920
|
|
1060 LET W=0
|
|
1070 RETURN
|
|
1080 END
|