README.md in software_challenge_client-1.2.1 vs README.md in software_challenge_client-19.0.0
- old
+ new
@@ -1,67 +1,105 @@
-# Software Challenge Client
+# Software-Challenge Client
This gem includes everything to build a client for the coding
competition [Software-Challenge](http://www.software-challenge.de).
+------------------------------------------------------------------------
+
+_Language:_ Most documentation will be in german language, because it is intended
+to be used by pupils taking part in the Software-Challenge programming
+competition. Only internal documentation is in english.
+
+------------------------------------------------------------------------
+
+_Sprache:_ Ein Grossteil der Dokumentation ist in deutscher Sprache verfasst, da
+sie dazu gedacht ist, von am Programmierwettbewerb Software-Challenge
+teilnehmenden Schülerinnen und Schülern gelesen zu werden. Interne Dokumentation
+ist weiterhin in englisch.
+
+------------------------------------------------------------------------
+
## Installation
-Add this line to your application's Gemfile:
+Um die Software-Challenge Bibliothek in deinem Computerspieler zu verwenden, füge folgende Zeile in das Gemfile deines Projektes ein:
-```ruby
-gem 'software_challenge_client'
-```
+ gem 'software_challenge_client'
-And then execute:
+Installiere das Gem dann mit dem Befehl:
$ bundle
-Or install it yourself as:
+Oder installiere das Gem ohne ein Gemfile mit:
$ gem install software_challenge_client
-## Usage
+## Verwendung
-See the example client in the example directory.
+Ein Beispielprojekt zur Verwendung der Bibliothek findet man im Verzeichnis `example` ([Beipspielprojekt auf GitHub](https://github.com/CAU-Kiel-Tech-Inf/socha_ruby_client/tree/master/example)).
-You can execute the example client by entering
+Du kannst den Beispielclient mittels
-```console
-ruby main.rb
-```
+ ruby main.rb
-in a shell (while being in the example directory). Note that the
-`software_challenge_client` gem needs to be installed for this to work and a
-server waiting for a manual client has to be running.
+in einer Konsole ausführen (dazu musst du dich im Verzeichnis `example` befinden).
-## Documentation
+Damit dies funktioniert, muss das Gem bereits wie oben beschrieben installiert
+sein und es muss ein Spielserver auf eine Verbindung warten (also zum Beispiel
+ein Spiel mit einem manuell gestarteten Spieler in der grafischen Oberfläche
+angelegt worden sein).
+Neben Beiwerk wie dem Initialisieren der Verbindung zum Spielserver und
+Verarbeiten der Startparameter (was beides in `main.rb` des Beispielprojektes
+passiert), musst du nur eine Klasse implementieren, um einen lauffähigen
+Computerspieler zu haben (`client.rb` im Beispielprojekt):
+
+ require 'software_challenge_client'
+
+ class Client < ClientInterface
+ include Logging
+
+ attr_accessor :gamestate
+
+ def initialize(log_level)
+ logger.level = log_level
+ logger.info 'Einfacher Spieler wurde erstellt.'
+ end
+
+ # gets called, when it's your turn
+ def move_requested
+ logger.info "Spielstand: #{gamestate.points_for_player(gamestate.current_player)} - #{gamestate.points_for_player(gamestate.other_player)}"
+ move = best_move
+ logger.debug "Zug gefunden: #{move}" unless move.nil?
+ move
+ end
+
+ def best_move
+ gamestate.possible_moves.sample
+ end
+ end
+
+## Generating the Documentation
+
Code documentation can be generated using YARD in the project root (source code
needs to be checked out and `bundle` has to be executed,
see [Installation](#installation)):
-```console
-yard
-```
+ yard
After generation, the docs can be found in the `doc` directory. Start at
`index.html`.
Documentation for the latest source can also be found
on
[rubydoc.info](http://www.rubydoc.info/github/CAU-Kiel-Tech-Inf/socha_ruby_client).
When updating the docs, you may use
-```console
-yard server --reload
-```
+ yard server --reload
or inside a docker container
-```console
-yard server --reload --bind 0.0.0.0
-```
+ yard server --reload --bind 0.0.0.0
to get a live preview of them at [http://localhost:8808](http://localhost:8808).
## Development