Dateien hochladen nach „“
This commit is contained in:
parent
e7cd8b28c5
commit
7719bfa838
111
111 Botserver.ipynb
Normal file
111
111 Botserver.ipynb
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
{
|
||||||
|
"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
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user