load compiler function genRandomNumbers( amount ) rtn = [] for i in [ 0 : amount ]: rtn += random( 1, 9 ) return( rtn ) end function getAnswer( exp ) ic = ICompiler() ic.compileAll(exp) return( ic.result ) end function validInput( str ) for i in [ 0 : str.len() ] if str[i] notin ' ()[]0123456789-+/*' > 'INVALID Character = ', str[i] return( false ) end end return( true ) end printl(' The 24 Game Given any four digits in the range 1 to 9, which may have repetitions, Using just the +, -, *, and / operators; and the possible use of brackets, (), show how to make an answer of 24. An answer of "q" will quit the game. An answer of "!" will generate a new set of four digits. Otherwise you are repeatedly asked for an expression until it evaluates to 24 Note: you cannot form multiple digit numbers from the supplied digits, so an answer of 12+12 when given 1, 2, 2, and 1 would not be allowed. ') num = genRandomNumbers( 4 ) while( true ) >> "Here are the numbers to choose from: " map({ a => print(a, " ") }, num) > exp = input() switch exp case "q", "Q" exit() case "!" > 'Generating new numbers list' num = genRandomNumbers( 4 ) default if not validInput( exp ): continue answer = getAnswer( exp ) if answer == 24 > "By George you GOT IT! Your expression equals 24" else > "Ahh Sorry, So Sorry your answer of ", answer, " does not equal 24." end end end