Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
66
Task/24-game/BBC-BASIC/24-game.basic
Normal file
66
Task/24-game/BBC-BASIC/24-game.basic
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
REM Choose four random digits (1-9) with repetitions allowed:
|
||||
DIM digits%(4), check%(4)
|
||||
FOR choice% = 1 TO 4
|
||||
digits%(choice%) = RND(9)
|
||||
NEXT choice%
|
||||
|
||||
REM Prompt the player:
|
||||
PRINT "Enter an equation (using all of, and only, the single digits ";
|
||||
FOR index% = 1 TO 4
|
||||
PRINT ; digits%(index%) ;
|
||||
IF index%<>4 PRINT " " ;
|
||||
NEXT
|
||||
PRINT ")"
|
||||
PRINT "which evaluates to exactly 24. Only multiplication (*), division (/),"
|
||||
PRINT "addition (+) & subtraction (-) operations and parentheses are allowed:"
|
||||
INPUT "24 = " equation$
|
||||
|
||||
REPEAT
|
||||
|
||||
REM Check that the correct digits are used:
|
||||
check%() = 0
|
||||
FOR char% = 1 TO LEN(equation$)
|
||||
digit% = INSTR("0123456789", MID$(equation$, char%, 1)) - 1
|
||||
IF digit% >= 0 THEN
|
||||
FOR index% = 1 TO 4
|
||||
IF digit% = digits%(index%) THEN
|
||||
IF NOT check%(index%) check%(index%) = TRUE : EXIT FOR
|
||||
ENDIF
|
||||
NEXT index%
|
||||
IF index% > 4 THEN
|
||||
PRINT "Sorry, you used the illegal digit "; digit%
|
||||
EXIT REPEAT
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT char%
|
||||
|
||||
FOR index% = 1 TO 4
|
||||
IF NOT check%(index%) THEN
|
||||
PRINT "Sorry, you failed to use the digit " ; digits%(index%)
|
||||
EXIT REPEAT
|
||||
ENDIF
|
||||
NEXT index%
|
||||
|
||||
REM Check that no pairs of digits are used:
|
||||
FOR pair% = 11 TO 99
|
||||
IF INSTR(equation$, STR$(pair%)) THEN
|
||||
PRINT "Sorry, you may not use a pair of digits "; pair%
|
||||
EXIT REPEAT
|
||||
ENDIF
|
||||
NEXT pair%
|
||||
|
||||
REM Check whether the equation evaluates to 24:
|
||||
ON ERROR LOCAL PRINT "Sorry, there was an error in the equation" : EXIT REPEAT
|
||||
result = EVAL(equation$)
|
||||
RESTORE ERROR
|
||||
IF result = 24 THEN
|
||||
PRINT "Congratulations, you succeeded in the task!"
|
||||
ELSE
|
||||
PRINT "Sorry, your equation evaluated to " ; result " rather than 24!"
|
||||
ENDIF
|
||||
|
||||
UNTIL TRUE
|
||||
|
||||
INPUT '"Play again", answer$
|
||||
IF LEFT$(answer$,1) = "y" OR LEFT$(answer$,1) = "Y" THEN CLS : RUN
|
||||
QUIT
|
||||
Loading…
Add table
Add a link
Reference in a new issue