Sha256: b241a4a62cdea9014bad2f2d4f2b8b160f44d0bc18ed421c3e17592b96d18b66
Contents?: true
Size: 1.82 KB
Versions: 3
Compression:
Stored size: 1.82 KB
Contents
module TTT class GameConfig attr_accessor :input_helper attr_accessor :player_1_name attr_accessor :player_1_value attr_accessor :player_2_type attr_accessor :player_2_name attr_accessor :player_2_value attr_accessor :computer_difficulty_level attr_accessor :number_of_rows_cols def initialize(input_helper) @input_helper = input_helper setup end def setup set_player_1_values set_player_2_values set_board_rows_cols end def set_player_1_values self.player_1_name = input_helper.get_player_1_name self.player_1_value = input_helper.get_player_1_value(player_1_name) end def set_player_2_values self.player_2_type = input_helper.get_player_2_type if player_2_human? self.player_2_name = input_helper.get_player_2_name self.player_2_value = input_helper.get_player_2_value(player_1_value) elsif player_2_computer? self.player_2_name = "Computer" self.player_2_value = get_computer_value self.computer_difficulty_level = input_helper.get_computer_difficulty_level end end def set_board_rows_cols #need this if else logic because if computer is difficult, it runs minimax, which is too slow to allow for more than 3 rows/cols if computer_difficult? self.number_of_rows_cols = input_helper.get_number_of_rows_cols_max_3 else self.number_of_rows_cols = input_helper.get_number_of_rows_cols_max_9 end end def player_2_human? player_2_type == :human end def player_2_computer? player_2_type == :computer end def computer_difficult? computer_difficulty_level == :difficult end def get_computer_value if player_2_value != "O" "O" else "X" end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
tic_tac_toe_bfox-0.3.0 | lib/tictactoe/game_config.rb |
tic_tac_toe_bfox-0.2.0 | lib/tictactoe/game_config.rb |
tic_tac_toe_bfox-0.1.0 | lib/tictactoe/game_config.rb |