From 880fac2e3f13eed89471514ad05145a909981c9b Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 08:45:52 -0600 Subject: [PATCH 01/12] Start hurkle.rb with the original BASIC code --- 51 Hurkle/ruby/hurkle.rb | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 51 Hurkle/ruby/hurkle.rb diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb new file mode 100644 index 00000000..c758091c --- /dev/null +++ b/51 Hurkle/ruby/hurkle.rb @@ -0,0 +1,51 @@ +10 PRINT TAB(33);"HURKLE" +20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" +30 PRINT:PRINT:PRINT +110 N=5 +120 G=10 +210 PRINT +220 PRINT "A HURKLE IS HIDING ON A";G;"BY";G;"GRID. HOMEBASE" +230 PRINT "ON THE GRID IS POINT 0,0 IN THE SOUTHWEST CORNER," +235 PRINT "AND ANY POINT ON THE GRID IS DESIGNATED BY A" +240 PRINT "PAIR OF WHOLE NUMBERS SEPERATED BY A COMMA. THE FIRST" +245 PRINT "NUMBER IS THE HORIZONTAL POSITION AND THE SECOND NUMBER" +246 PRINT "IS THE VERTICAL POSITION. YOU MUST TRY TO" +250 PRINT "GUESS THE HURKLE'S GRIDPOINT. YOU GET";N;"TRIES." +260 PRINT "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" +270 PRINT "DIRECTION TO GO TO LOOK FOR THE HURKLE." +280 PRINT +285 A=INT(G*RND(1)) +286 B=INT(G*RND(1)) +310 FOR K=1 TO N +320 PRINT "GUESS #";K; +330 INPUT X,Y +340 IF ABS(X-A)+ABS(Y-B)=0 THEN 500 +350 REM PRINT INFO +360 GOSUB 610 +370 PRINT +380 NEXT K +410 PRINT +420 PRINT "SORRY, THAT'S";N;"GUESSES." +430 PRINT "THE HURKLE IS AT ";A;",";B +440 PRINT +450 PRINT "LET'S PLAY AGAIN, HURKLE IS HIDING." +460 PRINT +470 GOTO 285 +500 REM +510 PRINT +520 PRINT "YOU FOUND HIM IN";K;"GUESSES!" +540 GOTO 440 +610 PRINT "GO "; +620 IF Y=B THEN 670 +630 IF Y Date: Mon, 1 Mar 2021 08:54:05 -0600 Subject: [PATCH 02/12] Line-by-line-as-literally-as-possible conversion from BASIC to Ruby Excluding the direction-finding logic. Ruby lacks a GOTO or even a way to "break" out of two loops instead of one, necessitating the use of variables and subroutines that the original program lacked. --- 51 Hurkle/ruby/hurkle.rb | 117 ++++++++++++++++++++++----------------- 1 file changed, 66 insertions(+), 51 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index c758091c..8d1840c3 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -1,51 +1,66 @@ -10 PRINT TAB(33);"HURKLE" -20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" -30 PRINT:PRINT:PRINT -110 N=5 -120 G=10 -210 PRINT -220 PRINT "A HURKLE IS HIDING ON A";G;"BY";G;"GRID. HOMEBASE" -230 PRINT "ON THE GRID IS POINT 0,0 IN THE SOUTHWEST CORNER," -235 PRINT "AND ANY POINT ON THE GRID IS DESIGNATED BY A" -240 PRINT "PAIR OF WHOLE NUMBERS SEPERATED BY A COMMA. THE FIRST" -245 PRINT "NUMBER IS THE HORIZONTAL POSITION AND THE SECOND NUMBER" -246 PRINT "IS THE VERTICAL POSITION. YOU MUST TRY TO" -250 PRINT "GUESS THE HURKLE'S GRIDPOINT. YOU GET";N;"TRIES." -260 PRINT "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" -270 PRINT "DIRECTION TO GO TO LOOK FOR THE HURKLE." -280 PRINT -285 A=INT(G*RND(1)) -286 B=INT(G*RND(1)) -310 FOR K=1 TO N -320 PRINT "GUESS #";K; -330 INPUT X,Y -340 IF ABS(X-A)+ABS(Y-B)=0 THEN 500 -350 REM PRINT INFO -360 GOSUB 610 -370 PRINT -380 NEXT K -410 PRINT -420 PRINT "SORRY, THAT'S";N;"GUESSES." -430 PRINT "THE HURKLE IS AT ";A;",";B -440 PRINT -450 PRINT "LET'S PLAY AGAIN, HURKLE IS HIDING." -460 PRINT -470 GOTO 285 -500 REM -510 PRINT -520 PRINT "YOU FOUND HIM IN";K;"GUESSES!" -540 GOTO 440 -610 PRINT "GO "; -620 IF Y=B THEN 670 -630 IF Y Date: Mon, 1 Mar 2021 10:06:08 -0600 Subject: [PATCH 03/12] Add in the direction-finding logic --- 51 Hurkle/ruby/hurkle.rb | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index 8d1840c3..e3ddd9d0 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -50,16 +50,20 @@ end def say_where_to_go(x, y) print "GO " - #620 IF Y=B THEN 670 - #630 IF Y Date: Mon, 1 Mar 2021 10:08:27 -0600 Subject: [PATCH 04/12] Tighten up direction-finding logic --- 51 Hurkle/ruby/hurkle.rb | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index e3ddd9d0..b4929906 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -50,20 +50,8 @@ end def say_where_to_go(x, y) print "GO " - if not y == $b - if not y < $b - print "SOUTH" - else - print "NORTH" - end - end - if not x == $a - if not x < $a - print "WEST" - else - print "EAST" - end - end + print y < $b ? "NORTH" : "SOUTH" unless y == $b + print x < $a ? "EAST" : "WEST" unless x == $a puts end From cc24398bdbad731e4e72a56260df7b43918aa26a Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 10:09:39 -0600 Subject: [PATCH 05/12] Correct hurkle's gender Hurkles can give birth parthenogenetically, but are nevertheless -- or at least this one is -- nongendered. No male hurkles are known to exist --- 51 Hurkle/ruby/hurkle.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index b4929906..e6a7c1c0 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -45,7 +45,7 @@ end def you_found_him(k) puts - puts "YOU FOUND HIM IN " + k.to_s + " GUESSES!" + puts "YOU FOUND IT IN " + k.to_s + " GUESSES!" end def say_where_to_go(x, y) From b7e044c9c27219fc2d00b5f6c47687a381bfcf36 Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 10:15:12 -0600 Subject: [PATCH 06/12] print_introduction --- 51 Hurkle/ruby/hurkle.rb | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index e6a7c1c0..ee9634fb 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -1,21 +1,25 @@ -puts " " * 33 + "HURKLE" -puts " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" -3.times { puts } -$n = 5 -$g = 10 -puts -puts "A HURKLE IS HIDING ON A " + $g.to_s + " BY " + $g.to_s + " 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 " + $n.to_s + " TRIES." -puts "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" -puts "DIRECTION TO GO TO LOOK FOR THE HURKLE." -puts +def print_introduction + puts " " * 33 + "HURKLE" + puts " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" + 3.times { puts } + $n = 5 + $g = 10 + puts + puts "A HURKLE IS HIDING ON A " + $g.to_s + " BY " + $g.to_s + " 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 " + $n.to_s + " TRIES." + puts "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" + puts "DIRECTION TO GO TO LOOK FOR THE HURKLE." + puts +end def main + print_introduction + loop do $a = rand($g).floor $b = rand($g).floor From f9387636a7a19c4b74115f90d48b20ae6dfb091c Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 10:17:47 -0600 Subject: [PATCH 07/12] Move more prints into functions --- 51 Hurkle/ruby/hurkle.rb | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index ee9634fb..779c9f85 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -1,4 +1,4 @@ -def print_introduction +def say_introduction puts " " * 33 + "HURKLE" puts " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3.times { puts } @@ -18,7 +18,7 @@ def print_introduction end def main - print_introduction + say_introduction loop do $a = rand($g).floor @@ -29,25 +29,19 @@ def main print "? " x, y = gets.chomp.split(",").map(&:to_i) if (x-$a).abs + (y-$b).abs == 0 - you_found_him(k) + say_success(k) found = true break end say_where_to_go(x, y) puts end - if not found - puts - puts "SORRY, THAT'S " + $n.to_s + " GUESSES." - puts "THE HURKLE IS AT " + $a.to_s + "," + $b.to_s - end - puts - puts "LET'S PLAY AGAIN, HURKLE IS HIDING." - puts + say_failure if not found + say_play_again end end -def you_found_him(k) +def say_success(k) puts puts "YOU FOUND IT IN " + k.to_s + " GUESSES!" end @@ -59,4 +53,16 @@ def say_where_to_go(x, y) puts end +def say_failure + puts + puts "SORRY, THAT'S " + $n.to_s + " GUESSES." + puts "THE HURKLE IS AT " + $a.to_s + "," + $b.to_s +end + +def say_play_again + puts + puts "LET'S PLAY AGAIN, HURKLE IS HIDING." + puts +end + main From 9d41dd2c313525b0f3b550f0ee8e9cd562d131f3 Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 10:18:12 -0600 Subject: [PATCH 08/12] Move a function around --- 51 Hurkle/ruby/hurkle.rb | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index 779c9f85..790f579d 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -1,22 +1,3 @@ -def say_introduction - puts " " * 33 + "HURKLE" - puts " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" - 3.times { puts } - $n = 5 - $g = 10 - puts - puts "A HURKLE IS HIDING ON A " + $g.to_s + " BY " + $g.to_s + " 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 " + $n.to_s + " TRIES." - puts "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" - puts "DIRECTION TO GO TO LOOK FOR THE HURKLE." - puts -end - def main say_introduction @@ -41,6 +22,25 @@ def main end end +def say_introduction + puts " " * 33 + "HURKLE" + puts " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" + 3.times { puts } + $n = 5 + $g = 10 + puts + puts "A HURKLE IS HIDING ON A " + $g.to_s + " BY " + $g.to_s + " 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 " + $n.to_s + " 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) puts puts "YOU FOUND IT IN " + k.to_s + " GUESSES!" From 7ab5cfd140e57d227b795e7b988c5ab9be0fe0d6 Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 10:20:40 -0600 Subject: [PATCH 09/12] Ruby names constants with UPPER_CASE by convention --- 51 Hurkle/ruby/hurkle.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index 790f579d..24eabf40 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -1,11 +1,14 @@ +MAX_GUESSES = 5 +GRID_SIZE = 10 + def main say_introduction loop do - $a = rand($g).floor - $b = rand($g).floor + $a = rand(GRID_SIZE).floor + $b = rand(GRID_SIZE).floor found = false - (1..$n).each do |k| + (1..MAX_GUESSES).each do |k| print "GUESS # " + k.to_s + " " print "? " x, y = gets.chomp.split(",").map(&:to_i) @@ -26,16 +29,14 @@ def say_introduction puts " " * 33 + "HURKLE" puts " " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 3.times { puts } - $n = 5 - $g = 10 puts - puts "A HURKLE IS HIDING ON A " + $g.to_s + " BY " + $g.to_s + " GRID. HOMEBASE" + puts "A HURKLE IS HIDING ON A " + GRID_SIZE.to_s + " BY " + GRID_SIZE.to_s + " 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 " + $n.to_s + " TRIES." + puts "GUESS THE HURKLE'S GRIDPOINT. YOU GET " + MAX_GUESSES.to_s + " TRIES." puts "AFTER EACH TRY, I WILL TELL YOU THE APPROXIMATE" puts "DIRECTION TO GO TO LOOK FOR THE HURKLE." puts @@ -55,7 +56,7 @@ end def say_failure puts - puts "SORRY, THAT'S " + $n.to_s + " GUESSES." + puts "SORRY, THAT'S " + MAX_GUESSES.to_s + " GUESSES." puts "THE HURKLE IS AT " + $a.to_s + "," + $b.to_s end From 6980dfda94c5f871265fca300ed4684ac1417ebd Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 11:17:00 -0600 Subject: [PATCH 10/12] Add a Point class --- 51 Hurkle/ruby/hurkle.rb | 46 ++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index 24eabf40..7a4e451b 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -1,26 +1,49 @@ MAX_GUESSES = 5 GRID_SIZE = 10 +class Point < Object + attr_accessor :x + attr_accessor :y + + def initialize(text="") + x, y = text.split(",").map(&:strip) + @x = (x || rand(GRID_SIZE).floor).to_i + @y = (y || rand(GRID_SIZE).floor).to_i + end + + def to_s + "#{@x}, #{@y}" + end + + def ==(other_point) + @x == other_point.x && @y == other_point.y + end + + def direction_to(other_point) + ( @y < other_point.y ? "NORTH" : "SOUTH" unless @y == other_point.y ).to_s + + (@x < other_point.x ? "EAST" : "WEST" unless @x == other_point.x ).to_s + end +end + def main say_introduction loop do - $a = rand(GRID_SIZE).floor - $b = rand(GRID_SIZE).floor + hurkle_point = Point.new found = false (1..MAX_GUESSES).each do |k| print "GUESS # " + k.to_s + " " print "? " - x, y = gets.chomp.split(",").map(&:to_i) - if (x-$a).abs + (y-$b).abs == 0 + guess_point = Point.new(gets.chomp) + if guess_point == hurkle_point say_success(k) found = true break end - say_where_to_go(x, y) + say_where_to_go(hurkle_point, guess_point) puts end - say_failure if not found + say_failure(hurkle_point) if not found say_play_again end end @@ -47,17 +70,14 @@ def say_success(k) puts "YOU FOUND IT IN " + k.to_s + " GUESSES!" end -def say_where_to_go(x, y) - print "GO " - print y < $b ? "NORTH" : "SOUTH" unless y == $b - print x < $a ? "EAST" : "WEST" unless x == $a - puts +def say_where_to_go(hurkle_point, guess_point) + puts "GO #{guess_point.direction_to(hurkle_point)}" end -def say_failure +def say_failure(hurkle_point) puts puts "SORRY, THAT'S " + MAX_GUESSES.to_s + " GUESSES." - puts "THE HURKLE IS AT " + $a.to_s + "," + $b.to_s + puts "THE HURKLE IS AT #{hurkle_point}" end def say_play_again From 31d048e3f9a012ae6376ac66f10d6fe9b312e6bc Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 11:30:11 -0600 Subject: [PATCH 11/12] 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) From bd8c2dac481a6a2d86a488daf35fb2c869214cde Mon Sep 17 00:00:00 2001 From: Jamie McCarthy Date: Mon, 1 Mar 2021 11:33:52 -0600 Subject: [PATCH 12/12] Simplify --- 51 Hurkle/ruby/hurkle.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/51 Hurkle/ruby/hurkle.rb b/51 Hurkle/ruby/hurkle.rb index e8b30eee..39898805 100644 --- a/51 Hurkle/ruby/hurkle.rb +++ b/51 Hurkle/ruby/hurkle.rb @@ -63,10 +63,11 @@ def guess(hurkle_point, guess_num) guess_point = Point.new(gets.chomp) if guess_point == hurkle_point say_success(guess_num) - return true + true + else + say_where_to_go(hurkle_point, guess_point) + false end - say_where_to_go(hurkle_point, guess_point) - false end def say_success(guess_num)