software_challenge_client 22.1.0 → 23.0.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.
- checksums.yaml +4 -4
- data/.gitignore +15 -15
- data/.rspec +3 -3
- data/.rubocop.yml +11 -11
- data/.ruby-version +1 -1
- data/.stickler.yml +7 -7
- data/.vscode/launch.json +40 -40
- data/.vscode/settings.json +9 -9
- data/AUTHORS +6 -6
- data/CODE_OF_CONDUCT.md +13 -13
- data/Dockerfile +3 -3
- data/Gemfile +5 -5
- data/Guardfile +45 -45
- data/README.md +172 -147
- data/RELEASES.md +144 -140
- data/Rakefile +7 -7
- data/bin/console +15 -15
- data/bin/setup +7 -7
- data/develop.sh +3 -3
- data/example/client.rb +35 -35
- data/example/main.rb +42 -42
- data/example/start.bat +2 -2
- data/generate-authors.sh +19 -19
- data/lib/software_challenge_client/board.rb +149 -127
- data/lib/software_challenge_client/client_interface.rb +19 -19
- data/lib/software_challenge_client/condition.rb +27 -27
- data/lib/software_challenge_client/coordinates.rb +71 -45
- data/lib/software_challenge_client/debug_hint.rb +17 -17
- data/lib/software_challenge_client/direction.rb +41 -0
- data/lib/software_challenge_client/field.rb +70 -69
- data/lib/software_challenge_client/game_rule_logic.rb +206 -136
- data/lib/software_challenge_client/game_state.rb +57 -29
- data/lib/software_challenge_client/invalid_move_exception.rb +15 -15
- data/lib/software_challenge_client/logging.rb +26 -26
- data/lib/software_challenge_client/move.rb +37 -41
- data/lib/software_challenge_client/network.rb +126 -126
- data/lib/software_challenge_client/piece.rb +43 -81
- data/lib/software_challenge_client/player.rb +31 -31
- data/lib/software_challenge_client/protocol.rb +103 -54
- data/lib/software_challenge_client/runner.rb +36 -36
- data/lib/software_challenge_client/team.rb +23 -25
- data/lib/software_challenge_client/util/constants.rb +9 -9
- data/lib/software_challenge_client/version.rb +5 -5
- data/lib/software_challenge_client.rb +23 -25
- data/lib/update_client_module.sh +15 -15
- data/push_image_production.sh +12 -12
- data/release.sh +9 -9
- data/software_challenge_client.gemspec +41 -41
- metadata +3 -5
- data/lib/software_challenge_client/color.rb +0 -26
- data/lib/software_challenge_client/has_hints.rb +0 -11
- data/lib/software_challenge_client/piece_type.rb +0 -16
@@ -1,36 +1,36 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
require_relative 'board'
|
4
|
-
require_relative 'client_interface'
|
5
|
-
require_relative 'network'
|
6
|
-
|
7
|
-
# Klasse zum Starten einer neue Verbindung zum Spielserver und Verarbeiten der Nachrichten des Servers.
|
8
|
-
class Runner
|
9
|
-
include Logging
|
10
|
-
|
11
|
-
def initialize(host, port, client, reservation = nil)
|
12
|
-
logger.info 'Software Challenge 2022'
|
13
|
-
logger.info 'Ruby Client'
|
14
|
-
logger.info "Host: #{host}"
|
15
|
-
logger.info "Port: #{port}"
|
16
|
-
|
17
|
-
board = Board.new
|
18
|
-
@network = Network.new(host, port, board, client, reservation)
|
19
|
-
end
|
20
|
-
|
21
|
-
def start
|
22
|
-
@network.connect
|
23
|
-
unless @network.connected
|
24
|
-
logger.error 'Not connected'
|
25
|
-
return
|
26
|
-
end
|
27
|
-
|
28
|
-
while @network.connected
|
29
|
-
@network.processMessages
|
30
|
-
sleep(0.01)
|
31
|
-
end
|
32
|
-
|
33
|
-
logger.info 'Program end...'
|
34
|
-
@network.disconnect
|
35
|
-
end
|
36
|
-
end
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
require_relative 'board'
|
4
|
+
require_relative 'client_interface'
|
5
|
+
require_relative 'network'
|
6
|
+
|
7
|
+
# Klasse zum Starten einer neue Verbindung zum Spielserver und Verarbeiten der Nachrichten des Servers.
|
8
|
+
class Runner
|
9
|
+
include Logging
|
10
|
+
|
11
|
+
def initialize(host, port, client, reservation = nil)
|
12
|
+
logger.info 'Software Challenge 2022'
|
13
|
+
logger.info 'Ruby Client'
|
14
|
+
logger.info "Host: #{host}"
|
15
|
+
logger.info "Port: #{port}"
|
16
|
+
|
17
|
+
board = Board.new
|
18
|
+
@network = Network.new(host, port, board, client, reservation)
|
19
|
+
end
|
20
|
+
|
21
|
+
def start
|
22
|
+
@network.connect
|
23
|
+
unless @network.connected
|
24
|
+
logger.error 'Not connected'
|
25
|
+
return
|
26
|
+
end
|
27
|
+
|
28
|
+
while @network.connected
|
29
|
+
@network.processMessages
|
30
|
+
sleep(0.01)
|
31
|
+
end
|
32
|
+
|
33
|
+
logger.info 'Program end...'
|
34
|
+
@network.disconnect
|
35
|
+
end
|
36
|
+
end
|
@@ -1,25 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'typesafe_enum'
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'typesafe_enum'
|
4
|
+
|
5
|
+
# Erster oder zweiter Spieler:
|
6
|
+
#
|
7
|
+
# ONE
|
8
|
+
# TWO
|
9
|
+
#
|
10
|
+
# Zugriff z.B. mit Team::ONE
|
11
|
+
class Team < TypesafeEnum::Base
|
12
|
+
new :ONE, 'ONE'
|
13
|
+
new :TWO, 'TWO'
|
14
|
+
|
15
|
+
# @return [Team] Das Team, was nicht t ist.
|
16
|
+
def other_team(t)
|
17
|
+
if t == :ONE
|
18
|
+
:TWO
|
19
|
+
else
|
20
|
+
:ONE
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
# Konstanten zum aktuellen Spiel.
|
5
|
-
module Constants
|
6
|
-
ROUND_LIMIT = 30 # Rundenbegrenzung. Nach Ende der angegebenen Runde endet auch das Spiel.
|
7
|
-
GAME_IDENTIFIER = '
|
8
|
-
BOARD_SIZE = 8 # Seitenlänge des Spielbretts in Feldern
|
9
|
-
end
|
1
|
+
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Konstanten zum aktuellen Spiel.
|
5
|
+
module Constants
|
6
|
+
ROUND_LIMIT = 30 # Rundenbegrenzung. Nach Ende der angegebenen Runde endet auch das Spiel.
|
7
|
+
GAME_IDENTIFIER = 'swc_2023_penguins' # Der Identifikator des Spiels. Für die Kommunikation mit dem Spielserver.
|
8
|
+
BOARD_SIZE = 8 # Seitenlänge des Spielbretts in Feldern
|
9
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
module SoftwareChallengeClient
|
4
|
-
VERSION = '
|
5
|
-
end
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
module SoftwareChallengeClient
|
4
|
+
VERSION = '23.0.2'
|
5
|
+
end
|
@@ -1,25 +1,23 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module SoftwareChallengeClient
|
3
|
-
require 'software_challenge_client/board.rb'
|
4
|
-
require 'software_challenge_client/client_interface.rb'
|
5
|
-
require 'software_challenge_client/
|
6
|
-
require 'software_challenge_client/
|
7
|
-
require 'software_challenge_client/
|
8
|
-
require 'software_challenge_client/
|
9
|
-
require 'software_challenge_client/field.rb'
|
10
|
-
require 'software_challenge_client/game_rule_logic.rb'
|
11
|
-
require 'software_challenge_client/game_state.rb'
|
12
|
-
require 'software_challenge_client/
|
13
|
-
require 'software_challenge_client/
|
14
|
-
require 'software_challenge_client/
|
15
|
-
require 'software_challenge_client/
|
16
|
-
require 'software_challenge_client/
|
17
|
-
require 'software_challenge_client/
|
18
|
-
require 'software_challenge_client/
|
19
|
-
require 'software_challenge_client/
|
20
|
-
require 'software_challenge_client/
|
21
|
-
require 'software_challenge_client/
|
22
|
-
require 'software_challenge_client/
|
23
|
-
|
24
|
-
require 'software_challenge_client/version.rb'
|
25
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module SoftwareChallengeClient
|
3
|
+
require 'software_challenge_client/board.rb'
|
4
|
+
require 'software_challenge_client/client_interface.rb'
|
5
|
+
require 'software_challenge_client/condition.rb'
|
6
|
+
require 'software_challenge_client/coordinates.rb'
|
7
|
+
require 'software_challenge_client/debug_hint.rb'
|
8
|
+
require 'software_challenge_client/direction.rb'
|
9
|
+
require 'software_challenge_client/field.rb'
|
10
|
+
require 'software_challenge_client/game_rule_logic.rb'
|
11
|
+
require 'software_challenge_client/game_state.rb'
|
12
|
+
require 'software_challenge_client/invalid_move_exception.rb'
|
13
|
+
require 'software_challenge_client/logging.rb'
|
14
|
+
require 'software_challenge_client/move.rb'
|
15
|
+
require 'software_challenge_client/network.rb'
|
16
|
+
require 'software_challenge_client/piece.rb'
|
17
|
+
require 'software_challenge_client/player.rb'
|
18
|
+
require 'software_challenge_client/protocol.rb'
|
19
|
+
require 'software_challenge_client/runner.rb'
|
20
|
+
require 'software_challenge_client/team.rb'
|
21
|
+
require 'software_challenge_client/util/constants.rb'
|
22
|
+
require 'software_challenge_client/version.rb'
|
23
|
+
end
|
data/lib/update_client_module.sh
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
# This creates a entrypoint for the gem named 'software_challenge_client.rb'
|
3
|
-
# which includes all ruby files under lib. Making sure that everthing is
|
4
|
-
# included after some files were added or removed (in the process of updating
|
5
|
-
# the gem for a new game).
|
6
|
-
shopt -s globstar || exit 1
|
7
|
-
cd lib || exit 1
|
8
|
-
FILENAME='software_challenge_client.rb'
|
9
|
-
|
10
|
-
echo "# frozen_string_literal: true
|
11
|
-
module SoftwareChallengeClient" > $FILENAME
|
12
|
-
for file in software_challenge_client/**/*.rb; do
|
13
|
-
echo " require '${file}'"
|
14
|
-
done >> $FILENAME;
|
15
|
-
echo "end" >> $FILENAME
|
1
|
+
#!/bin/bash
|
2
|
+
# This creates a entrypoint for the gem named 'software_challenge_client.rb'
|
3
|
+
# which includes all ruby files under lib. Making sure that everthing is
|
4
|
+
# included after some files were added or removed (in the process of updating
|
5
|
+
# the gem for a new game).
|
6
|
+
shopt -s globstar || exit 1
|
7
|
+
cd lib || exit 1
|
8
|
+
FILENAME='software_challenge_client.rb'
|
9
|
+
|
10
|
+
echo "# frozen_string_literal: true
|
11
|
+
module SoftwareChallengeClient" > $FILENAME
|
12
|
+
for file in software_challenge_client/**/*.rb; do
|
13
|
+
echo " require '${file}'"
|
14
|
+
done >> $FILENAME;
|
15
|
+
echo "end" >> $FILENAME
|
data/push_image_production.sh
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
server=flut
|
4
|
-
docker build . -t sc-ruby
|
5
|
-
docker tag sc-ruby localhost:5000/sc-ruby
|
6
|
-
ssh -M -S ssh-ctrl-socket -fnNT -L 5000:localhost:5000 $server
|
7
|
-
ssh -S ssh-ctrl-socket -O check $server || exit 1
|
8
|
-
docker login localhost:5000 || exit 1
|
9
|
-
docker push localhost:5000/sc-ruby
|
10
|
-
ssh -S ssh-ctrl-socket -O exit $server
|
11
|
-
ssh $server 'sudo docker pull localhost:5000/sc-ruby'
|
12
|
-
ssh $server 'sudo docker tag localhost:5000/sc-ruby sc-ruby'
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
server=flut
|
4
|
+
docker build . -t sc-ruby
|
5
|
+
docker tag sc-ruby localhost:5000/sc-ruby
|
6
|
+
ssh -M -S ssh-ctrl-socket -fnNT -L 5000:localhost:5000 $server
|
7
|
+
ssh -S ssh-ctrl-socket -O check $server || exit 1
|
8
|
+
docker login localhost:5000 || exit 1
|
9
|
+
docker push localhost:5000/sc-ruby
|
10
|
+
ssh -S ssh-ctrl-socket -O exit $server
|
11
|
+
ssh $server 'sudo docker pull localhost:5000/sc-ruby'
|
12
|
+
ssh $server 'sudo docker tag localhost:5000/sc-ruby sc-ruby'
|
data/release.sh
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
#!/bin/sh
|
2
|
-
|
3
|
-
# This shell script automates the process of releasing a new gem version when
|
4
|
-
# running ruby in a docker container.
|
5
|
-
|
6
|
-
set -x # echo commands as they are executed
|
7
|
-
sudo chown -R root.root "$HOME/.ssh"
|
8
|
-
docker run -it --rm -v "$PWD":/usr/src/app -v "$HOME/.gitconfig":/root/.gitconfig -v "$HOME/.ssh":/root/.ssh -v "$HOME/.gem/credentials":/root/.gem/credentials -w /usr/src/app ruby:latest sh -c "bundle install --path vendor/bundle && bundle exec rake release"
|
9
|
-
sudo chown -R $USER.$USER "$HOME/.ssh"
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
# This shell script automates the process of releasing a new gem version when
|
4
|
+
# running ruby in a docker container.
|
5
|
+
|
6
|
+
set -x # echo commands as they are executed
|
7
|
+
sudo chown -R root.root "$HOME/.ssh"
|
8
|
+
docker run -it --rm -v "$PWD":/usr/src/app -v "$HOME/.gitconfig":/root/.gitconfig -v "$HOME/.ssh":/root/.ssh -v "$HOME/.gem/credentials":/root/.gem/credentials -w /usr/src/app ruby:latest sh -c "bundle install --path vendor/bundle && bundle exec rake release"
|
9
|
+
sudo chown -R $USER.$USER "$HOME/.ssh"
|
@@ -1,41 +1,41 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
# frozen_string_literal: true
|
3
|
-
lib = File.expand_path('../lib', __FILE__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require 'software_challenge_client/version'
|
6
|
-
|
7
|
-
Gem::Specification.new do |spec|
|
8
|
-
spec.name = 'software_challenge_client'
|
9
|
-
spec.version = SoftwareChallengeClient::VERSION
|
10
|
-
spec.authors = File.readlines('AUTHORS').select { |l| l[' <'] }.map { |l| l.match(/^(.*) *</)[1] }
|
11
|
-
spec.email = File.readlines('AUTHORS').select { |l| l[' <'] }.map { |l| l.match(/<(.*)>/)[1] }
|
12
|
-
|
13
|
-
spec.summary = 'Provides functions to build a client for the coding competition Software-Challenge Germany.'
|
14
|
-
spec.description = ''
|
15
|
-
spec.homepage = 'http://www.software-challenge.de'
|
16
|
-
|
17
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir = 'exe'
|
19
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = ['lib']
|
21
|
-
|
22
|
-
spec.required_ruby_version = '>= 2.5.5'
|
23
|
-
spec.add_dependency 'builder'
|
24
|
-
spec.add_dependency 'typesafe_enum'
|
25
|
-
|
26
|
-
spec.add_development_dependency 'bundler', '>= 1.10'
|
27
|
-
spec.add_development_dependency 'fuubar'
|
28
|
-
spec.add_development_dependency 'guard'
|
29
|
-
spec.add_development_dependency 'guard-rspec'
|
30
|
-
spec.add_development_dependency 'guard-rubocop'
|
31
|
-
spec.add_development_dependency 'pry'
|
32
|
-
spec.add_development_dependency 'pry-byebug'
|
33
|
-
spec.add_development_dependency 'pry-coolline'
|
34
|
-
spec.add_development_dependency 'pry-rescue'
|
35
|
-
spec.add_development_dependency 'rake', '>= 10.0'
|
36
|
-
spec.add_development_dependency 'rspec'
|
37
|
-
spec.add_development_dependency 'rubocop'
|
38
|
-
spec.add_development_dependency 'rubocop-rspec'
|
39
|
-
spec.add_development_dependency 'solargraph'
|
40
|
-
spec.add_development_dependency 'yard', '>= 0.8'
|
41
|
-
end
|
1
|
+
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
lib = File.expand_path('../lib', __FILE__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require 'software_challenge_client/version'
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = 'software_challenge_client'
|
9
|
+
spec.version = SoftwareChallengeClient::VERSION
|
10
|
+
spec.authors = File.readlines('AUTHORS').select { |l| l[' <'] }.map { |l| l.match(/^(.*) *</)[1] }
|
11
|
+
spec.email = File.readlines('AUTHORS').select { |l| l[' <'] }.map { |l| l.match(/<(.*)>/)[1] }
|
12
|
+
|
13
|
+
spec.summary = 'Provides functions to build a client for the coding competition Software-Challenge Germany.'
|
14
|
+
spec.description = ''
|
15
|
+
spec.homepage = 'http://www.software-challenge.de'
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
+
spec.bindir = 'exe'
|
19
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
+
spec.require_paths = ['lib']
|
21
|
+
|
22
|
+
spec.required_ruby_version = '>= 2.5.5'
|
23
|
+
spec.add_dependency 'builder'
|
24
|
+
spec.add_dependency 'typesafe_enum'
|
25
|
+
|
26
|
+
spec.add_development_dependency 'bundler', '>= 1.10'
|
27
|
+
spec.add_development_dependency 'fuubar'
|
28
|
+
spec.add_development_dependency 'guard'
|
29
|
+
spec.add_development_dependency 'guard-rspec'
|
30
|
+
spec.add_development_dependency 'guard-rubocop'
|
31
|
+
spec.add_development_dependency 'pry'
|
32
|
+
spec.add_development_dependency 'pry-byebug'
|
33
|
+
spec.add_development_dependency 'pry-coolline'
|
34
|
+
spec.add_development_dependency 'pry-rescue'
|
35
|
+
spec.add_development_dependency 'rake', '>= 10.0'
|
36
|
+
spec.add_development_dependency 'rspec'
|
37
|
+
spec.add_development_dependency 'rubocop'
|
38
|
+
spec.add_development_dependency 'rubocop-rspec'
|
39
|
+
spec.add_development_dependency 'solargraph'
|
40
|
+
spec.add_development_dependency 'yard', '>= 0.8'
|
41
|
+
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:
|
4
|
+
version: 23.0.2
|
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:
|
13
|
+
date: 2022-10-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: builder
|
@@ -284,20 +284,18 @@ files:
|
|
284
284
|
- lib/software_challenge_client.rb
|
285
285
|
- lib/software_challenge_client/board.rb
|
286
286
|
- lib/software_challenge_client/client_interface.rb
|
287
|
-
- lib/software_challenge_client/color.rb
|
288
287
|
- lib/software_challenge_client/condition.rb
|
289
288
|
- lib/software_challenge_client/coordinates.rb
|
290
289
|
- lib/software_challenge_client/debug_hint.rb
|
290
|
+
- lib/software_challenge_client/direction.rb
|
291
291
|
- lib/software_challenge_client/field.rb
|
292
292
|
- lib/software_challenge_client/game_rule_logic.rb
|
293
293
|
- lib/software_challenge_client/game_state.rb
|
294
|
-
- lib/software_challenge_client/has_hints.rb
|
295
294
|
- lib/software_challenge_client/invalid_move_exception.rb
|
296
295
|
- lib/software_challenge_client/logging.rb
|
297
296
|
- lib/software_challenge_client/move.rb
|
298
297
|
- lib/software_challenge_client/network.rb
|
299
298
|
- lib/software_challenge_client/piece.rb
|
300
|
-
- lib/software_challenge_client/piece_type.rb
|
301
299
|
- lib/software_challenge_client/player.rb
|
302
300
|
- lib/software_challenge_client/protocol.rb
|
303
301
|
- lib/software_challenge_client/runner.rb
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'typesafe_enum'
|
4
|
-
|
5
|
-
require_relative 'team'
|
6
|
-
|
7
|
-
# TODO 2022: Replace with bool?
|
8
|
-
# Die Spielsteinfarben. BLUE, und RED
|
9
|
-
class Color < TypesafeEnum::Base
|
10
|
-
new :BLUE, 'B'
|
11
|
-
new :RED, 'R'
|
12
|
-
|
13
|
-
# Gibt den color namen zurück
|
14
|
-
def to_s
|
15
|
-
self.key.to_s
|
16
|
-
end
|
17
|
-
|
18
|
-
# Gibt das zugehörige Team zurück
|
19
|
-
def to_t
|
20
|
-
if self.key == :RED
|
21
|
-
Team::ONE
|
22
|
-
else
|
23
|
-
Team::TWO
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module HasHints
|
3
|
-
# @!attribute [r] hints
|
4
|
-
# @return [Array<DebugHint>] Hinweise, die an den Zug angeheftet werden sollen. Siehe {DebugHint}.
|
5
|
-
attr_reader :hints
|
6
|
-
|
7
|
-
# @param hint [DebugHint]
|
8
|
-
def add_hint(hint)
|
9
|
-
@hints.push(hint)
|
10
|
-
end
|
11
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'typesafe_enum'
|
4
|
-
|
5
|
-
# Die Spielsteintypen. Herzmuschel, Möwe, Seestern und Robbe
|
6
|
-
class PieceType < TypesafeEnum::Base
|
7
|
-
new :Herzmuschel, 'C'
|
8
|
-
new :Moewe, 'G'
|
9
|
-
new :Seestern, 'S'
|
10
|
-
new :Robbe, 'R'
|
11
|
-
|
12
|
-
# @return [String] Gibt den color namen zurück
|
13
|
-
def to_s
|
14
|
-
self.key.to_s
|
15
|
-
end
|
16
|
-
end
|