Class: Engine
- Inherits:
-
Object
show all
- Includes:
- Emoji
- Defined in:
- lib/ttt-cli/engine.rb
Direct Known Subclasses
Game
Constant Summary
collapse
- DIFFICULTY_LEVELS =
{
easy: RandomAI,
medium: MediumAI,
hard: HardAI
}.freeze
- @@game_mode =
:singleplayer
- @@draws =
0
- @@wins =
0
- @@losses =
0
Constants included
from Emoji
Emoji::DASH, Emoji::O, Emoji::X
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#difficulty ⇒ Object
Returns the value of attribute difficulty.
4
5
6
|
# File 'lib/ttt-cli/engine.rb', line 4
def difficulty
@difficulty
end
|
Class Method Details
.difficulty_level ⇒ Object
.is_singleplayer?(mode) ⇒ Boolean
33
34
35
|
# File 'lib/ttt-cli/engine.rb', line 33
def self.is_singleplayer?(mode)
mode == :singleplayer
end
|
.reset_counters ⇒ Object
55
56
57
58
59
|
# File 'lib/ttt-cli/engine.rb', line 55
def self.reset_counters
@@draws = 0
@@losses = 0
@@wins = 0
end
|
.set_difficulty ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/ttt-cli/engine.rb', line 37
def self.set_difficulty
if @@game_mode == :singleplayer
Engine.difficulty_level
else
HardAI
end
end
|
.set_game_mode(mode) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/ttt-cli/engine.rb', line 20
def self.set_game_mode(mode) if Engine.is_singleplayer?(mode)
Engine.reset_counters if @@game_mode == :hotseat || @@game_mode == :observer
@@game_mode = :singleplayer
elsif mode == :hotseat
Engine.reset_counters if @@game_mode == :singleplayer || @@game_mode == :observer
@@game_mode = :hotseat
else
Engine.reset_counters if @@game_mode == :singleplayer || @@game_mode == :hotseat
@@game_mode = :observer
end
end
|
Instance Method Details
#draws ⇒ Object
69
70
71
|
# File 'lib/ttt-cli/engine.rb', line 69
def draws
@@draws
end
|
#game_mode ⇒ Object
61
62
63
|
# File 'lib/ttt-cli/engine.rb', line 61
def game_mode
@@game_mode
end
|
#losses ⇒ Object
73
74
75
|
# File 'lib/ttt-cli/engine.rb', line 73
def losses
@@losses
end
|
#wins ⇒ Object
65
66
67
|
# File 'lib/ttt-cli/engine.rb', line 65
def wins
@@wins
end
|