software_challenge_client 19.0.3 → 19.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31343a4b0ae1acb5120f3308a804addb89721914
4
- data.tar.gz: 56a8ed34d5df99c604e9cb05fe561983fd4925c5
3
+ metadata.gz: b38a977bd3ae77b818d3df9f602699eff0d6456f
4
+ data.tar.gz: 9f001e402e2663e1d5f9069e0da31df4a6d662d9
5
5
  SHA512:
6
- metadata.gz: 80738ed0b5d77e6ff1c93f461fee352477d2572a3825fdc7b01528cca6c36fc61b729470d69da6764bb7bef71ea732bdf7dc21561679672872d940e9f8d395c5
7
- data.tar.gz: 6f349e9fd893ac2e2feeab7ca813dcd2bb3bec4005bf6ac93fd4ade073f48f867c6b0a8f3d6307b6d03e0369558ddd92f126878ae2c29f73a8860568b07e69c7
6
+ metadata.gz: 9f7bac07ef13128ed2c51ef2fbfd54800676b50aedca88288b626c96e5f5c42b3f3bfacb10accf12ec17bce374b5692615ecd63fafa019d6ef5a605f6d7a1ca6
7
+ data.tar.gz: 13874a9ce4fff4a3ddf5d778cdbcb259c15b3ad71e4388e6ceae936c40c4540a65fb0dbb874c1948a58df85c72e54a38ef3106c3d1a8d56fe0b9c3f111e59781
data/RELEASES.md CHANGED
@@ -1,3 +1,7 @@
1
+ = 19.0.4
2
+
3
+ - fixed one more bug in in Move#perform! (thanks to wollw!)
4
+
1
5
  = 19.0.3
2
6
 
3
7
  - fixed another bug in in Move#perform! (thanks to wollw!)
@@ -1,4 +1,6 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
2
4
  require_relative './util/constants'
3
5
  require_relative 'player'
4
6
  require_relative 'board'
@@ -6,18 +8,22 @@ require_relative 'move'
6
8
  require_relative 'condition'
7
9
  require_relative 'field_type'
8
10
 
9
- # Ein Spielzustand. Wird vom Server an die Computerspieler übermittelt und enthält alles, was der Computerspieler wissen muss, um einen Zug zu machen.
11
+ # Ein Spielzustand. Wird vom Server an die Computerspieler übermittelt und
12
+ # enthält alles, was der Computerspieler wissen muss, um einen Zug zu machen.
10
13
  #
11
- # Um eine Liste der gerade möglichen Züge zu bekommen, gibt es die Methode {GameState#possible_moves}.
14
+ # Um eine Liste der gerade möglichen Züge zu bekommen, gibt es die Methode
15
+ # {GameState#possible_moves}.
12
16
  class GameState
13
17
  # @!attribute [rw] turn
14
18
  # @return [Integer] Aktuelle Zugnummer (von 0 beginnend)
15
19
  attr_accessor :turn
16
20
  # @!attribute [rw] start_player_color
17
- # @return [PlayerColor] Die Farbe des Spielers, der den ersten Zug im Spiel machen darf.
21
+ # @return [PlayerColor] Die Farbe des Spielers, der den ersten Zug im Spiel
22
+ # machen darf.
18
23
  attr_accessor :start_player_color
19
24
  # @!attribute [rw] current_player_color
20
- # @return [PlayerColor] Die Farbe des Spielers, der den nächsten Zug machen darf, der also gerade an der Reihe ist.
25
+ # @return [PlayerColor] Die Farbe des Spielers, der den nächsten Zug machen
26
+ # darf, der also gerade an der Reihe ist.
21
27
  attr_accessor :current_player_color
22
28
  # @!attribute [r] red
23
29
  # @return [Player] Der rote Spieler
@@ -29,10 +35,12 @@ class GameState
29
35
  # @return [Board] Das aktuelle Spielbrett
30
36
  attr_accessor :board
31
37
  # @!attribute [rw] last_move
32
- # @return [Move] Der zuletzt gemachte Zug (ist nil vor dem ersten Zug, also bei turn == 0)
38
+ # @return [Move] Der zuletzt gemachte Zug (ist nil vor dem ersten Zug, also
39
+ # bei turn == 0)
33
40
  attr_accessor :last_move
34
41
  # @!attribute [rw] condition
35
- # @return [Condition] Gewinner und Gewinngrund, falls das Spiel bereits entschieden ist, sonst nil.
42
+ # @return [Condition] Gewinner und Gewinngrund, falls das Spiel bereits
43
+ # entschieden ist, sonst nil.
36
44
  attr_accessor :condition
37
45
 
38
46
  # Zugriff auf ein Feld des Spielbrettes. Siehe {Board#field}.
@@ -81,32 +89,38 @@ class GameState
81
89
  turn / 2
82
90
  end
83
91
 
84
- # Führt einen Zug auf dem Spielzustand aus. Das Spielbrett wird entsprechend modifiziert.
92
+ # Führt einen Zug auf dem Spielzustand aus. Das Spielbrett wird entsprechend
93
+ # modifiziert.
85
94
  #
86
95
  # @param move [Move] Der auszuführende Zug.
87
96
  def perform!(move)
88
97
  move.perform!(self)
89
98
  end
90
99
 
91
- # @return [Boolean] true, falls das Spiel bereits geendet hat, false bei noch laufenden Spielen.
100
+ # @return [Boolean] true, falls das Spiel bereits geendet hat, false bei noch
101
+ # laufenden Spielen.
92
102
  def game_ended?
93
103
  !condition.nil?
94
104
  end
95
105
 
96
- # @return [Player] Der Spieler, der das Spiel gewonnen hat, falls dies schon entschieden ist. Sonst false.
106
+ # @return [Player] Der Spieler, der das Spiel gewonnen hat, falls dies schon
107
+ # entschieden ist. Sonst false.
97
108
  def winner
98
109
  condition.nil? ? nil : condition.winner
99
110
  end
100
111
 
101
- # @return [String] Der Grund, warum das Spiel beendet wurde, nil falls das Spiel noch läuft.
112
+ # @return [String] Der Grund, warum das Spiel beendet wurde, nil falls das
113
+ # Spiel noch läuft.
102
114
  def winning_reason
103
115
  condition.nil? ? nil : condition.reason
104
116
  end
105
117
 
106
- # Ermittelt die Punkte eines Spielers. Wenn das Spiel durch Erreichen des Rundenlimits beendet wird, hat der Spieler mit den meisten Punkten gewonnen.
118
+ # Ermittelt die Punkte eines Spielers. Wenn das Spiel durch Erreichen des
119
+ # Rundenlimits beendet wird, hat der Spieler mit den meisten Punkten gewonnen.
107
120
  #
108
121
  # @param player [Player] Der Spieler, dessen Punkte berechnet werden sollen.
109
- # @return [Integer] Die Punkte des Spielers, entspricht der Anzahl der Fische im größten Schwarm des Spielers.
122
+ # @return [Integer] Die Punkte des Spielers, entspricht der Anzahl der Fische
123
+ # im größten Schwarm des Spielers.
110
124
  def points_for_player(player)
111
125
  GameRuleLogic.swarm_size(board, player)
112
126
  end
@@ -122,14 +136,16 @@ class GameState
122
136
  condition == other.condition
123
137
  end
124
138
 
125
- # Erzeugt eine Kopie des Spielzustandes. Änderungen an dieser Kopie beeinflussen den originalen Spielzustand nicht. Die Kopie kann also zum testen von Spielzügen genutzt werden.
139
+ # Erzeugt eine Kopie des Spielzustandes. Änderungen an dieser Kopie
140
+ # beeinflussen den originalen Spielzustand nicht. Die Kopie kann also zum
141
+ # testen von Spielzügen genutzt werden.
126
142
  def deep_clone
127
143
  Marshal.load(Marshal.dump(self))
128
144
  end
129
145
 
130
146
  # Wechselt den Spieler, der aktuell an der Reihe ist.
131
147
  def switch_current_player
132
- current_player_color = other_player_color
148
+ @current_player_color = other_player_color
133
149
  end
134
150
 
135
151
  # @return [Array<Field>] Alle Felder mit Fischen des Spielers, der gerade an der Reihe ist.
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module SoftwareChallengeClient
3
- VERSION = "19.0.3"
3
+ VERSION = "19.0.4"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: software_challenge_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 19.0.3
4
+ version: 19.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'kwollw '