Om du har hatt en Commodore 64, har du kanskje sett en variant av følgende spill i manualen. Målet er å gjette et tall med minst mulig forsøk, gitt litt tilbakemelding på hvor nær man gjettet.
1| #!/usr/bin/env ruby 2| class Gjett # Et lite spill 3| def initialize 4| @max = 100 5| @min = 1 6| @forsoek = 0 7| @ferdig = false 8| @fasit_svar = ((@max-@min)*rand).to_i + @min 9| end 10| def spill 11| puts "\nGjettekonkurranse!" 12| while @forsoek < 10 and not @ferdig 13| gjett( hent_svar ) 14| end 15| end 16| def gjett( svar ) 17| diff = (svar - @fasit_svar).abs 18| if diff > 25 19| print "Mye " 20| elsif diff > 15 21| print "Endel " 22| elsif diff > 0 23| print "Litt " 24| end 25| if svar > @fasit_svar 26| puts "lavere. " 27| elsif svar < @fasit_svar 28| puts "høyere. " 29| end 30| if diff == 0 31| @ferdig = true 32| puts "Du klarte det på #@forsoek forsøk!" 33| end 34| end 35| def hent_svar 36| begin 37| print "Gjett ett tall mellom #@min og #@max >: " 38| svar_streng = gets.chomp 39| if svar_streng == "slutt" 40| puts "Ha det bra!" 41| exit 42| end 43| svar = svar_streng.to_i 44| end until svar >= @min and svar <= @max 45| @forsoek += 1 46| svar 47| end 48| end 49| 50| if __FILE__ == $0 then 51| begin 52| g = Gjett.new 53| g.spill 54| print "Spille en gang til? [j/n]: " 55| svar = gets.downcase 56| end while svar[0] == "j" 57| end |