Lately I've been quite addicted to
OpenAlchemist, a Tetris-like game developed by I think a
couple of French developers (cocorico!). The code is in C++, there doesn't seem to be a clear API to integrate with the engine, the forums are closed, but I still wanted to write an AI for the game..
So I've written a little something in Haskell and posted it on
Github just in case it's of interest to somebody. I basically use the
Win32 API to capture the game window and save it as a BMP, then I use the
bmp library to open the BMP, and some home grown image recognition to see which shapes are displayed on the screen. Then comes the "easy" part, checking the possible combinations and seeing which one yields the higher score. So far the AI hasn't beaten my own high score, so there's still work to do!
I'm still struggling with shape recognition sometimes, so this is an area that needs an improvement. I probably need to read up a bit on the proper algorithms that people have found to do this kind of things instead of just writing my own, but hey, one needs to have fun!