class Codeguessing::Console
Constants
- MESSAGE
Attributes
game[R]
path[R]
scores[R]
Public Class Methods
new()
click to toggle source
# File lib/codeguessing/console.rb, line 7 def initialize @path = File.join(File.dirname(__FILE__), 'data/scores.yml') @scores = load(@path) || [] @game = Game.new end
Public Instance Methods
gaming()
click to toggle source
# File lib/codeguessing/console.rb, line 28 def gaming action = gets.chomp if action == 'hint' puts game.hint return go(true) end if game.valid?(action) puts game.guess(action) else puts MESSAGE['invalid_data'] end go(true) end
go(knowed = false)
click to toggle source
# File lib/codeguessing/console.rb, line 18 def go(knowed = false) rules unless knowed puts "Attempt(s): #{game.attempts} | Hint(s): #{game.hint_count}" case game.win? when true then win when false then loose else gaming end end
rules()
click to toggle source
# File lib/codeguessing/console.rb, line 13 def rules puts MESSAGE['rules?'] puts MESSAGE['rules'].join("\n") unless confirm? end
Private Instance Methods
again()
click to toggle source
# File lib/codeguessing/console.rb, line 82 def again puts MESSAGE['again?'] if confirm? @game = Game.new return go(true) else puts MESSAGE['scores_line']['start'] p scores puts MESSAGE['scores_line']['end'] end end
confirm?(action = gets.chomp)
click to toggle source
# File lib/codeguessing/console.rb, line 44 def confirm?(action = gets.chomp) return true if action.downcase == 'y' false end
load(path)
click to toggle source
# File lib/codeguessing/console.rb, line 49 def load(path) YAML.load_file(path) if File.exist?(path) end
loose()
click to toggle source
# File lib/codeguessing/console.rb, line 69 def loose puts MESSAGE['loose'] puts "#{MESSAGE['loose_code']} #{game.secret_code}" again end
save(name = 'Anonim')
click to toggle source
# File lib/codeguessing/console.rb, line 53 def save(name = 'Anonim') return puts MESSAGE['cant_save'] unless game.win? @scores << game.cur_score(name.chomp) File.new(path, 'w') unless File.exist?(path) File.open(path, "r+") do |f| f.write(scores.to_yaml) end scores end
save?()
click to toggle source
# File lib/codeguessing/console.rb, line 75 def save? puts MESSAGE['save?'] return puts MESSAGE['not_saved'] unless confirm? puts MESSAGE['set_name'] save(gets) end
win()
click to toggle source
# File lib/codeguessing/console.rb, line 63 def win puts MESSAGE['win'] save? again end