-- defining the range of the number to be guessed property minLimit : 1 property maxLimit : 100 on run -- define the number to be guessed set numberToGuess to (random number from minLimit to maxLimit) -- prepare a variable to store the user's answer set guessedNumber to missing value -- prepare a variable for feedback set tip to "" -- start a loop (will be exited by using "exit repeat" after a correct guess) repeat -- ask the user for his/her guess, the variable tip contains text after first guess only set usersChoice to (text returned of (display dialog "Guess the number between " & minLimit & " and " & maxLimit & " inclusive" & return & tip default answer "" buttons {"Check"} default button "Check")) -- try to convert the given answer to an integer and compare it the number to be guessed try set guessedNumber to usersChoice as integer if guessedNumber is greater than maxLimit or guessedNumber is less than minLimit then -- the user guessed a number outside the given range set tip to "(Tipp: Enter a number between " & minLimit & " and " & maxLimit & ")" else if guessedNumber is less than numberToGuess then -- the user guessed a number less than the correct number set tip to "(Tipp: The number is greater than " & guessedNumber & ")" else if guessedNumber is greater than numberToGuess then -- the user guessed a number greater than the correct number set tip to "(Tipp: The number is less than " & guessedNumber & ")" else if guessedNumber is equal to numberToGuess then -- the user guessed the correct number and gets informed display dialog "Well guessed! The number was " & numberToGuess buttons {"OK"} default button "OK" -- exit the loop (quits this application) exit repeat end if on error -- something went wrong, remind the user to enter a numeric value set tip to "(Tipp: Enter a number between " & minLimit & " and " & maxLimit & ")" end try end repeat end run