123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- {
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Software Entwicklung\n",
- "\n",
- "## Kapitel 11: Bots\n",
- "\n",
- "### 11.2 Bot-Server\n",
- "\n",
- "Die wilde Welt des Donut-Planten wird von einem Bot-Server simuliert, der die Aktionen des Bots\n",
- "entgegennimmt und eine aktualisierte Welt zurückliefert. In einer Wettkampfsituation wird dieser\n",
- "Server von der Wettkampfleitung zur Verfügung gestellt, während der Entwicklung sollte jeder aber\n",
- "seinen eigenen Bot-Server nutzen können. In diesem Jupyter-Notebook wird erläutert, wie ein\n",
- "eigener Bot-Server gestartet werden kann."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "#### 11.2.1 Lösungsansatz\n",
- "Der Bot-Server ist ein C-Programm, das von Leuten bei [KURZ Digital](https://www.kurzdigital.com/)\n",
- "entwickelt und gepflegt wird. Der Quellcode ist Open Source und\n",
- "auf [Github](https://github.com/markusfisch/bots.git) verfügbar. Dort findet sich auch eine\n",
- "Anleitung zu den Optionen des Bot-Servers.\n",
- "\n",
- "Im Moodle-Kurs werden ausführbare Programmdateien der\n",
- "Serversoftware für alle notwendigen Betriebssysteme zum\n",
- "Download bereitgestellt."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "#### 11.2.2 Starten des Bot-Servers\n",
- "\n",
- "Nach der Installation kann die Serversoftware über einen\n",
- "Kommandozeilenbefehl im Installationsverzeichnis gestartet werden.\n",
- "\n",
- "<code>./bots </code>\n",
- "\n",
- "Das Ergebnis ist die Anzeige der möglichen Betriebsmodi des\n",
- "Servers und deren Optionen. Der\n",
- "Port, auf dem der Server lauscht, besitzt standardmäßig die\n",
- "Portnummer 63187.\n",
- "\n",
- "<code>port to listen for players, default is 63187 </code>"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "#### 11.2.3 Starten im Trainingsmodus und Verbinden eines Bots\n",
- "\n",
- "Der Bot-Server besitzt einen Trainingsmodus, in dem\n",
- "man seinen Bot ohn konkrete Aufgabe über die Oberfläche\n",
- "manövrieren kann.\n",
- "\n",
- "<code>./bots training</code>\n",
- "\n",
- "Nach dem Start wartet der Server, dass sich ein Client verbindet.\n",
- "\n",
- "<code>waiting for players (at least 1) to join ...</code>\n",
- "\n",
- "Das Client-Skript, das den Bot auf dem Donut steuert, soll dann als\n",
- "separates Python-Skript erstellt werden.\n",
- "Die Verbindungsdaten, die für die Kontaktaufnahme notwendig sind,\n",
- "sind die IP-Nummer des Servers (hier: *localhost* 127.0.0.1) und der Port 63187."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "pycharm": {
- "name": "#%% md\n"
- }
- },
- "source": [
- "Um die Vorgehensweise bei der Clientprogrammierung zu verdeutlichen,\n",
- "wird [hier](112%20Botclient.ipynb) ein grundlegender Client gezeigt,\n",
- "der von den Kursteilnehmern als Start für eigene Implementierungen herangezogen werden kann."
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.8.2"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
- }
|