KI-Client for the Quidditch Game.
In accordance to the standard, it is possible to change some options of the ki-client using command line arguments. For the application the following flags exist:
-a
/--address
set the address (ip or url) of the server (mandatory)-t
/--team
set the path to the TeamConfig JSON file (mandatory)-l
/--lobby
set the name of the lobby to join (optional, the default ishogwarts
)-u
/--username
set the name of the player (optional, the default isTeam10Ki
)-k
/--password
set the password used by the ki (optional, the default ispassword
)-h
/--help
show the help dialog and exit (optional)-p
/--port
set the port (the port needs to be larger0
and smaller65536
) (optional, the default value is4488
)-d
/--difficulty
set the difficulty of the KI (optional, the default0
)-v
/--verbosity
change the verbosity level, for more information on log-levels see SoPra-Team-10/Util (optional, the default value is0
)
You can choose between using Docker or manually installing all dependencies. Docker is the preferred method as it already installs the toolchain and all dependencies.
Get a prebuild Docker Image here or run:
docker pull soprateamzehn/ki
In the root directory of the project build the docker image ("ki" is the name of the container, this can be replaced by a different name):
docker build -t ki .
Now start the container, you need to map the internal port (8080 by default, to some external port 80 in this case) and map the external file (match.json) to an internal file:
docker run -t ki ./build/KI -a ADDRESS -p PORT -t teamConfig.json -l LOBBY -u USERNAME -k PASSWD -v 4
That's it you should now have a running docker instance.
If you need to debug the ki it can be easier to do this outside of docker.
- A C++17 compatible Compiler (e.g. GCC-8)
- CMake (min 3.10) and GNU-Make
- Adress-Sanitizer for run time checks
- SopraNetwork
- SopraGameLogic
- SopraMessages
- SopraUtil
- SopraAITools
- Either a POSIX-Compliant OS or Cygwin (to use pthreads)
- Optional: Google Tests and Google Mock for Unit-Tests
In the root directory of the project create a new directory (in this example it will be called build), change in this directory.
Next generate a makefile using cmake:
cmake ..
if any error occurs recheck the prerequisites. Next compile the program:
make
you can now run the ki by executing the created KI
file:
./KI
Log-Level | Color | Explanation |
---|---|---|
0 | - | No log messages |
1 | Red | Only error messages |
2 | Yellow | Error messages and warning |
3 | Blue | Error messages, warning and info messages |
4 | White | All messages (error, warning, info and debug) |
Das Analyseergebniss von SonarQube ist hier auf SonarCloud zu finden.