ruby_ttt 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/ai.rb CHANGED
@@ -69,4 +69,40 @@ module RubyTictactoe
69
69
  end
70
70
  end
71
71
 
72
+ class AlphaBetaPlayer
73
+ attr_accessor :marker, :opponent
74
+ def initialize(player)
75
+ @marker = player.marker
76
+ @opponent = player.opponent
77
+ end
78
+
79
+ def get_alpha(alpha, score)
80
+ alpha
81
+ end
82
+
83
+ def get_beta(beta, score)
84
+ beta
85
+ end
86
+ end
87
+
88
+ class MinimizingPlayer < AlphaBetaPlayer
89
+ def get_alpha(alpha, score)
90
+ score > alpha ? score : alpha
91
+ end
92
+
93
+ def return_best_score(alpha, beta)
94
+ alpha
95
+ end
96
+ end
97
+
98
+ class MaximizingPlayer < AlphaBetaPlayer
99
+ def get_beta(beta, score)
100
+ score < beta ? score : beta
101
+ end
102
+
103
+ def return_best_score(alpha, beta)
104
+ beta
105
+ end
106
+ end
107
+
72
108
  end
data/lib/ai_player.rb ADDED
@@ -0,0 +1,13 @@
1
+ module RubyTictactoe
2
+
3
+ class AIPlayer < Player
4
+
5
+ def make_move(board)
6
+ ai = AI.new(self)
7
+ cell = ai.computer_move(board, self)
8
+ add_marker(board, cell)
9
+ end
10
+
11
+ end
12
+
13
+ end
@@ -0,0 +1,12 @@
1
+ module RubyTictactoe
2
+
3
+ class ComputerPlayer < Player
4
+
5
+ def make_move(board)
6
+ cell = board.random_cell
7
+ add_marker(board, cell)
8
+ end
9
+
10
+ end
11
+
12
+ end
@@ -0,0 +1,5 @@
1
+ module RubyTictactoe
2
+
3
+ class HumanPlayer < Player; end
4
+
5
+ end
data/lib/player.rb CHANGED
@@ -12,25 +12,4 @@ module RubyTictactoe
12
12
  end
13
13
  end
14
14
 
15
- class AIPlayer < Player
16
-
17
- def make_move(board)
18
- ai = AI.new(self)
19
- cell = ai.computer_move(board, self)
20
- add_marker(board, cell)
21
- end
22
-
23
- end
24
-
25
- class ComputerPlayer < Player
26
-
27
- def make_move(board)
28
- cell = board.random_cell
29
- add_marker(board, cell)
30
- end
31
-
32
- end
33
-
34
- class HumanPlayer < Player; end
35
-
36
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_ttt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -36,13 +36,14 @@ extensions: []
36
36
  extra_rdoc_files: []
37
37
  files:
38
38
  - lib/ai.rb
39
- - lib/alpha_beta_player.rb
39
+ - lib/ai_player.rb
40
40
  - lib/board.rb
41
+ - lib/computer_player.rb
41
42
  - lib/game.rb
42
43
  - lib/game_setup.rb
44
+ - lib/human_player.rb
43
45
  - lib/player.rb
44
46
  - lib/player_factory.rb
45
- - lib/ruby_ttt.rb
46
47
  - lib/tictactoe_constants.rb
47
48
  - lib/ui.rb
48
49
  homepage: http://rubygems.org/gems/ruby_ttt
@@ -1,39 +0,0 @@
1
- module RubyTictactoe
2
-
3
- class AlphaBetaPlayer
4
- attr_accessor :marker, :opponent
5
- def initialize(player)
6
- @marker = player.marker
7
- @opponent = player.opponent
8
- end
9
-
10
- def get_alpha(alpha, score)
11
- alpha
12
- end
13
-
14
- def get_beta(beta, score)
15
- beta
16
- end
17
- end
18
-
19
- class MinimizingPlayer < AlphaBetaPlayer
20
- def get_alpha(alpha, score)
21
- score > alpha ? score : alpha
22
- end
23
-
24
- def return_best_score(alpha, beta)
25
- alpha
26
- end
27
- end
28
-
29
- class MaximizingPlayer < AlphaBetaPlayer
30
- def get_beta(beta, score)
31
- score < beta ? score : beta
32
- end
33
-
34
- def return_best_score(alpha, beta)
35
- beta
36
- end
37
- end
38
-
39
- end
data/lib/ruby_ttt.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'tictactoe_constants'
2
- require 'ai'
3
- require 'board'
4
- require 'player_factory'
5
- require 'game_setup'
6
- require 'player'
7
- require 'ui'
8
- require 'alpha_beta_player'
9
- require 'game'