111 lines
3.5 KiB
Plaintext
111 lines
3.5 KiB
Plaintext
{
|
|
"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
|
|
} |