From 31d048e3f9a012ae6376ac66f10d6fe9b312e6bc Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 11:30:11 -0600 Subject: [PATCH] Modularize a bit, clean up strings a bit --- 51 Hurkle/ruby/hurkle.rb | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) 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)