Pberndt V4

Direkt zum Inhalt springen


Bejeweled KI

Bejeweled KI (02.05.2010)

Bejeweled Ich habe vor Ewigkeiten mal zum Einarbeiten in .NET ein C#-Programm geschrieben, dass Minesweeper gelöst hat. Damals war ich begeistert, dass das in der Microsoft-Sprache in unter 200 Zeilen Code machbar war und wirklich super funktionierte. Das in Linux mit Mines auszuprobieren wäre zu langweilig, also habe ich das erst mal gelassen. Nachdem Slashdot nun heute berichtete, dass ein Mann die Maximalpunktzahl in Bejeweled erreicht hat, hatte ich endlich einen Vorwand, mal wieder zu scripten ;-)

Bejeweled ist ein typisches Gem-Sammel-Spiel. Hier muss man Steine gegeneinander austauschen, sodass Dreier entstehen. Austauschen darf man allerdings nur, wenn dadurch Punkte gemacht werden. Meine KI ist bislang sehr simpel: Per GTK mache ich einen Screenshot, suche darin nach dem Spielfeld, versuche, die Steine zu erkennen und simuliere dann den erstbesten möglichen Spielzug mithilfe von xdotool die entsprechenden Mausklicks. (Ich weiß, das geht auch per Xlib. Aber Xlib-Programmierung ist eine Qual..) Bislang sieht das Resultat so aus:

Zum Video

Dafür, wie naiv das bisher ist, meiner Meinung nach erstaunlich gut. :-) Zum Script.