Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@efecarranza
Created May 28, 2019 00:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save efecarranza/0b36cb1f7a064a00904fcc99b69acc48 to your computer and use it in GitHub Desktop.
Save efecarranza/0b36cb1f7a064a00904fcc99b69acc48 to your computer and use it in GitHub Desktop.
class ComputerGuess
def play
possible_digits = [0,1,2,3,4,5,6,7,8,9]
good_digits = []
bad_digits = []
playing = true
while playing
initial_guess = generate_number(possible_digits)
clues = get_clues(initial_guess)
running = did_we_guess?(clues)
generate_guess(initial_guess, clues, possible_digits)
end
end
def generate_guess(previous_guess, clues, possible_digits, good_digits)
digits_to_try = possible_digits - previous_guess
digit_to_try = rand(digits_to_try.length) - 1
new_guess = previous_guess
new_guess.pop().push(digit_to_try)
clues_value = clues.good + clues.regular
new_clues = get_clues(new_guess)
if new_clues.good + new_clues.regular > clues_value
good_digits.push(digit_to_try)
elsif new_clues.good + new_clues.regular < clues_value
possible_digits.delete(digit_to_try)
end
generate_guess(new_guess, new_clues, possible_digits, good_digits)
end
def did_we_guess?(clues)
if clues.good == 4
puts('AWESOME!!!!')
return false
end
return true
end
def get_clues(guess)
puts(guess)
puts('How many good clues?')
good = gets.chomp.to_i
puts('How many regular clues?')
regular = gets.chomp.to_i
puts('Good:' + good.to_s + ' -- ' + 'Regular:' + regular.to_s)
return {'good': good, 'regular': regular}
end
def generate_number(possible_digits)
guess = []
4.times.each do
guess << possible_digits.delete_at(rand(possible_digits.length) - 1)
end
if guess[0] == 0
guess = generate_initial_number(possible_digits)
end
return guess
end
end
ComputerGuess.new.play
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment