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/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 = gets.to_i 39| end until svar >= @min and svar <= @max 40| @forsoek += 1 41| svar 42| end 43| end 44| 45| # La oss unngå å bruke de kryptiske globale variabelnavnene. 46| require 'English' 47| if __FILE__ == $PROGRAM_NAME then 48| begin 49| g = Gjett.new 50| g.spill 51| print "Spille en gang til? [j/n]: " 52| svar = gets.downcase 53| end while svar[0] == ?j 54| end |