software_challenge_client 22.1.0.1 → 23.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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 -141
- data/lib/software_challenge_client/game_state.rb +57 -24
- 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: 2022-
|
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
|