Unser KI Wettbewerb - Eigene KIs in Games - podcast episode cover

Unser KI Wettbewerb - Eigene KIs in Games

Feb 29, 202441 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

Willkommen bei den Coding Buddies! In der neuen Folge sprechen wir über unseren aktuellen KI-Wettbewerb zum Spiel "4 Gewinnt" und berichten von unseren Erfahrungen bezüglich der Entwicklung von Bots. Natürlich geben wir dir auch einige Ansätze mit, sodass du perfekt in das Turnier starten kannst! Hat dir die Folge gefallen? Dann folge uns doch zusätzlich auf unseren anderen Plattformen oder schau auf unserer Website vorbei: GitHub Repository vom KI-Wettbewerb: https://www.github.com/TheCodingBuddies/Connect4_Tournament/ Discord: https://discord.gg/C2Zntw6Sq4 Instagram: https://www.instagram.com/the_coding_buddies Youtube: https://www.youtube.com/@thecodingbuddies Twitch: https://www.twitch.tv/thecodingbuddies TikTok: https://www.tiktok.com/@thecodingbuddies Du hast Feedback für uns? Kontaktiere uns doch per Mail: [email protected]

Transcript

Und dann so OK. Wie sieht das aus? Na ja, Mario läuft jetzt absolut wie auf der World, das schnell mal raus. Dein Podcast wohnt um Softwareentwicklung und aktueller Technews. Herzlich Willkommen. Was? Halli Hallo und herzlich Willkommen zur neuen Folge des Coding Bodys Podcasts. Schön, dass ihr wieder eingeschaltet hast. Damit sind wir alle 3 wieder

zusammen. Meine Wenigkeit Tino, du liebe Zuhörerin, lieber Zuhörer und natürlich auch wieder mal an meiner Seite der fantastische Fabi Moin Fabi, Grüße dich Hey Tino Grüße dich was geht ab? Was geht denn ab? Was geht denn ab? Sag was geht ab? Neue Podcast Folge Neue Podcast Folge Genau und ich habe auch ein spannendes Thema mitgebracht, aber lass kurz noch checken ob alles startklar ist. Hast du einen Kaffee? Ich. Habe einen Kaffee gut.

Ich auch. Der ist zwar nicht mehr ganz so viel drin, weil wir jetzt uns ein bisschen verquatscht haben im Vorfeld, aber es muss reichen. Ich denke, das wird so eine 5 Minuten folge. Sie ist alle entschuldigt mich kurz. Und ich würd sagen, deswegen lass uns keine Zeit verlieren, bevor der Kaffee wirklich schon alles bevor das Thema losgeht. Ich hab n Thema mitgebracht, ich hoffe du hast da Bock drauf, ich werde es mal ganz kurz erläutern.

Und zwar haben wir letzte Woche. Unseren KI Wettbewerb gestartet. Dazu möchte ich kurz ausholen. Liebe zuhören lieber Zuhörer, falls du nicht weißt wovon ich rede. Wir haben ja auf Instagram einen Grundlagenkurs gemacht, um so den Einstieg in die Softwareentwicklung zu erleichtern und so die Basics richtig zu vermitteln. Das ganze Jahr in Java und Python.

Und haben uns gedacht, Na ja, gut, jetzt wo der Kurs zu Ende ist, muss es ja oder wäre es cool, wenn es noch so ne Art abschlussaufgabe gibt, wo man denn das Gelernte anwenden kann und da haben wir fabi uns ja entschieden dafür ein Spiel zu entwickeln und zwar ein einfaches 4 gewinnt, weil wir dachten, das müsste eigentlich auch jeder so aus der Jugend oder Kindheit kennen, wo man so die Steine von oben reinschmeißt und quasi gegen einen anderen spielt und gewonnen hat, wenn 4

in einer Reihe übereinander oder diagonal zusammenkommen, richtig? Das sind so die internationalen, europaweiten Standard regeln. So spielt man das so.

Spielt man das? Alles andere, sind nicht die offiziellen Regeln und genau, und da haben wir eine Schnittstelle eingebaut, dass man ein Bot KI entwickeln kann, die quasi für einen spielt, nach einem Algorithmus, den ein Mann entworfen hat, und das ist die Abschlussaufgabe und das Ganze haben wir jetzt letzte Woche gelauncht, das heißt, wir haben.

Den Code zur Verfügung gestellt mit dem Spiel das Ganze auf einem Repository hochgeladen und ja, man kann das jetzt quasi sich ziehen, auschecken und die KI für den Spieler entwickeln. Genau also da findet man auch noch genauere Informationen, auch zum Beispiel bei Instagram oder auch auf unserer Homepage. Genau www.codingbuddies.de mal kurz angemerkt genau, ist aber. Auch natürlich in den Shownotes dann drin.

Genau und also der Kurs ist ja im Endeffekt sag ich jetzt mal eine Komposition aus Posts zu entsprechenden Themen, die wir ausgewählt haben für den Grundkurs genau, und wenn jetzt zum Beispiel jemand sagt, Hey, das ist ja irgendwie cool. Dann guckt doch einfach mal rein. Muss man allerdings natürlich jetzt mittlerweile ein bisschen im Feed von uns runter scrollen. Genau das ist schon ne Menge zusammengekommen über die letzten Monate.

Ja zu dem Wettbewerb noch ganz kurz, der läuft bis zum 31.3.

Also falls du jetzt, liebe Zuhörer, lieber Zuhörer, Bock bekommen hast, quasi eine KI für dieses Spiel zu entwickeln und gegen andere aus der Community anzutreten, das heißt gegen deren KIS, wir werden nach dem 31 03, das ist der einsendestop du kannst dich auf eine Plattform bei uns melden und uns deinen Code zukommen lassen, werden wir ein Turnier live auf Twitch austragen, nicht wahr, Fabi, das wird richtig geil und dann werden wir live quasi das Turnier.

Durchführen und den Gewinner ermitteln. Genau. Also es gibt auch auf jeden Fall was zu gewinnen. Für alle, die sozusagen nicht den ersten Platz belegen, gibt es natürlich auch was zu gewinnen und zwar ne jede Menge Erfahrung, weil das ist ja im Endeffekt eigentlich so, dass Hauptaugenschlag. Jetzt ein bisschen wie der Trostpreis, aber das ist natürlich absolut der Grund dahinter.

Da. Klingt immer total abgedroschen, aber im Endeffekt soll es ja wirklich dazu dienen, was zu lernen, weil wir sagen ja immer, Übung macht den Meister beziehungsweise die Meisterin, um das Ganze auch komplett zu machen und das ist halt wichtig. Und aus den Gründen haben wir uns überlegt, OK, was könnten wir denn genau machen und gerade solche Spiele zum Beispiel sind halt eben natürlich. Sage ich jetzt mal durch etwas mehr Spaß als irgendwas.

Ganz stumpfes, Langweiliges, sozusagen immer ein bisschen bisschen spaßiger. Einfach auch dieses diesen Lerneffekt zu haben. Das heißt, natürlich soll hier der Spaß im Vordergrund stehen und nicht irgendwie.

Weiß ich nicht. Die Angst, dass man vor anderen verliert, sondern einfach, man soll da einfach Spaß haben, einfach probieren, auch wenn man sich zum Beispiel sagt, bei Instagram hatten wir auch so eine kleine Umfrage gemacht, da haben auch einige gesagt, dass sie sich vielleicht noch nicht so richtig bereit dazu fühlen, so einen Bot zu schreiben.

Das Ganze zielt darauf ab, dass man theoretisch mit dem Wissen von dem Grundkurs es schafft, einen solchen Bot zu schreiben, der für einen das Spiel 4 gewinnt, spielen kann. Und es geht im Endeffekt darum, genau eine Funktion zu implementieren. Und. Quasi Platz für. Man kann natürlich eigene Funktionen noch dazu schreiben, ist ja klar, aber im Großen und Ganzen geht es genau darum, eine Funktion zu implementieren. Alles drumherum ist quasi da und muss nicht gemacht werden.

Genau und wie gesagt, auf den auf unserer Website gibt es noch weitere Infos dazu. Auch Hilfestellungen, wie man das Ganze startet, welche Funktion zu implementieren ist und ja wie man quasi ins Doing kommt, denn diesen Algorithmus zu entwerfen und was ich da nochmal ergänzen möchte oder was ich halt auch cool daran finde ist, es ist halt eine definierte Aufgabe, es ist klar, was zu tun ist.

Man kann sich vorstellen. Was zu tun ist, also quasi, was das Ziel ist und was sich dabei immer ganz cool findet, ist, dass du ein sofortiges Feedback bekommst, weil du kannst ja, denn das Spiel mit deinem Bot starten und siehst ja, was deine Ki oder dein Bot tut und das finde ich halt irgendwie ganz cool. Du kriegst halt so ein Instant Feedback und es macht halt Spaß und dann kannst du ja auch gegen dich selbst spielen, also quasi gegen deinen Board und so das.

Das macht auf jeden Fall Spaß, denn daran rumzuentwickeln und sich zu überlegen, wie könnte denn so eine Strategie so n Algorithmus aussehen? Wir haben ja auch n kleinen, wir haben ja auch n Client entwickelt, auch in dem entsprechenden Repo platziert, dass man auch die Möglichkeit

hat. Manuell zu spielen, das heißt, man kann theoretisch sagen, also ich könnt mich jetzt hinstellen und sagen, OK, ich schreib jetzt meine eigenen, meinen eigenen Bot, der sozusagen dann das Spiel spielt und ich persönlich trete gegen ihn an und einfach rum, zum Beispiel mal zu gucken. Wäre es besser ich oder ich? Ich oder ich, meine KI oder ich? Genau. Ja, so viel mal n bisschen

Eigenwerbung dazu. Also wie gesagt Check das gerne mal aus Liebe zuhören lieber Zuhörer und nehm auf jeden Fall dran Teil, das wird n Riesenspaß. Was aber so n bisschen das Thema ist, wir haben quasi diesen Wettbewerb und ich würde halt gern mal noch mal so n bisschen motivieren, wie man das Ganze angehen könnte. Vielleicht auch so ein 2 Gedanken Richtung

Implementierung bringt. Vorweg würde ich aber gerne noch mal n bisschen in die Vergangenheit mit dir reisen, weil es gibt ja n Grund, warum wir uns für n Spiel entschieden haben. Und zwar hatten wir das haben wir glaub ich im Podcast auch schon mal erwähnt oder zumindestens in Twitch haben wir schon mal darüber gesprochen. Also auf Twitch quasi in der Live Session.

Und zwar hatten wir damals im zweiten Semester ja auch eine Programmieraufgabe, wo wir eine KI für ein Mario Ableger schreiben sollten, das heißt auch quasi. Ein Bot, der für uns Mario steuert und hoffentlich Heiler durchs Level bringt. Und genau diese genannten Punkte, man kriegt sofort n Feedback, man sieht wie er sich verhält. Das waren halt damals auch Punkte, die ich halt total spaßig daran fand.

Das war nicht einfach, aber es war echt ne Challenge, an der man gewachsen ist und man halt auch so diesen Fortschritt gesehen hat, so sagen wir mal die ersten 10 der bekannteste. Hörner hast du 2 geschafft, dann hat dein Bottom von 3 geschafft 4 und so und dann hast du gemerkt, EY, der wird wirklich besser. Weißt du was ich mein? Also das das ist halt so n cooler Progress den man da sehen kann und genauso könnte man ja bei unserem Wettbewerb dann

merken Hey schau mal. Am Anfang musste ich quasi nur 4 Züge machen, da hab ich mein Bot geschlagen und jetzt wird's langsam echt knackig als menschlicher Spieler diese KI zu besiegen, das wäre ja irgendwie auch ein cooler Progress so.

Wie war denn das also, wenn du dich zurückversetzt und du kriegst jetzt genauso wie unsere Community diese Aufgabe vorgesetzt und denkst dir so, ich sag mal damals wir im zweiten Semester und Leute, die jetzt so unseren Kurs durchgeackert haben, das ist ja schon ein sehr ähnliches Niveau

dann. Wie siehst du das also, wie bist du das angegangen, was waren deine Emotionen, deine Gefühle, wenn du dich da nochmal zurückversetzt, das würde mich mal interessieren, weil vielleicht findet sich da denn der eine oder andere wieder. Also ich fand es damals gar nicht so. Spaßig in dem Sinne, weil es halt eben nur ne Prüfungszulassung ging. Ja gut, das fällt bei uns aus. Alle anderen dürfen ganz normal

weitermachen. Aber ich weiß auf jeden Fall, dass ich mir damals dachte, OK, du musst es halt machen, ne.

Also es ist jetzt nicht so, dass man dass, dass ich mir damals sagt, okay ich habe diese Wahl mehr oder weniger schon klar habe ich die Wahl getroffen, das Studium zu machen, aber in dem Fall war es dann so okay wenn du durch dieses Fach willst, musst du eine Kleine, einen kleinen bot, eine kleine KI schreiben, die das für dich macht und ja, ganz am Anfang, da war ich halt schon, also da habe ich ziemlich in der Luft gehangen, weil ich

einfach programmiertechnisch noch nicht so weit war einfach. Und wir waren ja damals auch schon so weit, dass es auch in Richtung Objektorientierung ging. Das ist ja jetzt hier noch gar nicht notwendig, dieses Wissen an der Stelle, das heißt, man kann es natürlich benutzen, wenn man es hat, aber wenn man es nicht hat, ist es nicht unbedingt notwendig, das ist halt an der Stelle nicht

verkehrt. Das war zum Beispiel n Punkt, der mir damals bei dem KI Wettbewerb oder bei diesem Mario Ableger eben n bisschen im Weg stand. Und ich hab mich dann mühselig, sag ich jetzt mal da rein gequält, um dann zu gucken, OK, wie kann ich denn zum Beispiel springen, wenn ein Abgrund kommt oder was muss ich tun oder was für Möglichkeiten hab ich denn zum Beispiel um zu sehen. Wann der nächste Abgrund da ist oder wann irgendwie n Gegner

kommt oder was auch immer. Ne das Waren für mich schon mal so die ersten Schwierigkeiten damals. Und da hab ich auch echt ganz schön mit zu knabbern gehabt, weil ich hab echt lange und viel überlegt und probiert. Aber genau das ist halt der Knackpunkt.

Also man überlegt natürlich am Anfang also ich hab zum Beispiel einfach zu krass diesen diesen bot sozusagen overfitted weißt du ich also ich kann mich noch erinnern wie du meintest, so man kennt ja ein paar Level und dann wurden die glaube ich generiert, das heißt dein Mario Deine Mario Logik musste sozusagen auch mit. Sachen klarkommen, die eigentlich noch gar nicht, die

man noch nicht kannte. Und ich hab dann einfach so weit den glaube ich überfitted, dass also Überfitted bedeutet ja im Endeffekt, dass ich quasi bestimmte Level genommen habe und mir dachte okay dann und dann muss ich dies und jenes tun, einfach nur um das war so der Lernprozess und habe dann aber gemerkt, dass ich damit gar nicht gut weiter komme, das wäre ja zum Beispiel bei 4 gewinnen, dass man zum Beispiel sagt okay, ich weiß ganz genau, was zu tun ist, wenn der Gegenspieler

sozusagen in die erste Spalte wirft, aber ich habe gar keine Ahnung, was ich tun sollte, wenn er eine 2. Reihe wirft, weiß ich meine. Jaja. Also so diese Eventualitäten und hab dann quasi ja auch tatsächlich echt krass den Kopf zerbrochen. Wie könnte ich das machen? Und ich muss ganz ehrlich sagen, eigentlich lief es nicht gut. Die Sache an sich. Bis ich halt irgendwann. Ich glaub wir haben auch dann

uns darüber unterhalten. Und ne, also ich sag mal zweites Semester haben wir uns ja auch schon so n bisschen kennengelernt, so richtig. Sind wir natürlich erst übers Studium zusammengewachsen als Freunde. Aber Fakt ist auf jeden Fall, dass wir uns ja unterhalten haben und. Wir ja dann auch ähnliche Ansätze verfolgt haben. Möchtest du vielleicht mal sagen, was wir da so für n Ansatz dann verfolgt haben? Wahrscheinlich das war ja sehr ähnlich.

Ja. Was ich erstmal spannend finde ist also ist n cooles Learning was du gerade genannt hast, was wir vielleicht noch mal so n bisschen heraus kristallisieren sollten und zwar das Overfitting. Echt n reales Problem ist man nicht in diese Falle tappen darf, dass man so versucht seinen Algorithmus so spezifisch

an Situationen anzupassen. Dass man mal, blöd gesagt, das erste Spiel gewinnt und danach alle verliert, weil halt diese Situation, sozusagen die Wiedereintritt, jetzt mal auf unseren Wettbewerb gemünzt oder halt bei Mario das erste Level läufst, du dadurch bist der Beste, der schnellste und danach verlierst du jedes Level und stirbt gleich ersten Abgrund oder so. Weißt du also Overfitting ist auf jeden Fall ein reales Problem bei bei so Bots und KI s. Was ich hatte.

Und weil du gefragt hast, was wir am Ende gemacht haben, bevor wir zu unserem finalen Ansatz gekommen sind, hatte ich nämlich ein anderes Problem, was sich auch mal herausstechen herauskristallisieren möchte, ist, und zwar einfach zu kompliziert denken, was auch so ein bisschen dieses Overfitting ist, aber quasi direkt. Irgendwie versuchen, ultimativ komplizierten Algorithmus zu entwerfen, der übermächtig ist. So gefühlt. Weil das hat bei mir alles da

gar nicht funktioniert. Ich hatte halt angefangen, so ja keine Ahnung, hab mal irgendwas von von Pfadfindung gehört, Vorausberechnen wo der beste Weg ist mit Heuristiken, wo ist die Wahrscheinlichkeit am größten, dass ich das Level schaffe und hab dann angefangen da irgendwie Algorithmen runter zu coden, die ich im Netz gefunden habe und das hat halt einfach überhaupt nicht funktioniert bis hinzu Ich bin komplett aus dem Speicher also der Speicher ist voll gelaufen, das halt gar nichts

mehr ging weil ich halt riesen Maps aufgebaut habe für so einen Stern Algorithmus zum Beispiel. Dann bin ich halt total verzweifelt. Und dann? Ja, quasi haben wir alle drüber geredet, so mit unseren Leuten und wir beide und sind komplett zurückgesteppt und haben gesagt, ja, was mach ich denn als Spieler? Klar also man hat so viele Möglichkeiten, man trifft superschnell Entscheidungen. Wenn du jetzt live also selbst spielst. Aber was macht Mario eigentlich

am Ende? Und dann haben wir gesagt, Pass auf, wir nehmen ganz einfach regelbasierten Ansatz mit 23 Regeln hatte glaube ich die der Bot am Ende nur. Wo die erste war so nach dem Motto du sprintest erstmal, also egal was du machst, du läufst schön einfach nach vorne und gibst Gas, wo sich jetzt Leute schon denken, ey was was was gegnerabgründe ja. Ja, ist richtig, aber die zweite Regel war, du springst dauerhaft. Ja genau, also wenn du springen kannst, springst du genau.

Genau. Und dann so OK. Wie sieht das aus? Na ja, Mario läuft jetzt absolut wie auf der Word, das schnell mal raus. Läuft halt einfach wie n Wahnsinniger los und springt die ganze Zeit so und damit sind wir schon durch sehr sehr viele Level tatsächlich gekommen. Marx sein, dass es ist halt so n gewisser Zufall da drin, dass du halt nicht in einen Abgrund

fällst. Aber die Wahrscheinlichkeit war einfach größer, dass du nicht irgendwo reinfällst, dass du halt wirklich durch die Level gekommen. Bist das heißt, man hat sogar schon mal einen großen Progress gesehen, obwohl noch gar nicht so viel rein theoretisch passiert ist. Selbst mit diesen 2 Regeln, glaube ich, haben wir schon 50% der Level geschafft oder so. Oder 40 oder so, also schon gar nicht so wenig.

Und dann haben wir uns gedacht, Na ja, gut, wie könnten wir das jetzt verbessern mit unserem regelbasierten Einsatz, also haben wir uns überlegt, naja, wir können ja sagen, kann ich, wie du ja schon meintest, kann ich überhaupt gerade springen oder springe ich zum Beispiel in einen Gegner rein oder lande ich in einem Abgrund? So, mit diesen beiden Ergänzungen, was am Ende wirklich nur 4 Regeln war.

Haben wir es ja dann geschafft. Ich glaube, wir waren bei 7080% der Level am Ende und da ich glaube 70 oder 60 brauchte man für die Zulassung. Ja, sogar noch genau. Wir waren ja noch n gutes Stück besser. Witzigerweise waren wir. Glaub ich in den Top ten der eingereichten und ich dachte mir so was soll das gerade passieren? Ja, weil das war so simpel, dass ich, also ich glaub das waren 20 Zeilen Code oder so am Ende.

Oder? 30 maximal also das aufwändigste war eigentlich das Auslesen des Levels, um zu wissen, wo ist ein Gegner, wo ist ein Abgrund, so nach dem Motto. Ich hatte 50, aber ich hatte sehr viel. Kommentare das kann nicht funktionieren, das funktioniert. Oh mein Gott, es funktioniert und das ist halt so ein klassisches Beispiel, wissen wir nicht diesen Punkt anbringe, dass es manchmal besser ist, gar nicht so kompliziert zu denken, sondern erst mal zum Beispiel auch mit so einem regelbasierten

Ansatz anzufangen. Weißt du, was ich lustig finde? Also es ist ja zum Beispiel, ich hab mein erster Ansatz war also ganz am Anfang und das war halt viel zu kompliziert zu sagen, wann muss ich springen und am Ende sind wir ja quasi, haben wir das ja quasi sozusagen invertiert, um zu sagen, ich springe immer und kann und gucke, wann darf ich nicht

springen. So. Genau, weil man nämlich sozusagen, damit man genau verhindert hat, dass man, wenn man springt, in den Abgrund reinspringt, anstatt zu sagen, ich springe immer, und wenn da ein Abgrund kommt, dann springe ich kurz nicht warte und springe dann. Also dann, da landet zwischen halt ne sowas hatten wir denn drin? Genau. Und das das war halt interessant und da, das ist ja, das ist ja also das, was ich meine, ist es, manchmal hilft es einfach auch noch mal, sich komplett zu

überlegen. OK, vielleicht ist der erste Ansatz vielleicht nicht genau der Richtige, vielleicht muss ich noch mal umdenken, zum Beispiel kann man ja beispielsweise als Erstes bei einem, wenn ich jetzt mal ganz kurz das, also ein kleines Beispiel bringe für den 4 gewinnt Wettbewerb, man könnte sich ja beispielsweise hinstellen und sagen okay. Als erstes könnte ja nicht die Frage sein, wie gewinne ich, sondern zum Beispiel, wie kann ich verhindern, dass jemand anders gewinnt.

Als erstes Mal. Das wäre ja zum Beispiel auch eine Möglichkeit, um dann halt iterativ sozusagen zu gucken, okay welche Strategie verbessere ich, setze ich oben drauf oder was auch immer. Na also nur mal so als kleines Beispiel in Raum geworfen. Ja, gutes Beispiel. Sehr gutes Beispiel. Weil das ist ja auch eigentlich der, der was dann am Ende Spaß macht, dass man sieht, okay der,

der Bot wird. Besser, ich krieg halt wirklich mit wenig Zeilen Code und mit mit 1, also in Anführungsstrichen einfacher Programmierung wie zum Beispiel so ein 2 Impfbedingung. Es hin, Entscheidungen zu treffen, die zu einem guten Bot führen und das fand ich, war so der aha Moment zu der damaligen Zeit und deswegen Liebe zuhören, liebe Zuhörer, wollen wir dir das gerne mal mitgeben und auch so als Motivation dann quasi an unserem Wettbewerb teilzunehmen,

weil ich meine klar am Ende ist das ein Wettbewerb, das war es damals bei uns auch und es gab Kommilitonen die einfach schon absolut krasse Algorithmen entworfen haben, also es hat auch jemand geschafft. So eines a Sterns umzusetzen, indem er einfach so Speicheroptimiert das ganze gemacht hat und wahrscheinlich die Heuristik besser war, dass er wirklich den Pfad berechnen konnte. Und halt dann keine Ahnung 9095% aller Level geschafft hat.

Also da gab es halt wirklich wenige Situationen, nur noch die dafür gesorgt haben, dass der Bot das nicht schafft. Ja. Aber das ist ja genau der Punkt. Ich fand es in dem Moment halt nicht schlimm, dass ich mir dachte, oh Scheiße, jetzt hab ich nicht den ersten gemacht,

sondern für mich war es einfach. Unglaublich motivierend, dass ich mir dachte, OK, pass auf, ich hab meine Prüfungszulassung, das heißt, ich habe quasi diese Aufgabe erfüllt, damit habe ich am Anfang gar nicht gerechnet und ich habe auf jeden Fall

super viel dabei gelernt. Und das das war halt, das war halt auf jeden Fall cool, weil es ging ja auch im Endeffekt darum, sich, also man hat ja Gedanken, die, wobei denen man sagt, OK, ich möchte jetzt gern, dass das und das vielleicht passiert, vielleicht in den und den Situationen, und dann muss man das ganze ja irgendwie algorithmisch in Code gießen und genau das finde ich, ist eine der. Schlüssel. Punkte, die man quasi überwinden

muss, die man lernen muss. Am Anfang, wenn man in die Softwareentwicklung, in das Programmieren einsteigt, das finde ich, ist, weil wenn man erstmal über diesen Punkt sage ich mal, zu einem gewissen Grad hinweggekommen ist. Dann dann dann hat sich so ein Knoten gelöst und dann funktioniert alles andere noch ein bisschen besser, aber dafür

bedarf es halt eben Übung. Und genau aus diesem Mario Ableger, den wir den wir damals hatten und dadurch, dass halt gerade solche Spiele halt auch ein bisschen mehr Spaß machen als irgendwas anderes, Langweiliges, nenne ich es jetzt einfach mal. Ist das natürlich irgendwie ne gute Art und Weise das zu machen. Und selbst wenn man diese Folge nach dem 30. März hört. Hat man immer noch die Möglichkeit, sich das trotzdem noch mal zu nehmen?

Genau dann ist der Wettbewerb zwar sehr wahrscheinlich rum oder die Einreichungsfrist abgelaufen, aber wir werden ja das Spiel auch online lassen, so dass man sich das trotzdem angucken kann und für sich implementieren. Kann. Und vielleicht sind noch einige Bots dazugekommen, gegen die man spielen kann. Das kann sein ja, memo. Selbst der Gewinner bot wird

natürlich mit eingereicht. Dann ja, wenn die Person das erlaubt, natürlich dann ne, aber das wär natürlich cool, weil dann kann man immer sehen, hätte ich den Sieger des Turniers geschlagen. Das ist ne coole Idee. Fabi gefällt mir gut. Genau jetzt haben wir ja schon so n bisschen über Mario gequatscht. Also unser Mario damals, der hieß ja n bisschen anders und so verschiedene Ansätze, dass wir n sehr einfachen Ansatz gewählt haben und sehr gut damit gefahren sind, dass andere.

Ja, denn doch halt schon, sag ich mal komplexere Algorithmen verwendet haben. Lass uns doch jetzt mal basierend auf unseren Wettbewerb mal so verschiedene Ansätze. Beschreiben also, was ist so für? Na ja, also nicht direkte Strategien, sondern so Arten an Ansätze gibt. Ich hoffe du weißt was ich meine, ich würd einfach mal mit n Beispiel anfangen, wir hatten ja jetzt zum Beispiel. Gesagt, dass wir so Regelbasiert

ein Bot geschrieben haben. Das ist für mich so, sagen wir mal fast so ne zweite Stufe, man könnte ja noch einfacher anfangen. Und zum Beispiel ne Art Skript schreiben. Also ich hab jetzt meine Funktion, die ich implementieren soll und sage dann halt sowas, beispielsweise im ersten Zug nimmst du bitte. Das erste Feld, da wirfst du deine Münze rein, im zweiten Zug wirfst du sie dann noch mal rein und so weiter ne, also dass du halt immer das gleiche machst. Also n statischer Ablauf, der

quasi. Wirklich n fest codierter Ablauf und also der auf keiner. Anderen Input quasi achtet. Ja. So, das ist doch super easy. Kannst ja einfach sagen, ich hab mir überlegt die 4 Felder, das sind meine ersten. 4 Züge oder zum Beispiel ne einfache Art davon wäre ja beispielsweise eine ein Bot ein Skript, besser gesagt sozusagen. Wenn wir das jetzt so nennen wollen oder Scriptlike zu sagen, ich werfe immer in die vierte Zeile Zeile spalte, weil das. Ganze haben wir ja auch schon

mal. Wir haben ja 2 Beispiel K is abgelegt. Die wir so mitgegeben haben. Und da ist gibt's ja die sogenannte Phil KI, und die wirft ja immer einfach in dieselbe Spalte, das ist ja genau das, was wir meinen, das ist ein fester Ablauf, so und interessanterweise, die andere KI ist ja auch ganz witzig, die ist einfach Zufall, basiert, das heißt ja, die Random KI wählt einfach zufällig aus, als wenn ein Spieler sich denkt, ist mir eigentlich egal, was jetzt passiert, ich mach mal erste och

mal vierte und so weiter. Und interessanterweise, oder das wird vielleicht viel auch nicht überraschen, gewinnt die Phil KI eigentlich ziemlich gut gegen die Random KI. Ja, weil der Zufall ist ja nicht immer scharf zu verhindern, dass da 4 übereinander liegen haben, das ist halt, das ist halt schon cooles Zeichen dafür, dass man eventuell gegen quasi Ki s schon gewinnen kann mit so einem einfachen. Ablauf also. Das wäre. So für mich der unterste trivialste Ansatz.

Genau, also prinzipiell kann man ja an der Stelle noch mal ganz kurz so reinwerfen. Das natürlich. Es ist natürlich schwierig, wir hatten ja auch zum Beispiel schon mal gehört, ja gut, aber ist ja jetzt nicht immer dann gleich eine KI, weil KI als künstliche Intelligenz ist natürlich heute im Volksmund mittlerweile.

Umfasst das was anderes, weil man das Verständnis über dieses Thema ist natürlich ein anderes, muss man mal gucken, was man jetzt sozusagen als Ki betraftet Prinzessin prinzipiell in der Information. Ist ja die künstliche Intelligenz ein Themen, ein Bereich, was sehr, sehr viele Unterbereiche behandelt. Ne ja, also zum Beispiel gibt es ja auch keine Ahnung sowas wie Machine Learning ist ja ein

Unterbereich von. Künstlicher Intelligenz genauso ist zum Beispiel eine Support. Vector Machine ist ja eine ein Modell, was quasi ich sag mal Entscheidungen Datenpunkte teilt ne sowas wie keine Ahnung ich sag jetzt einfach mal damit man sich es vorstellen kann rote Punkte von blauen Punkten trennt, also eine Linie zieht und sagt da werden diese beiden

Mengen geteilt. Um das ganz, ganz, ganz grob anzureißen, was ich meine ist, das ist ja auch ein einfach eine Art von Reglement, nach denen diese Daten geteilt werden. Also nachdem quasi eine Entscheidung getroffen wird und eine Support Vector Machine ist deutlich statischer als zum Beispiel ein evolutionärer Algorithmus. Also was ich meine, es gibt verschiedene Modelle, verschiedene Ansätze, die aber im groben und ganzen.

Dynamischer statischer sind nach komplexeren oder einfacheren Regeln handeln, aber am Ende unter den Oberbegriff künstliche Intelligenz fallen. Ja, deswegen ist es halt. Was ich meine, ist ja, was ich meine. Es war kurz n kleiner Ausflug in die verschiedenen Themen. Ja, aber genau hast du natürlich absolut. Recht nur, weil man natürlich sich jetzt hinstellen könnte und sagen könnte, na ja gut, wenn du jetzt random irgendwas reinwirfst ist das ne Mars rand Funktion die irgendwie also ne

Spalte von 1 bis 7 auswählt. Das ist ja keine künstliche Intelligenz in dem Sinne also. Man muss natürlich an dem Punkt auch sagen, wir reden hier über Bots. In Spielen und da in der Welt. Wenn du jetzt nicht so in dem absolut wissenschaftlichen Bereich unterwegs bist, sag ich mal, ist KI und bot oft Synonym, das mögen jetzt vielleicht viele nicht cool finden und sich denken, hey nee, das ist wie du ja schon meintest, alles richtig ist.

Okay es gibt Teilbereiche und Maschinelles Lernen und alles, aber was wir hier meinen in dem Punkt, ich versuche auch oft Bots zu sagen, manchmal rutscht mir dann auch KI raus, weil aus Spielen kennt man das so, es gibt keine. Einfach KI Mittel und KI hart wie damals in alten Spielen. Genau, aber im Prinzip hast du recht.

Es gibt halt so zum Beispiel, wie wir gesagt haben, so regelbasierte Ansätze, das zähl ich jetzt auch irgendwo als KI dazu, weil ne Entscheidung getroffen wird, aber so n so n einfaches Maß random schwierig, hast du recht. Nur das, was noch mal ein bisschen trennen, weil das ja quasi da schon mal so ein bisschen haben wir auch schon mal drüber gesprochen. Und nur, dass man jetzt quasi vielleicht dem einen oder anderen vielleicht ein bisschen

Wind aus den Segeln nimmt. Aber es ist natürlich durchaus möglich zu sagen, OK, der eine reicht jetzt vielleicht. Ne Random ki, ein Random bot was auch immer und eine andere Person sagt sich zum Beispiel ja gut, aber ich schreibe jetzt wirklich eine ein Algorithmus der anhand von Spielen lernt ist ja genauso möglich. Demzufolge haben wir gesagt du. Kannst ja auch ein maschinelle Ansätze verfolgen.

Du kannst auch gerne mit neuronalen Netzen arbeiten oder mit Heuristiken und selbst dir Training Daten geben, woran du deinen Algorithmus anlernst und dann Spiel alles okay. Aber das ist so ein bisschen vorweggreifend lass uns mal noch mal ganz unten anfangen und dann vielleicht so iterativ. Diese Komplexitätslevel hochschrauben also wie gesagt, es gibt so einfache Skripte, dann regelbasierte Ansätze.

Regelbasierte Ansätze hatten wir ja gerade gesagt, so wenn dann Strukturen unser Bot damals war einfach sind. Aneinanderreihung von IF Bedingung und daran wurde die Entscheidung getroffen. Das heißt du hast quasi in der IF Bedingung schon deinen Zustand gehabt und dann entschieden jetzt spring jetzt laufen und so.

Weiter genau dann gibt es ja zum Beispiel auch noch sowas wie Entscheidungsbäume. Beispielsweise sind ja auch Möglichkeiten, dass du sozusagen eine Art, das ist ja auch irgendwie in gewisser Weise so eine Art, wenn dann. Überprüfung bloß, dass man vielleicht noch eher sagt, dass diese wenn dann regeln nicht irgendwie völlig unabhängig voneinander agieren, sondern tatsächlich aufeinander aufbauen. Das kann man sich immer. Vorstellen. So verschachtelt.

Sind genau, dass du so gedanklich so einen Knotenpunkt hast, der dir sagt, wo eine Entscheidung zu treffen ist und nach einer entsprechenden Entscheidung hast du wieder Möglichkeiten, die du dann treffen kannst. Also sagen wir mal 2 bis noch mehr Möglichkeiten wo du sagst okay ne Fall x geht jetzt quasi links lang, Fall Y geht durch in der Mitte lang und Fall rechts führt dann die Aktion auf der rechten Seite außer nach dem Motto.

Also das sind halt so mögliche. Dass man sagt, man verschachtelt das Ganze. Man hat dann im Endeffekt entscheidungsbäume, die einem dann sagen, OK ne, keine Ahnung, das Spielfeld sieht gerade so und so aus, also mach ich dann in dem Fall dies. Ne zum Beispiel findest du 3 verschiedene. Steine irgendwo auf dem Spielfeld und musst jetzt ne Entscheidung daran treffen, unter dieser Bedingung, dass 3 Steine nebeneinander liegen. Was du was du tust. Genau, du schmeißt das Spielfeld

um, rennst weg. Genau du, genau du gibst auf. Nee, also das ist eigentlich ganz cool cool beschrieben gewesen, das finde ich gut, also im Prinzip, dass du verschiedene. Metriken oder oder Situationen hast. Die du dann quasi miteinander verknüpfst und dann sozusagen in deinem Baum von ganz oben nach ganz unten läufst. Also ich hoffe, alle haben so so, so diese Baumstruktur im Kopf, wenn nicht, können wir da

auch gerne mal was posten. Schreibt uns einfach, wenn euch das interessiert und du halt quasi sagst, ja habe ich. Hat der Gegner 3 Steine nebeneinander, was du gerade meintest? Ja dann vielleicht kannst du schon direkt eine Entscheidung treffen.

Naja, da muss ich da in die vierte Stelle werfen, sonst habe ich direkt verloren, aber es kann ja auch sein, Nein hat er nicht, habe ich 3 Steine irgendwo kann ich das Spiel gewinnen, so nach dem Motto, obwohl das wäre sogar besser als erste Entscheidung statt zu verhindern, dass der Gegner gewinnt, also drehen wir das gedanklich mal um gucke ich erstmal habe ich 3 Steine so ja dann habe ich ja gewonnen, dann muss ich den da reinwerfen, danach prüfe ich ob der Gegner

das hat und so kann ich ja quasi. Einen richtigen Baum aufspannen, um so die richtige Entscheidung hoffentlich zu treffen. Am Ende so, das ist so. Im Prinzip zum regelbasierten Ansatz noch mal so ne Stufe drauf, bisschen komplexer. Find ich auch gut. Also entscheidungsbäume waren weiß ich gar nicht wie es mittlerweile ist, aber früher auf jeden Fall auch in Spielen sehr beliebt als künstliche Intelligenz für Bots. Das ging glaube ich, auch bei so.

Schach beim Schachspiel zum Beispiel ging das, Glaube ich, auch mit Entscheidungsbäumen los. Ja, genau, weil du versuchst ja den bestmöglichen Zug quasi zu ermitteln sozusagen. Genau, und da sind ja den zig

Sachen rausgekommen. Dann gab es irgendwann mit Max Bäume und alle möglichen Ansätze, das ist ja dann wirklich, das sind ja dann schon komplexere Algorithmen, die man quasi implementieren könnte, um damit das Spiel zu spielen oder im Prinzip den bestmöglichen Zug zu schätzen, zu ermitteln, und da wird es dann kommen wir jetzt halt auf eine Ebene, wo es halt denn schon wirklich komplexer wird, und wer darauf Bock hat, kann das auch gerne machen und wir freuen uns auch auf super

kreative Lösungen, aber sagen wir mal, ich würde jetzt hier mal so ein Strich ziehen erstmal. Gedanklich auch für dich Liebe zuhören, liebe Zuhörer, angenommen du hast wirklich keine Vorerfahrung und hast unseren Grundlagenkurs gemacht. Bis hier kommst du auf jeden Fall. Ja, also n Skript schreiben, auf jeden Fall regelbasierten Ansatz, auf jeden Fall auch. Ja, es waren ja so if Bedingungen waren ja if Konstrukte waren ja Teil des Kurses und.

Damit kannst du halt auch schon ne wirklich gute KI schreiben, keine Frage. Richtig? Ja, auf jeden Fall also. Und es gibt ja immer noch die Möglichkeit, sich auszutauschen auf diversen Plattformen, ne mit uns, mit der Community und das ist ist ja quasi, soll ja auch ein bisschen. Motivieren und.

Hoffentlich ist das natürlich auch für die Leute, die du gerade beschrieben hast, Tino. Soll weil dann, wenn man sozusagen neue Sachen ausprobieren muss, sozusagen an seine Grenzen kommt, dann merkt man halt auch, OK, das ist natürlich der Bereich, in dem ich jetzt auch mich weiterentwickel. Genau. Ja. Genau, ganz.

Hast du noch was? Ja, ganz kurz noch, wenn man noch mal über diesen Strich, den du gerade gezogen hast, mal gedanklich n bisschen weiter rüber gehen möchte und sagen möchte, OK, wir kommen jetzt vielleicht wirklich n bisschen mehr in den Bereich KI, dass man zum Beispiel sagt, OK, so n Entscheidungsbaum ist ja natürlich, trotzdem hat n festes Reglement auf bestimmten sag ich jetzt mal Bedingungen Verhältnissen. Zuständen, die gerade da sind

und theoretisch noch mal n bisschen sozusagen den den Vergleich zu ziehen. Angenommen man schreibt einen Algorithmus. Der guckt. OK, mein. Einer KI mein mein Gegner bot eröffnet oft zum Beispiel mit einem bestimmten, mit einer bestimmten Zugabfolge, die oft relativ schnell dazu führt, dass 3 zum Beispiel nee und 3 Steine nebeneinander liegen.

Dann könnte man ja in dem Fall schon mal sagen, okay, daraus habe ich jetzt gelernt, also dieser Algorithmus könnte jetzt sagen, daraus habe ich gelernt, die Wahrscheinlichkeit, dass das wieder eintrifft, ist sehr hoch, also setze ich meinen Stein schon mal an die Stelle, wo ich erwarte erfahrungsgemäß, dass ZB dieser Stein an dieser Stelle gesetzt wurde, um sozusagen.

Den gegnerischen Bot schon mal ein bisschen aus der Reserve zu locken, das wäre auf jeden Fall schon Ansatz, der dann sozusagen adaptiv auf bestimmte Situationen eingeht. Ja, das ist ja hart im Bereich maschinelles Lernen, dass du halt sagst, okay. Ich habe, also ich trainiere quasi mein Bot, das heißt, ich spiele beispielsweise gegen ihn und er berechnet quasi den Ausgang der Spiele und.

Bewertet die also im Prinzip. Er wird am Anfang wahrscheinlich sehr, sehr komische Züge machen, wo dir denkst, OK, das war jetzt nicht so clever, weil jetzt gewinn ich, du hast das nicht geblockt, mein Angriff hier sage ich mal ne dann wird er also dann wird der Algorithmus sagen wir es mal so quasi dementsprechend ja auch diesen finalen Zug bewerten und ihn nächstes mal nicht machen in dieser Situation, dann wird er halt abgestuft und so, dass andere Züge quasi höher bewertet

sind um das mal hoffentlich. Bildhaft darzustellen und dann halt andere Züge ausgewählt. Und wenn ich du das jetzt über sehr viele Iterationen machst, dann wird sich halt der Rauskristallisieren, dass der Bot eine Strategie hat, womit er viele Spiele für sich entscheiden kann.

Also ist halt auch wieder die Frage auch wieder Stichwort Overfitting wenn er immer gegen dich spielt und du hast so eine eigene Art zu spielen, dann wird er irgendwann gegen dich perfekt spielen, aber vielleicht gegen andere nicht mehr, das ist halt dann auch wieder ein ganz anderes Thema, aber. Interessant an diesen Ansätzen ist halt dieser dieser Trainingsfaktor, also dass du so Trainingsdaten hast.

Also zum Beispiel du bist sein, sein Sparringpartner sozusagen ne und spielst halt gegen ihn und schickst ihn dann ins Turnier und sagst so und jetzt. Bot Schlag sie alle. Das genau, und da sind halt auch ganz coole Ansätze, da gibt es ja auch sehr, sehr verschiedene. Ich finde auch so evolutionäre Algorithmen interessant, können wir ganz kurz mal anschneiden,

das. Im Prinzip ein ähnlicher Ansatz, dass du sagst, du hast Heuristiken und du du Simulierst oder imitierst du die diese Evolution der Natur sozusagen also wie der Mensch sich ja auch angepasst hat an seine Umgebung und optimiert hat dahingehen würde, denn der bot auch versuchen sich seinen Gegebenheiten anzupassen und stellt sich halt quasi nach jedem Spiel die Frage er war das jetzt irgendwie cool was ich gemacht habe oder war das eher nicht so cool? Und dann adaptierte sich halt

auch darauf. Das ist halt auch ganz, ganz cooler Ansatz. Also da gibt. Es auch Tausende gefühlt. Halt genau. Ich wollte gerade sagen, es gibt auf jeden Fall super viel, was man machen kann, was man aber natürlich nicht machen muss. Wichtig ist natürlich, und das steht hier auf jeden Fall im Vordergrund. Dass man einfach also auch du, liebe Zuhörerin, lieber Zuhörer, wenn du dir sagst, ich möchte da gerne mitmachen und ich weiß noch nicht, ob ich so weit bin

oder nicht. Wir sagen, du bist so weit, wir sagen, mach einfach mit und guck, wie weit du kommst. Tausch dich mit uns, Tausch dich mit der Community aus und Versuch dein Bot für dieses Spiel zu schreiben und mach beim Wettbewerb mit. Du kannst nur Erfahrungen dadurch sammeln und das ist auch sehr wertvoll. Genau. Und alle anderen macht auch mit. Ja, macht auch mit, indem zeigt ihr uns die besten Algorithmen,

die ihr drauf habt. Genau auf jeden Fall hoffen wir, dass wir dann ein cooles Turnier dann live bei Twitch zeigen können. Genau und in dem Sinne würde ich sagen, haben wir das Ganze eigentlich ja mal ein bisschen angeschnitten diskutiert, was meinst du, Tino ja. Ich hoffe, wir konnten es auch gut motivieren, daran teilzunehmen, weil es halt wirklich echt eine coole Sache. Ist genau und wenn dich liebe, zuhören, Liebe zuhören

interessiert. Zum Beispiel auch im Podcast mal den ein oder anderen Algorithmus, wie zum Beispiel den evolutionären Algorithmus, also diese Art und Weise, wieso etwas funktioniert, mal im Podcast in der Folge behandeln sollen, wenn. Gesagt, wenn dich das interessiert, dann schreibt uns gerne auf der Podcast Mail. Die ist in den Showload Shownotes verlinkt oder auch bei Instagram. Da zählen wir einfach auf euer Feedback oder auf dein Feedback. Das ist auf.

Jeden Fall mal ne deepdive Folge machen. Genau also. Alles, was euch dahingehend interessiert, gebt. Feedback schreibt uns genau und in dem Sinne würde ich auch sagen, das war es für diese Folge einen schönen Tag noch und bis zum nächsten Mal. Deine Coding Buddies gemeinsam besser. Was?

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast