Short n // We'll just do 1..10 to get the idea void local fn BuildInterface Short i window 1, @"Guess the number", ( 0, 0, 340, 120 ) for i = 1 to 10 button i,,, fn StringWithFormat(@"%d", i), ( 26 * i, 60, 40, 22 ) ButtonSetBordered( i, No ) next button 11,,, @"Quit", ( 38, 10, 95, 32 ) button 12,,, @"Again", ( 200, 10, 95, 32 ) textlabel 13, @"Guess the number:", ( 112, 85, 200, 22 ) textlabel 14,, ( 158, 30, 100, 22 ) // Hints here filemenu 1 : menu 1, -1, No // Build but disable File menu editmenu 2 : menu 2, -1, No // Build but disable Edit menu end fn void local fn newGame CFRange r = fn RangeMake( 1, 10 ) ControlRangeSetEnabled( r, Yes ) // Enable number buttobns button 11, No // Disable Quit button button 12, No // Disable Again button n = rnd( 10 ) // Choose a random number textlabel 14, @"🔴" // Not found yet end fn void local fn DoDialog( evt as Long, tag as Long ) CFRange r = fn RangeMake( 1, 10 ) select evt case _btnClick button tag, No select tag case 11 : end // Quit case 12 : fn newGame // Again case n : textlabel 14, @"🟢" // Found ControlRangeSetEnabled( r, No ) button 11, Yes button 12, Yes case < n : textlabel 14, @"➡️" case > n : textlabel 14, @"⬅️" end select case _windowWillClose : end end select end fn fn buildInterface fn newGame on dialog fn DoDialog handleevents