software_challenge_client 19.0.3 → 19.0.4

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.
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 '