software_challenge_client 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -5
- data/RELEASES.md +4 -0
- data/example/start.bat +2 -0
- data/lib/software_challenge_client/action.rb +1 -1
- data/lib/software_challenge_client/game_rules.rb +14 -16
- data/lib/software_challenge_client/network.rb +0 -1
- data/lib/software_challenge_client/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f17d0f5a06ce3da01d2700ea50e20e6f8ccb9d4f
|
4
|
+
data.tar.gz: 85f493205e07e2ec8c4e66b61a51da5b4a2e43dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab46b529b1874eecfc1c9a3449d7e0c70734d06247004c473b183054c31e1251fabcd3be7877a4f80b6ecf3412766a0eebcb009dd852d50dcdf27fb68a397ee3
|
7
|
+
data.tar.gz: cb7cd641de2dbdf3caf1b60fb5058a00436ea985b69866938dac4988accc5e833ce1e69fd094b17d00d877e43460757480ae8b103fd104870002dc14eeec23a7
|
data/README.md
CHANGED
@@ -30,7 +30,7 @@ ruby main.rb
|
|
30
30
|
```
|
31
31
|
|
32
32
|
in a shell (while being in the example directory). Note that the
|
33
|
-
software_challenge_client gem needs to be installed for this to work and a
|
33
|
+
`software_challenge_client` gem needs to be installed for this to work and a
|
34
34
|
server waiting for a manual client has to be running.
|
35
35
|
|
36
36
|
## Documentation
|
@@ -91,10 +91,12 @@ pass.
|
|
91
91
|
### Releasing
|
92
92
|
|
93
93
|
To release a new version, update the version number in
|
94
|
-
`lib/software_challenge_client/version.rb` and update RELEASES.md.
|
95
|
-
|
96
|
-
|
97
|
-
|
94
|
+
`lib/software_challenge_client/version.rb` and update RELEASES.md.
|
95
|
+
|
96
|
+
Then run `bundle exec rake release`, which will create a git tag for the
|
97
|
+
version, push git commits and tags, and push the `.gem` file to
|
98
|
+
[rubygems.org](https://rubygems.org). You may also use the `release.sh` script
|
99
|
+
which executes `bundle exec rake release` in a suitable docker container.
|
98
100
|
|
99
101
|
## Contributing
|
100
102
|
|
data/RELEASES.md
CHANGED
data/example/start.bat
ADDED
@@ -53,11 +53,11 @@ class GameRules
|
|
53
53
|
when FieldType::SALAD
|
54
54
|
return false, 'Ohne Salat darf ein Salatfeld nicht betreten werden.' if player.salads < 1
|
55
55
|
when FieldType::HARE
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
return false, 'Auf ein Hasenfeld darf nur gezogen werden, wenn eine Karte gespielt werden kann' unless can_play_any_card(
|
56
|
+
state_after_advance = state.deep_clone
|
57
|
+
state_after_advance.set_last_action(Advance.new(distance))
|
58
|
+
state_after_advance.current_player.index = new_position
|
59
|
+
state_after_advance.current_player.carrots -= required_carrots
|
60
|
+
return false, 'Auf ein Hasenfeld darf nur gezogen werden, wenn eine Karte gespielt werden kann' unless can_play_any_card(state_after_advance)
|
61
61
|
when FieldType::GOAL
|
62
62
|
carrotsLeft = player.carrots - required_carrots
|
63
63
|
return false, "Auf das Zielfeld darf nur mit maximal 10 Karotten gezogen werden (es sind aber #{carrotsLeft} bei Erreichen des Zielfeldes)." unless carrotsLeft <= 10
|
@@ -131,9 +131,7 @@ class GameRules
|
|
131
131
|
return true
|
132
132
|
elsif (last_action.instance_of? Card)
|
133
133
|
# the player has to leave a rabbit field in next turn
|
134
|
-
if (last_action.type == CardType::EAT_SALAD)
|
135
|
-
return true
|
136
|
-
elsif (last_action.type == CardType::TAKE_OR_DROP_CARROTS) # the player has to leave the rabbit field
|
134
|
+
if (last_action.type == CardType::EAT_SALAD || last_action.type == CardType::TAKE_OR_DROP_CARROTS)
|
137
135
|
return true
|
138
136
|
end
|
139
137
|
end
|
@@ -189,10 +187,10 @@ class GameRules
|
|
189
187
|
when FieldType::SALAD
|
190
188
|
return false, 'Spieler käme durch Spielen der FALL_BACK Kart auf ein Salatfeld, hat aber keine Salate.' if player.salads < 1
|
191
189
|
when FieldType::HARE
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
return false, 'Spieler käme durch Spielen der FALL_BACK Kart auf ein Hasenfeld, kann aber dann keine weitere Karte mehr spielen.' unless can_play_any_card(
|
190
|
+
state_after_card_played = state.deep_clone
|
191
|
+
state_after_card_played.set_last_action(Card.new(CardType::FALL_BACK))
|
192
|
+
state_after_card_played.current_player.cards.delete(CardType::FALL_BACK)
|
193
|
+
return false, 'Spieler käme durch Spielen der FALL_BACK Kart auf ein Hasenfeld, kann aber dann keine weitere Karte mehr spielen.' unless can_play_any_card(state_after_card_played)
|
196
194
|
when FieldType::START
|
197
195
|
when FieldType::CARROT
|
198
196
|
when FieldType::POSITION_1
|
@@ -227,10 +225,10 @@ class GameRules
|
|
227
225
|
when FieldType::SALAD
|
228
226
|
return false, 'Spieler käme durch Spielen der HURRY_AHEAD Kart auf ein Salatfeld, hat aber keine Salate.' if player.salads < 1
|
229
227
|
when FieldType::HARE
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
return false, 'Spieler käme durch Spielen der HURRY_AHEAD Kart auf ein Hasenfeld, kann aber dann keine weitere Karte mehr spielen.' unless can_play_any_card(
|
228
|
+
state_after_card_played = state.deep_clone
|
229
|
+
state_after_card_played.set_last_action(Card.new(CardType::HURRY_AHEAD))
|
230
|
+
state_after_card_played.current_player.cards.delete(CardType::HURRY_AHEAD)
|
231
|
+
return false, 'Spieler käme durch Spielen der HURRY_AHEAD Kart auf ein Hasenfeld, kann aber dann keine weitere Karte mehr spielen.' unless can_play_any_card(state_after_card_played)
|
234
232
|
when FieldType::GOAL
|
235
233
|
return false, 'Spieler käme durch Spielen der HURRY_AHEAD Kart ins Ziel, darf es aber nicht betreten (entweder noch Salate oder mehr als 10 Karotten).' unless can_enter_goal(state)
|
236
234
|
when FieldType::CARROT
|
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: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 'kwollw '
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-11-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: typesafe_enum
|
@@ -247,6 +247,7 @@ files:
|
|
247
247
|
- develop.sh
|
248
248
|
- example/client.rb
|
249
249
|
- example/main.rb
|
250
|
+
- example/start.bat
|
250
251
|
- generate-authors.sh
|
251
252
|
- lib/software_challenge_client.rb
|
252
253
|
- lib/software_challenge_client/action.rb
|
@@ -291,7 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
291
292
|
version: '0'
|
292
293
|
requirements: []
|
293
294
|
rubyforge_project:
|
294
|
-
rubygems_version: 2.6.
|
295
|
+
rubygems_version: 2.6.13
|
295
296
|
signing_key:
|
296
297
|
specification_version: 4
|
297
298
|
summary: This gem provides functions to build a client for the coding competition
|