You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 Botserver.ipynb 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "# Software Entwicklung\n",
  8. "\n",
  9. "## Kapitel 11: Bots\n",
  10. "\n",
  11. "### 11.2 Bot-Server\n",
  12. "\n",
  13. "Die wilde Welt des Donut-Planten wird von einem Bot-Server simuliert, der die Aktionen des Bots\n",
  14. "entgegennimmt und eine aktualisierte Welt zurückliefert. In einer Wettkampfsituation wird dieser\n",
  15. "Server von der Wettkampfleitung zur Verfügung gestellt, während der Entwicklung sollte jeder aber\n",
  16. "seinen eigenen Bot-Server nutzen können. In diesem Jupyter-Notebook wird erläutert, wie ein\n",
  17. "eigener Bot-Server gestartet werden kann."
  18. ]
  19. },
  20. {
  21. "cell_type": "markdown",
  22. "metadata": {},
  23. "source": [
  24. "#### 11.2.1 Lösungsansatz\n",
  25. "Der Bot-Server ist ein C-Programm, das von Leuten bei [KURZ Digital](https://www.kurzdigital.com/)\n",
  26. "entwickelt und gepflegt wird. Der Quellcode ist Open Source und\n",
  27. "auf [Github](https://github.com/markusfisch/bots.git) verfügbar. Dort findet sich auch eine\n",
  28. "Anleitung zu den Optionen des Bot-Servers.\n",
  29. "\n",
  30. "Im Moodle-Kurs werden ausführbare Programmdateien der\n",
  31. "Serversoftware für alle notwendigen Betriebssysteme zum\n",
  32. "Download bereitgestellt."
  33. ]
  34. },
  35. {
  36. "cell_type": "markdown",
  37. "metadata": {},
  38. "source": [
  39. "#### 11.2.2 Starten des Bot-Servers\n",
  40. "\n",
  41. "Nach der Installation kann die Serversoftware über einen\n",
  42. "Kommandozeilenbefehl im Installationsverzeichnis gestartet werden.\n",
  43. "\n",
  44. "<code>./bots </code>\n",
  45. "\n",
  46. "Das Ergebnis ist die Anzeige der möglichen Betriebsmodi des\n",
  47. "Servers und deren Optionen. Der\n",
  48. "Port, auf dem der Server lauscht, besitzt standardmäßig die\n",
  49. "Portnummer 63187.\n",
  50. "\n",
  51. "<code>port to listen for players, default is 63187 </code>"
  52. ]
  53. },
  54. {
  55. "cell_type": "markdown",
  56. "metadata": {},
  57. "source": [
  58. "#### 11.2.3 Starten im Trainingsmodus und Verbinden eines Bots\n",
  59. "\n",
  60. "Der Bot-Server besitzt einen Trainingsmodus, in dem\n",
  61. "man seinen Bot ohn konkrete Aufgabe über die Oberfläche\n",
  62. "manövrieren kann.\n",
  63. "\n",
  64. "<code>./bots training</code>\n",
  65. "\n",
  66. "Nach dem Start wartet der Server, dass sich ein Client verbindet.\n",
  67. "\n",
  68. "<code>waiting for players (at least 1) to join ...</code>\n",
  69. "\n",
  70. "Das Client-Skript, das den Bot auf dem Donut steuert, soll dann als\n",
  71. "separates Python-Skript erstellt werden.\n",
  72. "Die Verbindungsdaten, die für die Kontaktaufnahme notwendig sind,\n",
  73. "sind die IP-Nummer des Servers (hier: *localhost* 127.0.0.1) und der Port 63187."
  74. ]
  75. },
  76. {
  77. "cell_type": "markdown",
  78. "metadata": {
  79. "pycharm": {
  80. "name": "#%% md\n"
  81. }
  82. },
  83. "source": [
  84. "Um die Vorgehensweise bei der Clientprogrammierung zu verdeutlichen,\n",
  85. "wird [hier](112%20Botclient.ipynb) ein grundlegender Client gezeigt,\n",
  86. "der von den Kursteilnehmern als Start für eigene Implementierungen herangezogen werden kann."
  87. ]
  88. }
  89. ],
  90. "metadata": {
  91. "kernelspec": {
  92. "display_name": "Python 3",
  93. "language": "python",
  94. "name": "python3"
  95. },
  96. "language_info": {
  97. "codemirror_mode": {
  98. "name": "ipython",
  99. "version": 3
  100. },
  101. "file_extension": ".py",
  102. "mimetype": "text/x-python",
  103. "name": "python",
  104. "nbconvert_exporter": "python",
  105. "pygments_lexer": "ipython3",
  106. "version": "3.8.2"
  107. }
  108. },
  109. "nbformat": 4,
  110. "nbformat_minor": 2
  111. }