#!/usr/bin/ruby class NumberPicker #Initialize the highest, lowest, and current numbers. #upper_bound is the initial upper bound for guessing. def initialize(upper_bound) @high = upper_bound @low = 1 @number = ((@high + @low) / 2).to_i end #Pick a number based on the current number and whether it is too high, too low, or correct. #guesses - used only for printing reasons. def pickNumber(guesses) puts "#{guesses}: Is #{@number} too high (1), too low (2), or correct (0)?" response = gets.to_i if response == 1 @high = @number @number = (@low + @number) / 2 elsif response == 2 @low = @number @number = (@high + @number) / 2 else return true end return false end end