Readme for 4Blocks-0.2

4Blocks is a tetris-like game implemented in Haskell and Gtk2hs for an AI project. Some notes: - The game currently works only with GHC 6.8.3 due to its use of Gtk2hs 0.9.13. - I haven't tested with anything later but it is likely to fail due the fact that later versions of Gtk2hs have a different system of handling events. - To make this project compatible with later versions of GHC and Gtk2hs two changes are required: - Remove the function "permutations" which was copied from a later GHC base library - Alter key-event handling to the version used by later Gtk2hs: some functions (in CommandKeys.hs) were simply introduced in order to disallow some of the keys used in the game (namely rotation) to trigger continuously when a key is held pressed. I believe this kind of behaviour can be managed automatically with Gtk2hs' new event handling mechanism, however I haven't had time to recode accordingly myself. - I hope to write a patch for this in the near future. To play: - [1] Starts a Game - [P] Pause/Resume Game - [Esc] Exit Game - [A]/[Left] Shift Left - [D]/[Right] Shift Right - [W]/[Up] Hard Drop - [S]/[Down] Soft Drop - [Q]/[,] Rotate Left - [E]/[.] Rotate Right Some gameplay features to add in the future: - T-spin points - Wall-kick - Sounds! Finally: - Feel free to criticize (constructively) my code as this has been my first real forray into Haskell. - Email me on drewcalleja@gmail.com :) - Enjoy!