Programmierspiel
# Programmierspiel

Ein Programmierspiel ist ein Computerspiel, bei dem der Spieler keinen direkten Einfluss auf den Spielverlauf hat, sondern stattdessen ein Computerprogramm in einer domänenspezifischen Sprache schreibt, das die Steuerung der Spielfigur, üblicherweise ein Roboter, Panzer oder ein Bakterium, übernimmt.
Die Spielfiguren kämpfen dann autonom in „Arenen“ gegeneinander und versuchen sich gegenseitig zu zerstören, bis nur noch eine übrig bleibt. Der Spieler, der das beste Programm geschrieben hat, gewinnt. Allerdings gibt es normalerweise keine „eierlegende Wollmilchsau“: Programme, die bestimmte Strategien verfolgen und mit dieser bestimmte Programm-Typen leicht schlagen, sind wiederum selbst anfällig für andere Strategien, so zum Beispiel die „Replikatoren“, „Bomber“ und „Scanner“ in Core War (vgl. Schere-Stein-Papier-Prinzip).
Bekannte Programmierspiele sind Core War, Crobots, Robocode, Dnafight, Robot Battle, Robowar und TORCS.
Darwin (1961) gilt als erstes Programmierspiel.

## Programmierspiele als Lernspiele

Programmierspiele haben oft das Ziel, Anfängern eine Programmiersprache näherzubringen und das Schreiben von optimiertem Code zu fördern. Üblicherweise sind die einzelnen Programmabläufe zeitlich begrenzt, so dass in einem kurzen Zeitrahmen möglichst optimale Abläufe geschrieben werden müssen.
Da die Befehle zum Steuern der Spielfigur begrenzt sind, lassen sich die Programmiersprachen in einem vereinfachten Umfeld erlernen. Beispiele für solche Spiele sind: Robocode (Java, C#, VB.NET), Crobots (C), Marvin’s Arena (C#, VB.NET, C++), AntMe! (C#, VB.NET). Einige Spiele haben auch eigene vereinfachte Programmiersprachen entwickelt (sogenannte Minisprachen), um Anfänger den Einstieg zu erleichtern. Beispiele sind Robot Karol, Kara und Niki – der Roboter. Bildungsorientierte Programmiersprachen haben oft vorgefertigte Aufgaben oder die Möglichkeit solche zu erstellen, die die Lernenden versuchen können zu lösen, bieten aber auch die Möglichkeit eigene Projekte zu programmieren.
Moderne Programmierspiele richten sich nicht nur an Lernende, sondern auch an den Unterhaltungsmarkt und sollen den Spieler herausfordern, logische Rätseln durch Programmiertechniken zu lösen. Bekannte Beispiele sind 7 Billion Humans oder Shenzhen I/O. Zudem gibt es viele Browserspiele und Handyspiele mit dieser Thematik, die unter die Kategorie Denk- und Rätselspiele fallen.