Skip to content
120 changes: 120 additions & 0 deletions new_word_guess.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
require 'colorize'
require 'random-word'

class Game

def initialize(answer)
# puts answer
@correct_guesses = []
@incorrect_guesses = []
@tries = 7

@answer_as_array = split_answer(answer)

while @tries > 0
if @tries > 1
accept_user_guess
display
if correct_display == answer
puts "~WINNER~~WINNER~~WINNER~".colorize(:light_magenta)
exit
end
elsif @tries == 1
puts "You LOST! You LOST! You LOST!".colorize(:light_red)
exit
end
end
end

def sushi_display
<<~SUSHI

,'' ; ; ; ''|||\///
',,_;__;__;__;,'''/\\\\
| |
'.________.'
SUSHI
end


private

def split_answer(answer)
return answer.split(//)
end

def accept_user_guess
puts "Please enter a letter"
user_input = gets.chomp.downcase
unless /([a-z])/.match(user_input)
puts "Invalid guess! Letters only please! Please try again."
user_input = gets.chomp.downcase
end
if @answer_as_array.include?(user_input)
@correct_guesses << user_input
puts clear_screen
else
if @incorrect_guesses.include?(user_input)
puts "You already guessed that letter! No penalty, but try not to do it again!".colorize(:light_green)
else
@incorrect_guesses << user_input
@tries -= 1
puts clear_screen
end
end
end

def correct_display
display_array = ""
@answer_as_array.each do |letter|
if @correct_guesses.include? letter
display_array << letter
else
display_array << "_"
end
end
return display_array
end

def display
puts "Number of sushi pieces == number of tries remaining"
(@tries - 1).times do
print sushi_display
end
puts "Correct guesses: #{correct_display}".colorize(:light_blue)
puts "Incorrect guesses: #{@incorrect_guesses}".colorize(:red)
end

def clear_screen
return "\e[H\e[2J"
end

end

#freestanding welcome method
def welcome
puts "Welcome to the sushi word game! If you run out of sushi before you guess the word, you lose!!".colorize(:green)
puts "Pick your level: easy or hard:"
level = gets.chomp.downcase
unless level == "easy" || level == "hard"
puts "Invalid answer. Please enter easy or hard."
level = gets.chomp.downcase
end

@answer = ""
easy_answer_array = ["pink", "cat", "dolphin", "picnic", "sashimi", "tuna", "nigiri", "wasabi"]
hard_answer_array = []
hard_answer_array = 10.times.map { RandomWord.adjs.next.gsub('_', ' ') }

if level == "easy"
@answer = easy_answer_array.sample
elsif level == "hard"
@answer = hard_answer_array.sample
end

return @answer
end

# running program

new_game = Game.new(welcome)
116 changes: 116 additions & 0 deletions word_guess.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Word Class =============================
class Game

attr_accessor :answer

def initialize(answer_array)
@answer = answer_array.sample.split(//)
puts "the answer is #{@answer}"

while running?
play_game
end
end


def answer
return @answer
end

def play_game
guess = Guess.new
puts "Please enter the letter you'd like to guess."
input_letter = gets.chomp
is_correct_answer = guess.check(input_letter, @answer)
if is_correct_answer
guess.store_into_correct_letters(input_letter)
guess.display_progress
else
guess.add_wrong_guess
end
end

def print_answer(guess)
# hold_answer = []
#
# @answer.each do |check|
# if check == guess
# hold_answer << guess
# else
# hold_answer << "_ "
# end
# end
# hold_answer_string = ""
# hold_answer.each {|p| hold_answer_string << p}
# return hold_answer_string
end




# def answer
# answer = @answer
# return answer
# end

end

# Guess class ========================================
class Guess

attr_accessor :guess, :wrong_guesses, :correct_letters

def initialize
@wrong_guesses = []
@correct_letters = []
end
# def guess
#
# return print_answer(guess)
# else
# print "Wrong guess!"
# end
# end

def check(guess, answer)
if answer.include?(guess)
return true
else
return false
end
end

def add_wrong_guess
puts "wrong guess"
return @wrong_guesses << guess
end

def store_into_correct_letters(guess)
puts "word storage"
@correct_letters << guess
# if guess_check == true
# correct_letters << @guess
# end
end

def display_progress
puts @correct_letters
end

def counter

end

end

answer_array = ["cat", "bat", "dog"]

# tests ===============================
word_try = Game.new(answer_array)

puts "Welcome to our word guess game!"

# word_try.play_game
# puts word_try.guess_check

# if word_try.guess