diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index 7a4e451b..e8b30eee 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -31,21 +31,14 @@ def main loop do hurkle_point = Point.new found = false - (1..MAX_GUESSES).each do |k| - print "GUESS # " + k.to_s + " " - print "? " - guess_point = Point.new(gets.chomp) - if guess_point == hurkle_point - say_success(k) - found = true - break - end - say_where_to_go(hurkle_point, guess_point) - puts + (1..MAX_GUESSES).each do |guess_num| + found = guess(hurkle_point, guess_num) + break if found end say_failure(hurkle_point) if not found say_play_again end + end def say_introduction @@ -53,25 +46,37 @@ def say_introduction puts " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3.times { puts } puts - puts "A HURKLE IS HIDING ON A " + GRID_SIZE.to_s + " BY " + GRID_SIZE.to_s + " GRID. HOMEBASE" + puts "A HURKLE IS HIDING ON A #{GRID_SIZE} BY #{GRID_SIZE} GRID. HOMEBASE" puts "ON THE GRID IS POINT 0,0 IN THE SOUTHWEST CORNER," puts "AND ANY POINT ON THE GRID IS DESIGNATED BY A" puts "PAIR OF WHOLE NUMBERS SEPERATED BY A COMMA. THE FIRST" puts "NUMBER IS THE HORIZONTAL POSITION AND THE SECOND NUMBER" puts "IS THE VERTICAL POSITION. YOU MUST TRY TO" - puts "GUESS THE HURKLE'S GRIDPOINT. YOU GET " + MAX_GUESSES.to_s + " TRIES." + puts "GUESS THE HURKLE'S GRIDPOINT. YOU GET #{MAX_GUESSES} TRIES." puts "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" puts "DIRECTION TO GO TO LOOK FOR THE HURKLE." puts end -def say_success(k) +def guess(hurkle_point, guess_num) + print "GUESS # #{guess_num} ? " + guess_point = Point.new(gets.chomp) + if guess_point == hurkle_point + say_success(guess_num) + return true + end + say_where_to_go(hurkle_point, guess_point) + false +end + +def say_success(guess_num) puts - puts "YOU FOUND IT IN " + k.to_s + " GUESSES!" + puts "YOU FOUND IT IN #{guess_num} GUESSES!" end def say_where_to_go(hurkle_point, guess_point) puts "GO #{guess_point.direction_to(hurkle_point)}" + puts end def say_failure(hurkle_point)