Direkt zum Hauptbereich

Posts

Es werden Posts vom Juni, 2019 angezeigt.

Python: Einführung in pygame - Intelligenter Gegenspieler

Einführung In meinem ersten Blog zum Thema "Pygame" - Python: Eine Einführung in pygame - habe ich kurz erklärt wie Animationen mittels pygame realisiert werden können. Auch ein fundamentales Thema, nämlich die Kollisionserkennung wurde kurz behandelt. In diesem zweiten Blog, befassen wir uns intensiv mit dem Thema "Chasing and Evading", was übersetzt heisst: Jagen und Ausweichen. Dabei geht es um zwei Objekte, die sich animiert über das Surface (Windows-Oberfläche des Spiels) bewegen. Die zwei Objekte heissen im Spielekontext Prey (Opfer/Beute) und Predator (Raubtier/Plünderer). Dabei ist der computer kontrollierte Spieler meistens der Predator und der Prey, der vom Gamer kontrollierte Spieler.  Chasing and Evading wird schon in den Kontext von Künstlicher Intelligenz gestellt, obschon im Hintergrund kein grosses "neuronales Netz" oder irgendein selbst lernender Algorithmus steckt. Die Verfolgung durch den Computer basiert eigentlich auf einem C...

Python : Einführung in pygame

Einführung Pygame ist eine Bibliothek in Python, die es erlaubt grafisch anspruchsvolle Spiele zu erstellen. Damit pygame effektiv eingesetzt werden kann, braucht es doch einiges an Basiswissen, das in diesem Blog vermittelt wird. Gerade für Spiele wird vielmals von Elementen der Künstlichen Intelligenz Gebrauch gemacht. Teilweise handelt es sich nur um offensichtliche KI-Routinen aber andererseits auch um hochkomplexe Algorithmen, die nicht so trivial zu verstehen sind. Vor etlichen Jahren habe ich ein Buch gekauft, mit dem ansprechenden Namen " AI for Game developers " von David M. Bourg und Glenn Seemann. Das Ziel war es, herauszufinden, wie einfach ein Spiel unter Java 5 realisiert werden könnte. Das ganze sollte ein Kundenprojekt werden, ist aber dann nie zustande gekommen, weil der Aufwand zu gross war, das Projekt mit den bestehenden Java Bibliotheken umzusetzen. Für meine weitere "Forschung" hinsichtlich KI habe ich dieses Buch wieder zur Hand genomm...

Python : Generatoren

Einführung In diesem kurzen Blogartikel beschäftigen wir uns mit Funktions-Dekoratoren (function decorators) und Generatoren (generators). Ein Dekorator ist eine Funktion, die eine andere Funktion als Parameter akzeptiert und eine sogenannte innere Funktion zurückgibt. Dekoratoren sind nützlich, um zusätzliche Verarbeitungsschritte für eine Funktion durchzuführen. Ein Generator hingegen ist eine Funktion die Werte sequentiell generiert. Anstatt alle Werte auf einmal zurückzugeben, wird der Generator bei seinem nächsten Aufruf den nächsten anfallenden Wert in der Sequenz zurückgeben.  Function Decorators Oftmals sind viele Funktionen schon vorhanden, doch nicht konkret für einen Zweck verwendbar. Es sind einige Arbeitsschritte zusätzlich nötig, um mit der vorhandenen Funktion das gewünschte Resultat zu erzielen. Anstatt die vorhandene Funktion neu zu implementieren, wird die bestehende eigentlich nützliche Funktion durch eine andere Funktion dekoriert. Sie wird also verwe...

Python: Lambdas, Comprehensions

Einführung Python ist quasi der de facto Standard, um Programme im Bereich KI und Data Science zu schreiben. In meinem Blogartikel " Künstliche Intelligenz - Python erlernen " habe ich für alle die Kenntnisse in einer anderen objektorientierten Sprache haben, versucht anhand objektorientierter Konzepte einen Python Schnellkurs zu geben. Python hat aber auch viele spezifische Eigenschaften, wie es mit Daten und Datenstrukturen umgeht. Daher fand ich es ein Muss einen Artikel zu diesen Thema zu verfassen. Das Resultat ist im Artikel " Künstliche Intelligenz:Python - Listen, Tupeln, Reguläre Ausdrücke und mehr " zu finden. Mit diesen zwei Artikeln habe ich quasi die objektorientierten Konzepte der Sprache abgehandelt (natürlich nicht vertieft). Wer sich dann intensiv mit Python auseinandersetzt muss sich grundlegend noch Kenntnisse aneignen über wichtige Details, die beispielsweise bei der Klassen-Mehrfachvererbung in Python auftauchen.  Dieser Artikel hier, f...