RosettaCodeData/Task/Guess-the-number/QBasic/guess-the-number-2.basic
2023-07-01 13:44:08 -04:00

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