From e182cac8ec4609051aeb52826e8a63cc634ed9e3 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 14:28:45 -0700 Subject: [PATCH 01/41] create main.rb --- main.rb | 1 + 1 file changed, 1 insertion(+) create mode 100644 main.rb diff --git a/main.rb b/main.rb new file mode 100644 index 0000000..5987efe --- /dev/null +++ b/main.rb @@ -0,0 +1 @@ +require 'artii' From f908353678ab21ead74d6d8f63c7c9fc06faaa7c Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 14:29:09 -0700 Subject: [PATCH 02/41] create random word class --- random_word.rb | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 random_word.rb diff --git a/random_word.rb b/random_word.rb new file mode 100644 index 0000000..9b89537 --- /dev/null +++ b/random_word.rb @@ -0,0 +1,16 @@ +class RandomWord + def initialize() + word_arr = ["envelope", "cat", "dragon", "coffee", "water", "pencil"] + @word = word_arr[rand(word_arr.length)] + @length = @word.length + end + + def writes_underscore() + underscore = "_ " * @length + return underscore + end + +end + +penny = RandomWord.new +puts penny.writes_underscore From 8f66ff9eaa9f1e3443c37cb0bb6c4041736d9efe Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 14:55:45 -0700 Subject: [PATCH 03/41] update main.rb to include new classes --- main.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/main.rb b/main.rb index 5987efe..9b97757 100644 --- a/main.rb +++ b/main.rb @@ -1 +1,10 @@ require 'artii' +require_relative 'user_input' +require_relative 'random_word' + +penny = RandomWord.new +charming = UserInput.new +print penny.writes_underscore +print penny.word + +charming.check_letter(penny) From 1f9582198fe35a980a5e32c79cdeb6b8da359f89 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 14:56:13 -0700 Subject: [PATCH 04/41] updates --- random_word.rb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/random_word.rb b/random_word.rb index 9b89537..3d37022 100644 --- a/random_word.rb +++ b/random_word.rb @@ -1,16 +1,18 @@ class RandomWord + attr_reader :word def initialize() word_arr = ["envelope", "cat", "dragon", "coffee", "water", "pencil"] - @word = word_arr[rand(word_arr.length)] + @word = word_arr[rand(word_arr.length)].split('') @length = @word.length end - def writes_underscore() + def writes_underscore underscore = "_ " * @length - return underscore + return underscore.split(' ') end -end + def reprint + + end -penny = RandomWord.new -puts penny.writes_underscore +end From 60a2b67b3b76e866aaca8589b3755dc84679dd6c Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 14:56:42 -0700 Subject: [PATCH 05/41] creates user_input.rb --- user_input.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 user_input.rb diff --git a/user_input.rb b/user_input.rb new file mode 100644 index 0000000..e1170d6 --- /dev/null +++ b/user_input.rb @@ -0,0 +1,20 @@ +class UserInput + def initialize + @current_letter = gets.chomp.upcase + @wrong_letters = [] + @right_letters = [] + end + + def check_letter(class_rw) + if class_rw.word.include?(@current_letter) + + # puts ":)" + return + else + # puts ":(" + # puts class_rw.word + return + end + + end +end From 72397dd1691a04e5da25098c34b76e9bb2d05a82 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:03:15 -0700 Subject: [PATCH 06/41] fix check letter method --- user_input.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/user_input.rb b/user_input.rb index e1170d6..b91b471 100644 --- a/user_input.rb +++ b/user_input.rb @@ -1,18 +1,18 @@ class UserInput def initialize - @current_letter = gets.chomp.upcase + @current_letter = gets.chomp.downcase @wrong_letters = [] @right_letters = [] end def check_letter(class_rw) if class_rw.word.include?(@current_letter) - - # puts ":)" + @right_letters << @current_letter + print @right_letters return else - # puts ":(" - # puts class_rw.word + @wrong_letters << @current_letter + print @wrong_letters return end From 9c0c18c90685c01b0e77c518f09f688f15428e86 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:04:58 -0700 Subject: [PATCH 07/41] add a to each word --- random_word.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/random_word.rb b/random_word.rb index 3d37022..2bce656 100644 --- a/random_word.rb +++ b/random_word.rb @@ -1,7 +1,7 @@ class RandomWord attr_reader :word def initialize() - word_arr = ["envelope", "cat", "dragon", "coffee", "water", "pencil"] + word_arr = ["envelopea", "cat", "dragon", "coffeea", "water", "pencila"] @word = word_arr[rand(word_arr.length)].split('') @length = @word.length end From e06caca4e7e8768ab3b8af8db034be22007e9822 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:19:25 -0700 Subject: [PATCH 08/41] test new methods --- main.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main.rb b/main.rb index 9b97757..525209f 100644 --- a/main.rb +++ b/main.rb @@ -4,7 +4,10 @@ penny = RandomWord.new charming = UserInput.new -print penny.writes_underscore +# print penny.writes_underscore print penny.word +print penny.underscore charming.check_letter(penny) + +penny.reprint(charming) From 34fe2d06981512313cd20189d38ec97abbb8b187 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:20:01 -0700 Subject: [PATCH 09/41] add reprint method --- random_word.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/random_word.rb b/random_word.rb index 2bce656..1fb182b 100644 --- a/random_word.rb +++ b/random_word.rb @@ -1,17 +1,21 @@ class RandomWord - attr_reader :word + attr_reader :word, :underscore def initialize() word_arr = ["envelopea", "cat", "dragon", "coffeea", "water", "pencila"] @word = word_arr[rand(word_arr.length)].split('') @length = @word.length + @underscore = ("_ " * @length).split(' ') end + # + # def writes_underscore + # underscore = "_ " * @length + # @underscore = underscore.split(' ') + # end - def writes_underscore - underscore = "_ " * @length - return underscore.split(' ') - end - - def reprint + def reprint(user_input) + i = @word.index(user_input.current_letter) + @underscore[i] = user_input.current_letter + print @underscore end From 9365f0af4d9e91766cb164b3ae88431cbb22be54 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:20:22 -0700 Subject: [PATCH 10/41] update check letter method --- user_input.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/user_input.rb b/user_input.rb index b91b471..eff1cd5 100644 --- a/user_input.rb +++ b/user_input.rb @@ -1,4 +1,5 @@ class UserInput + attr_reader :current_letter def initialize @current_letter = gets.chomp.downcase @wrong_letters = [] From aea978c56132a5e5242f38aa85ba3625936d62d4 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:23:35 -0700 Subject: [PATCH 11/41] add comments to reprint methods --- random_word.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/random_word.rb b/random_word.rb index 1fb182b..b9122e8 100644 --- a/random_word.rb +++ b/random_word.rb @@ -13,7 +13,9 @@ def initialize() # end def reprint(user_input) + # find index of letter of random word i = @word.index(user_input.current_letter) + # replace underscore with right letter @underscore[i] = user_input.current_letter print @underscore From 7b5649ef44c16bb683d8e927b6ffc0f7ecba0a0f Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:37:32 -0700 Subject: [PATCH 12/41] test new methods --- main.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/main.rb b/main.rb index 525209f..0c64c81 100644 --- a/main.rb +++ b/main.rb @@ -3,11 +3,13 @@ require_relative 'random_word' penny = RandomWord.new -charming = UserInput.new +user = UserInput.new # print penny.writes_underscore print penny.word print penny.underscore -charming.check_letter(penny) - -penny.reprint(charming) +user.check_letter(penny, user) +print penny.underscore +user.get_next_letter +user.check_letter(penny, user) +# penny.rewrite_underscore(user) From 78de96a7573d82cc968ffdcfb8e5a28408ecb674 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:38:47 -0700 Subject: [PATCH 13/41] update rewrite_undercore method --- random_word.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/random_word.rb b/random_word.rb index b9122e8..bfb5d38 100644 --- a/random_word.rb +++ b/random_word.rb @@ -12,12 +12,12 @@ def initialize() # @underscore = underscore.split(' ') # end - def reprint(user_input) + def rewrite_underscore(user_input) # find index of letter of random word i = @word.index(user_input.current_letter) # replace underscore with right letter @underscore[i] = user_input.current_letter - print @underscore + # print @underscore end From 158d3cf83c280a425739a3ed6a3a4a4e6470146a Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 15:39:13 -0700 Subject: [PATCH 14/41] add get_next_letter method --- user_input.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/user_input.rb b/user_input.rb index eff1cd5..82c0018 100644 --- a/user_input.rb +++ b/user_input.rb @@ -6,9 +6,10 @@ def initialize @right_letters = [] end - def check_letter(class_rw) + def check_letter(class_rw, user_input) if class_rw.word.include?(@current_letter) @right_letters << @current_letter + class_rw.rewrite_underscore(user_input) print @right_letters return else @@ -16,6 +17,9 @@ def check_letter(class_rw) print @wrong_letters return end + end + def get_next_letter + @current_letter = gets.chomp.downcase end end From 2076699e05994c7a50608bbb5940d55791cb6a3a Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:11:51 -0700 Subject: [PATCH 15/41] add logic/loop to run game --- main.rb | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/main.rb b/main.rb index 0c64c81..347d0bb 100644 --- a/main.rb +++ b/main.rb @@ -5,11 +5,27 @@ penny = RandomWord.new user = UserInput.new # print penny.writes_underscore -print penny.word -print penny.underscore - -user.check_letter(penny, user) -print penny.underscore -user.get_next_letter -user.check_letter(penny, user) -# penny.rewrite_underscore(user) +puts "random word array : #{penny.word}" +# print penny.underscore + +# user.check_letter(penny, user) +# user.get_next_letter +# user.check_letter(penny, user) +# user.get_next_letter + +until penny.underscore == penny.word + puts ">> " # for testing + user.check_letter(penny, user) + # if penny.underscore == penny.word + # return + # end + # user.get_next_letter +end + + + + + + + +#penny.rewrite_underscore(user) From 3cbcf12fc55f3a69b70e8f603c4dfbb7fe5cf6d8 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:14:18 -0700 Subject: [PATCH 16/41] add test to rewrite_underscore --- random_word.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/random_word.rb b/random_word.rb index bfb5d38..243eb91 100644 --- a/random_word.rb +++ b/random_word.rb @@ -1,5 +1,6 @@ class RandomWord attr_reader :word, :underscore + def initialize() word_arr = ["envelopea", "cat", "dragon", "coffeea", "water", "pencila"] @word = word_arr[rand(word_arr.length)].split('') @@ -17,7 +18,7 @@ def rewrite_underscore(user_input) i = @word.index(user_input.current_letter) # replace underscore with right letter @underscore[i] = user_input.current_letter - # print @underscore + print @underscore end From 08e1f79e21786bf3485530241ef1bff1a01398bc Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:15:01 -0700 Subject: [PATCH 17/41] move gets.chomp to method, not initialize. --- user_input.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/user_input.rb b/user_input.rb index 82c0018..3bc7d24 100644 --- a/user_input.rb +++ b/user_input.rb @@ -1,14 +1,17 @@ class UserInput attr_reader :current_letter def initialize - @current_letter = gets.chomp.downcase + @current_letter = "" @wrong_letters = [] @right_letters = [] end def check_letter(class_rw, user_input) + @current_letter = gets.chomp.downcase + # if random word array includes @current_letter if class_rw.word.include?(@current_letter) @right_letters << @current_letter + # replace underscore at that index with user_input(@current_letter) class_rw.rewrite_underscore(user_input) print @right_letters return From 1e39f6d15acea694fa63eb277b2c62d94ee7d56c Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:31:24 -0700 Subject: [PATCH 18/41] modify --- random_word.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/random_word.rb b/random_word.rb index 243eb91..9b9c093 100644 --- a/random_word.rb +++ b/random_word.rb @@ -7,11 +7,7 @@ def initialize() @length = @word.length @underscore = ("_ " * @length).split(' ') end - # - # def writes_underscore - # underscore = "_ " * @length - # @underscore = underscore.split(' ') - # end + def rewrite_underscore(user_input) # find index of letter of random word From 5ad2522add5a8aca9bfce57f9c0d23f3d49c60e2 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:31:55 -0700 Subject: [PATCH 19/41] create, add birthday cake ascii art --- ascii_art.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 ascii_art.rb diff --git a/ascii_art.rb b/ascii_art.rb new file mode 100644 index 0000000..f0b8a1f --- /dev/null +++ b/ascii_art.rb @@ -0,0 +1,27 @@ +class AsciiArt + attr_reader :body, :candle_light, :candle_body + def initialize + @body = [ +" @@@@@@@@@ + {~@~@~@~} +@@@@@@@@@@@@@ +{~@ HAPPY @~} +{ BIRTHDAY } +@@@@@@@@@@@@@" +] + @candle_light = [" `````"] + @candle_body = [" |||||"] #don't move + + + end + + def change_candles + + end +end + +test1 = AsciiArt.new + +puts test1.candle_light +puts test1.candle_body +puts test1.body From 2cce1f52cf281ad201503ada6ed0070fbacffa6b Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:45:16 -0700 Subject: [PATCH 20/41] add take_away_candle method (like a boss) --- ascii_art.rb | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/ascii_art.rb b/ascii_art.rb index f0b8a1f..04156f6 100644 --- a/ascii_art.rb +++ b/ascii_art.rb @@ -1,27 +1,32 @@ class AsciiArt attr_reader :body, :candle_light, :candle_body + attr_writer :candle_light, :candle_body def initialize @body = [ -" @@@@@@@@@ +" ||||| + @@@@@@@@@ {~@~@~@~} @@@@@@@@@@@@@ {~@ HAPPY @~} { BIRTHDAY } @@@@@@@@@@@@@" ] - @candle_light = [" `````"] - @candle_body = [" |||||"] #don't move + # @candle_light = [" `````"] #don't move + # @candle_body = [" |||||"] #don't move + @candle_light = " `````" #don't move end def change_candles + a = @candle_light.split('') + a.pop + @candle_light = a.join + end + def take_away_candle + change_candles + puts @candle_light + puts @body end end - -test1 = AsciiArt.new - -puts test1.candle_light -puts test1.candle_body -puts test1.body From 3731abbd0386970578ce535cb2efc7d6f9de6cd3 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:53:16 -0700 Subject: [PATCH 21/41] add cake take away to game --- main.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/main.rb b/main.rb index 347d0bb..e697fc3 100644 --- a/main.rb +++ b/main.rb @@ -1,9 +1,11 @@ require 'artii' require_relative 'user_input' require_relative 'random_word' +require_relative 'ascii_art' penny = RandomWord.new user = UserInput.new +cake = AsciiArt.new # print penny.writes_underscore puts "random word array : #{penny.word}" # print penny.underscore @@ -15,7 +17,7 @@ until penny.underscore == penny.word puts ">> " # for testing - user.check_letter(penny, user) + user.check_letter(penny, user, cake) # if penny.underscore == penny.word # return # end From 152f146cbd370da00031b5be38782fc51f0a0f3f Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 16:53:53 -0700 Subject: [PATCH 22/41] add cake to check method --- user_input.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/user_input.rb b/user_input.rb index 3bc7d24..0e67ee6 100644 --- a/user_input.rb +++ b/user_input.rb @@ -1,3 +1,5 @@ + + class UserInput attr_reader :current_letter def initialize @@ -6,7 +8,7 @@ def initialize @right_letters = [] end - def check_letter(class_rw, user_input) + def check_letter(class_rw, user_input, cake) @current_letter = gets.chomp.downcase # if random word array includes @current_letter if class_rw.word.include?(@current_letter) @@ -17,6 +19,8 @@ def check_letter(class_rw, user_input) return else @wrong_letters << @current_letter + + cake.take_away_candle print @wrong_letters return end From f8be046d3f822ae96dfc8d4eeb5f0e73747a1ab3 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 20:47:36 -0700 Subject: [PATCH 23/41] add new line to underscore array --- random_word.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/random_word.rb b/random_word.rb index 9b9c093..ed50328 100644 --- a/random_word.rb +++ b/random_word.rb @@ -14,7 +14,7 @@ def rewrite_underscore(user_input) i = @word.index(user_input.current_letter) # replace underscore with right letter @underscore[i] = user_input.current_letter - print @underscore + print "#{@underscore}\n" end From a4304d1525ff42705427560d348c4ee5fb989ff3 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 20:49:57 -0700 Subject: [PATCH 24/41] colorize cake ascii --- ascii_art.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ascii_art.rb b/ascii_art.rb index 04156f6..18da784 100644 --- a/ascii_art.rb +++ b/ascii_art.rb @@ -9,7 +9,7 @@ def initialize @@@@@@@@@@@@@ {~@ HAPPY @~} { BIRTHDAY } -@@@@@@@@@@@@@" +@@@@@@@@@@@@@".colorize(:red) ] # @candle_light = [" `````"] #don't move # @candle_body = [" |||||"] #don't move @@ -26,7 +26,7 @@ def change_candles def take_away_candle change_candles - puts @candle_light + puts @candle_light.colorize(:blue) puts @body end end From 8c16a48b5a600777891a1be551d362f4b66babcc Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 20:51:14 -0700 Subject: [PATCH 25/41] comment out test code --- user_input.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_input.rb b/user_input.rb index 0e67ee6..54df1d5 100644 --- a/user_input.rb +++ b/user_input.rb @@ -15,13 +15,13 @@ def check_letter(class_rw, user_input, cake) @right_letters << @current_letter # replace underscore at that index with user_input(@current_letter) class_rw.rewrite_underscore(user_input) - print @right_letters + # print @right_letters return else @wrong_letters << @current_letter cake.take_away_candle - print @wrong_letters + # print @wrong_letters return end end From 63de9cb1d81247e98c1fa246088f72466a1ab4ac Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 21:29:11 -0700 Subject: [PATCH 26/41] add user prompts for right and wrong guesses --- user_input.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/user_input.rb b/user_input.rb index 54df1d5..8b20aa6 100644 --- a/user_input.rb +++ b/user_input.rb @@ -13,12 +13,14 @@ def check_letter(class_rw, user_input, cake) # if random word array includes @current_letter if class_rw.word.include?(@current_letter) @right_letters << @current_letter + puts "Good job, keep guessin'" # replace underscore at that index with user_input(@current_letter) class_rw.rewrite_underscore(user_input) # print @right_letters return else @wrong_letters << @current_letter + puts "WRONG!, you loss a candle" cake.take_away_candle # print @wrong_letters From 0f277cd38f7cefd644101df6bcc79ec9d3aad31c Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 21:29:52 -0700 Subject: [PATCH 27/41] edit user prompts for right and wrong guesses --- user_input.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_input.rb b/user_input.rb index 8b20aa6..66eb6ac 100644 --- a/user_input.rb +++ b/user_input.rb @@ -20,7 +20,7 @@ def check_letter(class_rw, user_input, cake) return else @wrong_letters << @current_letter - puts "WRONG!, you loss a candle" + puts "WRONG!, you loss a candle. Try Again" cake.take_away_candle # print @wrong_letters From 02c6cfc2dbd99bad41df9c320e8e1c8b3c141b72 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 21:57:17 -0700 Subject: [PATCH 28/41] add game instructions and checks for winner --- main.rb | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/main.rb b/main.rb index e697fc3..d48e94e 100644 --- a/main.rb +++ b/main.rb @@ -2,31 +2,49 @@ require_relative 'user_input' require_relative 'random_word' require_relative 'ascii_art' +require 'colorize' penny = RandomWord.new user = UserInput.new cake = AsciiArt.new # print penny.writes_underscore -puts "random word array : #{penny.word}" +# puts "random word array : #{penny.word}" # print penny.underscore # user.check_letter(penny, user) # user.get_next_letter # user.check_letter(penny, user) # user.get_next_letter +# game greeting and instructions +puts "Welcome to Word-Guess!".colorize(:light_blue) +puts "=".colorize(:light_blue) * 22 +puts "GAME INSTRUCTIONS:".colorize(:green) +puts "1.) Guess the word I'm thinking for a chance to have my Birthday Cake.".colorize(:yellow) +puts "2.) For every incorrect letter you choose, I will blow out one candle. You have 5 chances to guess.".colorize(:yellow) +puts "READY...".colorize(:red) +puts "SET...".colorize(:red) +puts "GUESS!!".colorize(:red) until penny.underscore == penny.word - puts ">> " # for testing + puts "Guess >> " + user.check_letter(penny, user, cake) + # if penny.underscore == penny.word # return # end # user.get_next_letter end +if penny.underscore == penny.word + puts "YOU WIN!!!. You can eat my birthday cake!".colorize(:blue) + cake.show_cake +end - +if user.wrong_letters.length == penny.word + puts "YOU LOSE, I WIN" +end From 36c496ecb7fd298a976dd49532f9a12cdb9da81c Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 21:57:45 -0700 Subject: [PATCH 29/41] add show cake method --- ascii_art.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ascii_art.rb b/ascii_art.rb index 18da784..28a5797 100644 --- a/ascii_art.rb +++ b/ascii_art.rb @@ -29,4 +29,9 @@ def take_away_candle puts @candle_light.colorize(:blue) puts @body end + + def show_cake + puts @candle_light.colorize(:blue) + puts @body + end end From 45392d679b52160f7acfd7d42b6074f2c8109718 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 22:14:57 -0700 Subject: [PATCH 30/41] add code to check for loser --- main.rb | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/main.rb b/main.rb index d48e94e..fa5fc9e 100644 --- a/main.rb +++ b/main.rb @@ -15,6 +15,7 @@ # user.get_next_letter # user.check_letter(penny, user) # user.get_next_letter + # game greeting and instructions puts "Welcome to Word-Guess!".colorize(:light_blue) puts "=".colorize(:light_blue) * 22 @@ -25,10 +26,16 @@ puts "SET...".colorize(:red) puts "GUESS!!".colorize(:red) + + until penny.underscore == penny.word puts "Guess >> " user.check_letter(penny, user, cake) + # checks for loser + if user.wrong_letters.length == 5 + puts "YOU LOSE, I WIN" + end # if penny.underscore == penny.word # return @@ -36,15 +43,23 @@ # user.get_next_letter end +# puts "wrong letters : #{user.wrong_letters}" +# puts "penny.word : #{penny.word}" +# puts "wrong letters length: #{user.wrong_letters.length}" +# puts "penny.word length: #{penny.word.length}" + + + +# checks for winner and outputs win message if penny.underscore == penny.word puts "YOU WIN!!!. You can eat my birthday cake!".colorize(:blue) cake.show_cake end -if user.wrong_letters.length == penny.word - puts "YOU LOSE, I WIN" -end + + + From 4406f7fd676ad7a32e34f6e4b53511036e528e14 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 22:15:28 -0700 Subject: [PATCH 31/41] change random words for easy testing --- random_word.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/random_word.rb b/random_word.rb index ed50328..111fcbd 100644 --- a/random_word.rb +++ b/random_word.rb @@ -2,7 +2,7 @@ class RandomWord attr_reader :word, :underscore def initialize() - word_arr = ["envelopea", "cat", "dragon", "coffeea", "water", "pencila"] + word_arr = ["art", "cat", "dragon", "nap", "water", "sat"] @word = word_arr[rand(word_arr.length)].split('') @length = @word.length @underscore = ("_ " * @length).split(' ') From 8fc36f75698f104c347450ac9a0d8ef4370ed24e Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 22:17:05 -0700 Subject: [PATCH 32/41] add variable to attr_reader --- user_input.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_input.rb b/user_input.rb index 66eb6ac..bc43fa6 100644 --- a/user_input.rb +++ b/user_input.rb @@ -1,7 +1,7 @@ class UserInput - attr_reader :current_letter + attr_reader :current_letter, :wrong_letters def initialize @current_letter = "" @wrong_letters = [] From 1221091fc7e039954a129e62b4a97649becc2443 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 22:48:46 -0700 Subject: [PATCH 33/41] check for loser and exit game --- main.rb | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/main.rb b/main.rb index fa5fc9e..652710b 100644 --- a/main.rb +++ b/main.rb @@ -21,46 +21,26 @@ puts "=".colorize(:light_blue) * 22 puts "GAME INSTRUCTIONS:".colorize(:green) puts "1.) Guess the word I'm thinking for a chance to have my Birthday Cake.".colorize(:yellow) -puts "2.) For every incorrect letter you choose, I will blow out one candle. You have 5 chances to guess.".colorize(:yellow) +puts "2.) For every incorrect letter you choose, I will blow out one candle.".colorize(:yellow) +puts "3.) If you guess incorrectly 5 times, I will happliy keep my cake." puts "READY...".colorize(:red) puts "SET...".colorize(:red) -puts "GUESS!!".colorize(:red) - - -until penny.underscore == penny.word +# loops until underscore array == random word || length of wrong_letters == 5 +until penny.underscore == penny.word || user.wrong_letters.length == 5 puts "Guess >> " + # check user input letter user.check_letter(penny, user, cake) - # checks for loser + + # checks for loser and exits game if user.wrong_letters.length == 5 puts "YOU LOSE, I WIN" end - - # if penny.underscore == penny.word - # return - # end - # user.get_next_letter end -# puts "wrong letters : #{user.wrong_letters}" -# puts "penny.word : #{penny.word}" -# puts "wrong letters length: #{user.wrong_letters.length}" -# puts "penny.word length: #{penny.word.length}" - - - # checks for winner and outputs win message if penny.underscore == penny.word puts "YOU WIN!!!. You can eat my birthday cake!".colorize(:blue) cake.show_cake end - - - - - - - - -#penny.rewrite_underscore(user) From 31d784b43b88f391c597977a55e1aad72edf463d Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 23:05:42 -0700 Subject: [PATCH 34/41] fix colorize --- ascii_art.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ascii_art.rb b/ascii_art.rb index 28a5797..6f5d3dd 100644 --- a/ascii_art.rb +++ b/ascii_art.rb @@ -9,7 +9,7 @@ def initialize @@@@@@@@@@@@@ {~@ HAPPY @~} { BIRTHDAY } -@@@@@@@@@@@@@".colorize(:red) +@@@@@@@@@@@@@".blue ] # @candle_light = [" `````"] #don't move # @candle_body = [" |||||"] #don't move @@ -26,12 +26,12 @@ def change_candles def take_away_candle change_candles - puts @candle_light.colorize(:blue) + puts @candle_light.blue puts @body end def show_cake - puts @candle_light.colorize(:blue) + puts @candle_light.blue puts @body end end From 622efb3bafd2f99af852a05bd9033b2bb1cc24fe Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 23:06:08 -0700 Subject: [PATCH 35/41] fix colorize and clean code up --- main.rb | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/main.rb b/main.rb index 652710b..53dcdc4 100644 --- a/main.rb +++ b/main.rb @@ -7,40 +7,34 @@ penny = RandomWord.new user = UserInput.new cake = AsciiArt.new -# print penny.writes_underscore -# puts "random word array : #{penny.word}" -# print penny.underscore - -# user.check_letter(penny, user) -# user.get_next_letter -# user.check_letter(penny, user) -# user.get_next_letter # game greeting and instructions -puts "Welcome to Word-Guess!".colorize(:light_blue) -puts "=".colorize(:light_blue) * 22 +puts "Welcome to Word-Guess!".blue +puts "=".blue * 22 puts "GAME INSTRUCTIONS:".colorize(:green) -puts "1.) Guess the word I'm thinking for a chance to have my Birthday Cake.".colorize(:yellow) -puts "2.) For every incorrect letter you choose, I will blow out one candle.".colorize(:yellow) -puts "3.) If you guess incorrectly 5 times, I will happliy keep my cake." -puts "READY...".colorize(:red) -puts "SET...".colorize(:red) +puts "1.) Guess the word I'm thinking for a chance to have my Birthday Cake.".green +puts "2.) For every incorrect letter you choose, I will blow out one candle.".green +puts "3.) If you guess incorrectly 5 times, I will happliy keep my cake.".green +puts "READY...".red +puts "SET...".red # loops until underscore array == random word || length of wrong_letters == 5 until penny.underscore == penny.word || user.wrong_letters.length == 5 - puts "Guess >> " + puts "Guess >> ".green # check user input letter user.check_letter(penny, user, cake) # checks for loser and exits game if user.wrong_letters.length == 5 - puts "YOU LOSE, I WIN" + puts + puts "=".colorize(:light_blue) * 16 + puts "YOU LOSE, I WIN!".blue end end # checks for winner and outputs win message if penny.underscore == penny.word - puts "YOU WIN!!!. You can eat my birthday cake!".colorize(:blue) + puts "YOU WIN!!!. You can eat my birthday cake!".green cake.show_cake end From afa2d325b4d46981895d156f036c95d318feff8f Mon Sep 17 00:00:00 2001 From: Tanisha Date: Thu, 17 Aug 2017 23:06:27 -0700 Subject: [PATCH 36/41] fix colorize --- user_input.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/user_input.rb b/user_input.rb index bc43fa6..f53ff4c 100644 --- a/user_input.rb +++ b/user_input.rb @@ -1,5 +1,3 @@ - - class UserInput attr_reader :current_letter, :wrong_letters def initialize @@ -20,7 +18,7 @@ def check_letter(class_rw, user_input, cake) return else @wrong_letters << @current_letter - puts "WRONG!, you loss a candle. Try Again" + puts "WRONG, you loss a candle. Try Again".red cake.take_away_candle # print @wrong_letters From f61122a481b1aaeb0f4354baf0a0266f09764826 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Fri, 18 Aug 2017 08:45:43 -0700 Subject: [PATCH 37/41] change game instructions --- main.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.rb b/main.rb index 53dcdc4..56f70c3 100644 --- a/main.rb +++ b/main.rb @@ -14,7 +14,7 @@ puts "GAME INSTRUCTIONS:".colorize(:green) puts "1.) Guess the word I'm thinking for a chance to have my Birthday Cake.".green puts "2.) For every incorrect letter you choose, I will blow out one candle.".green -puts "3.) If you guess incorrectly 5 times, I will happliy keep my cake.".green +puts "3.) If you guess incorrectly 5 times, you lose and I will happliy keep my cake.".green puts "READY...".red puts "SET...".red From e32bc87c80decbf481f6f04086aec4da3c12028d Mon Sep 17 00:00:00 2001 From: Tanisha Date: Fri, 18 Aug 2017 08:46:11 -0700 Subject: [PATCH 38/41] change color of candles --- ascii_art.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ascii_art.rb b/ascii_art.rb index 6f5d3dd..5f4383f 100644 --- a/ascii_art.rb +++ b/ascii_art.rb @@ -26,12 +26,12 @@ def change_candles def take_away_candle change_candles - puts @candle_light.blue + puts @candle_light.yellow puts @body end def show_cake - puts @candle_light.blue + puts @candle_light.yellow puts @body end end From 17171f3ed242e447a4dc782d11e40bc0c4161b9f Mon Sep 17 00:00:00 2001 From: Tanisha Date: Fri, 18 Aug 2017 14:26:14 -0700 Subject: [PATCH 39/41] include Bennett's code --- main.rb | 1 + random_word.rb | 26 +++++++++++++++++++------- user_input.rb | 38 +++++++++++++++++++++++++++++--------- 3 files changed, 49 insertions(+), 16 deletions(-) diff --git a/main.rb b/main.rb index 56f70c3..e0eaeec 100644 --- a/main.rb +++ b/main.rb @@ -3,6 +3,7 @@ require_relative 'random_word' require_relative 'ascii_art' require 'colorize' +require 'random_word_generator' penny = RandomWord.new user = UserInput.new diff --git a/random_word.rb b/random_word.rb index 111fcbd..92a8a26 100644 --- a/random_word.rb +++ b/random_word.rb @@ -2,19 +2,31 @@ class RandomWord attr_reader :word, :underscore def initialize() - word_arr = ["art", "cat", "dragon", "nap", "water", "sat"] - @word = word_arr[rand(word_arr.length)].split('') + # word_arr = ["envelope", "cat", "dragon", "coffee", "water", "pencil"] + # @word = word_arr[rand(word_arr.length)].split('') + @word = RandomWordGenerator.of_length(5).split('') @length = @word.length @underscore = ("_ " * @length).split(' ') end def rewrite_underscore(user_input) - # find index of letter of random word - i = @word.index(user_input.current_letter) - # replace underscore with right letter - @underscore[i] = user_input.current_letter - print "#{@underscore}\n" + # if user correctly guesses whole world, they win. + if @word.join == user_input.current_letter + arr = user_input.current_letter.split('') + arr.length.times do |i| + @underscore[i] = arr[i] + end + + else + # find index(es) of letter(s) of random word + arr = @word.each_index.select{|n| @word[n] == user_input.current_letter} + # replace underscore with right letter + arr.each do |i| + @underscore[i] = user_input.current_letter + end + print @underscore + end end diff --git a/user_input.rb b/user_input.rb index f53ff4c..bcce9e5 100644 --- a/user_input.rb +++ b/user_input.rb @@ -1,32 +1,52 @@ class UserInput - attr_reader :current_letter, :wrong_letters + attr_reader :current_letter, :wrong_letters def initialize @current_letter = "" @wrong_letters = [] @right_letters = [] end - def check_letter(class_rw, user_input, cake) + def check_letter(random_word, user_input, cake) + guess_display @current_letter = gets.chomp.downcase + # checks that user input is actually a letter, makes them try again if not. + until @current_letter =~ /[[:alpha:]]/ + puts "Invalid guess - please only guess one letter." + return + end + # if user correctly guesses whole word, they win. + if random_word.word.join == @current_letter + random_word.rewrite_underscore(user_input) + return # if random word array includes @current_letter - if class_rw.word.include?(@current_letter) + elsif random_word.word.include?(@current_letter) + if @right_letters.include?(@current_letter) + puts "You've already tried that one, try something different!" + return + end @right_letters << @current_letter puts "Good job, keep guessin'" # replace underscore at that index with user_input(@current_letter) - class_rw.rewrite_underscore(user_input) - # print @right_letters + random_word.rewrite_underscore(user_input) return else + if @wrong_letters.include?(@current_letter) + puts "You've already tried that one, try something different!" + return + end @wrong_letters << @current_letter puts "WRONG, you loss a candle. Try Again".red - cake.take_away_candle - # print @wrong_letters return end end - def get_next_letter - @current_letter = gets.chomp.downcase + # prints the already guessed letters + def guess_display + already_guessed = @wrong_letters + @right_letters + already_guessed = already_guessed.join(', ') + + puts "You've already guessed: #{already_guessed}" end + end From aa22e00ed951f6f33e9a9134cf005722bac038c6 Mon Sep 17 00:00:00 2001 From: Tanisha Date: Fri, 18 Aug 2017 14:37:11 -0700 Subject: [PATCH 40/41] display word win player loses --- main.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main.rb b/main.rb index e0eaeec..fc4fe32 100644 --- a/main.rb +++ b/main.rb @@ -16,6 +16,7 @@ puts "1.) Guess the word I'm thinking for a chance to have my Birthday Cake.".green puts "2.) For every incorrect letter you choose, I will blow out one candle.".green puts "3.) If you guess incorrectly 5 times, you lose and I will happliy keep my cake.".green +cake.show_cake puts "READY...".red puts "SET...".red @@ -30,6 +31,7 @@ if user.wrong_letters.length == 5 puts puts "=".colorize(:light_blue) * 16 + puts "The word was #{penny.word.join.upcase}" puts "YOU LOSE, I WIN!".blue end end From 11a05c896fda6da53812c27efc40d2be5e7fe5dd Mon Sep 17 00:00:00 2001 From: Tanisha Date: Fri, 18 Aug 2017 14:37:48 -0700 Subject: [PATCH 41/41] update color --- user_input.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_input.rb b/user_input.rb index bcce9e5..4abf167 100644 --- a/user_input.rb +++ b/user_input.rb @@ -46,7 +46,7 @@ def guess_display already_guessed = @wrong_letters + @right_letters already_guessed = already_guessed.join(', ') - puts "You've already guessed: #{already_guessed}" + puts "You've already guessed: #{already_guessed}".yellow end end