{"id":64436,"date":"2025-03-09T14:24:45","date_gmt":"2025-03-09T13:24:45","guid":{"rendered":"https:\/\/www.herr-rau.de\/wordpress\/?p=64436"},"modified":"2025-03-15T09:56:49","modified_gmt":"2025-03-15T08:56:49","slug":"greenfoot-reinforcement-learning-meine-beispielprojekte","status":"publish","type":"post","link":"https:\/\/www.herr-rau.de\/wordpress\/2025\/03\/greenfoot-reinforcement-learning-meine-beispielprojekte.htm","title":{"rendered":"Greenfoot Reinforcement Learning: jetzt \u00fcber Git verf\u00fcgbar"},"content":{"rendered":"<div style='text-align:right;'><small>(<a href='https:\/\/www.herr-rau.de\/wordpress\/2025\/03\/greenfoot-reinforcement-learning-meine-beispielprojekte.htm#comments'>8 Kommentare.<\/a>)<\/small> <\/div>\n<p>Ich habe jetzt endlich mein Greenfoot-Reinforcement-Material (siehe <a href=\"https:\/\/www.herr-rau.de\/wordpress\/2023\/03\/ki-reinforcement-learning-4-autofahren.htm\">alter Blogeintrag,<\/a> und die davor) aufger\u00e4umt, vereinfacht und dokumentiert. Das habe ich zwar schon <a href=\"https:\/\/www.herr-rau.de\/wordpress\/2025\/03\/kw-9-briefwahl-snakebots-dorian-hawkmoon.htm\">vor ein Tagen verk\u00fcndet<\/a>, aber jetzt gilt es wirklich. Und zwar ich habe das ganze Projekt nach <s>Github<\/s> Codeberg verlegt:<\/p>\n\n\n\n<p><a href=\"https:\/\/codeberg.org\/HerrRau\/GreenfootReinforcementLearning\/#readme\">https:\/\/codeberg.org\/HerrRau\/GreenfootReinforcementLearning\/#readme<\/a><\/p>\n\n\n\n<p>Dort kann ich meine Verbesserungen aktuell halten und die Anleitung st\u00e4ndig erweitern. Sie beginnt so:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Das hier ist ein Greenfoot-Projekt mit mehreren eigentlich voneinander unabh\u00e4ngigen rudiment\u00e4ren Spielen: Ein einfaches <strong>Breakout,<\/strong> ein einfacheres <strong>Autorennen<\/strong>, ein <strong>Snake<\/strong>. Sie sind alle deshalb in einem Projekt, weil sie alle die gleiche zus\u00e4tzliche Infrastruktur nutzen, um n\u00e4mlich automatisierte Bots alleine oder gegeneinander spielen zu lassen. Diese Bots k\u00f6nnen durch KI-Agenten gesteuert werden (Reinforcement Learning) oder, insbesondere bei Snake, auch einen einfachen Algorithmus verwenden, wie er von Sch\u00fclern oder Sch\u00fclerinnen entwickelt werden k\u00f6nnte.<\/p>\n<\/blockquote>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Man kann sich das Greenfoot-Projekt herunterladen, und dann erst einmal einfache Versionen von Breakout, primitivem Autorennen und Snake spielen. <\/li>\n\n\n\n<li>Dann kann man die vorgegebenen KI-L\u00f6sungen f\u00fcr diese Spiele ausprobieren. <\/li>\n\n\n\n<li>Dann kann man den Rest der Anleitung lesen und versuchen herauszufinden, wie das \u00fcberhaupt alles funktioniert, erl\u00e4utert an einem Minimalbeispiel. <\/li>\n\n\n\n<li>Und zuletzt gibt es ein Beispiel f\u00fcr ein Labyrinth-Minispiel, f\u00fcr das es noch keine KI-L\u00f6sung gibt &#8211; die kann man dann selber zu schreiben versuchen, unterst\u00fctzt durch die Kommentare im Code.<\/li>\n<\/ol>\n\n\n\n<p>(Warum Github? Weil ich da schon ein Konto habe. Gerne ziehe ich anderswohin um; laut Informatik-Lehrplan der Oberstufe sollen die Sch\u00fcler und Sch\u00fclerinnen mit Versionsverwaltung arbeiten, das Kultusministerium stellt aber keine Infrastruktur zur Verf\u00fcgung, sprich: einen git-Server. K\u00f6nnte man da nicht etwas mit ByCS machen? Immerhin war neulich die Rede davon, dass die Schulen sich bald ministeriell gepr\u00fcfte L\u00f6sungen daf\u00fcr kaufen d\u00fcrfen. <em>Nachtrag: Probiere gerade Codeberg aus.)<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"362\" height=\"482\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/breakout.png\" alt=\"\" class=\"wp-image-64442\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/breakout.png 362w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/breakout-225x300.png 225w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/breakout-113x150.png 113w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"600\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/snakes_kurz.gif\" alt=\"\" class=\"wp-image-64446\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"508\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/ki_auto_sensor_strecke1.gif\" alt=\"\" class=\"wp-image-24253\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"514\" src=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/mazeGame-700x514.png\" alt=\"\" class=\"wp-image-64441\" srcset=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/mazeGame-700x514.png 700w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/mazeGame-300x220.png 300w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/mazeGame-150x110.png 150w, https:\/\/www.herr-rau.de\/wordpress\/archiv\/mazeGame.png 752w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/figure>\n\n\n\n<p>Die Farbgebung beim Labyrinth ist bewusst gew\u00e4hlt; man k\u00f6nnte das Spiel ja noch erweitern (Wizard of Wor, wer&#8217;s noch kennt). Aber die KI tut sich schon jetzt bei vielen Settings nicht leicht, vielleicht ist auch hier ein stupider Algorithmus besser als ein k\u00fcnstlich intelligenter.<\/p>\n\n\n\n<p>Im Moment sitze ich noch beim Training f\u00fcr eine einfache Rohversion von <em>Tron: Deadly Discs<\/em>. Und selbst auf einer arg reduzierten Miniwelt der Gr\u00f6\u00dfe 18 x 12 dauert der Lernvorgang sehr, sehr lange &#8211; da merkt man richtig, wie viele Ressourcen so ein Training erfordert.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>(8 Kommentare.) Ich habe jetzt endlich mein Greenfoot-Reinforcement-Material (siehe alter Blogeintrag, und die davor) aufger\u00e4umt, vereinfacht und dokumentiert. Das habe ich zwar schon vor ein Tagen verk\u00fcndet, aber jetzt gilt es wirklich. Und zwar ich habe das ganze Projekt nach Github Codeberg verlegt: https:\/\/codeberg.org\/HerrRau\/GreenfootReinforcementLearning\/#readme Dort kann ich meine Verbesserungen aktuell halten und die Anleitung st\u00e4ndig [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":64441,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[25],"tags":[227,233],"class_list":["post-64436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatik","tag-informatik","tag-programmierprojekte"],"jetpack_featured_media_url":"https:\/\/www.herr-rau.de\/wordpress\/archiv\/mazeGame.png","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/64436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/comments?post=64436"}],"version-history":[{"count":3,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/64436\/revisions"}],"predecessor-version":[{"id":64491,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/64436\/revisions\/64491"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media\/64441"}],"wp:attachment":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media?parent=64436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/categories?post=64436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/tags?post=64436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}