ruby_ttt 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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'