49 lines
1.1 KiB
Text
49 lines
1.1 KiB
Text
' OPTION EXPLICIT ' Remove remark for VB-DOS/PDS 7.1
|
|
'dIM
|
|
' Var
|
|
DIM n AS INTEGER, g AS INTEGER, t AS INTEGER, a AS STRING
|
|
CONST c = 10
|
|
|
|
' Functions
|
|
DECLARE FUNCTION getNumber () AS INTEGER
|
|
|
|
' Program to guess a number between 1 and 10
|
|
DO
|
|
CLS
|
|
PRINT "Program to guess a number between 1 and 10"
|
|
n = getNumber()
|
|
t = 0
|
|
DO
|
|
t = t + 1
|
|
DO
|
|
PRINT "Type a number (between 1 and " + FORMAT$(c) + "): ";
|
|
INPUT "", g
|
|
IF g < 1 OR g > c THEN BEEP
|
|
LOOP UNTIL g > 0 AND g < (c + 1)
|
|
|
|
' Compares the number
|
|
SELECT CASE g
|
|
CASE IS > n: PRINT "Try a lower number..."
|
|
CASE IS < n: PRINT "Try a higher number..."
|
|
CASE ELSE: PRINT "You got it! Attempts: " + FORMAT$(t)
|
|
END SELECT
|
|
LOOP UNTIL n = g
|
|
PRINT
|
|
PRINT "Do you want to try again? (Y/n)"
|
|
DO
|
|
a = UCASE$(INKEY$)
|
|
IF a <> "" AND a <> "Y" AND a <> "N" THEN BEEP
|
|
LOOP UNTIL a = "Y" OR a = "N"
|
|
LOOP UNTIL a = "N"
|
|
PRINT
|
|
PRINT "End of the program. Thanks for playing."
|
|
END
|
|
|
|
FUNCTION getNumber () AS INTEGER
|
|
' Generates a random number
|
|
' between 1 and the c Constant
|
|
|
|
RANDOMIZE TIMER
|
|
getNumber = INT(RND * c) + 1
|
|
|
|
END FUNCTION
|