Ini adalah permainan haskell breakout yang diimplementasikan menggunakan perpustakaan pemrograman reaktif fungsional Yampa.

SDL 1.2 Grafik dan Suara.
Beberapa perangkat input (keyboard, mouse, wiimote infrared, Kinect).
Subsistem yang dibedakan untuk fisika/tabrakan, input, rendering/multimedia, logika, dll.
Versi game ini menggunakan SDL2 telah tersedia oleh Keera Studios secara gratis di Google Play untuk Android. Ada bug yang membuat aplikasi tidak dekat atau menyimpan game saat Anda keluar. Saya tahu cara menyelesaikannya, saya hanya belum menemukan waktu untuk mendorong perubahan itu. Tolong, laporkan bug lain dari aplikasi Android di sini. Anda dapat mengikuti kemajuan port untuk Android di Facebook dan Twitter.

Kami ingin memanggil pemrogram Haskell, pengembang game dan siapa pun yang tertarik dengan pemrograman reaktif fungsional dan/atau pemrograman game untuk meninjau kode, meminta klarifikasi ketika kode tidak cukup jelas, dan membantu kami meningkatkan permainan, dan keadaan pemrograman FRP/Yampa juga.
Game ini digunakan untuk menyajikan tutorial pemrograman game deklaratif di PPDP 14 (lihat http://keera.co.uk/blog/2014/09/24/game-pogramming-videos-code/ untuk detailnya). Slide ditautkan dari situs web itu.
Gim ini tersedia di peretasan. Semua sumber daya media disertakan dengan distribusi (lihat lisensi untuk persyaratan redistribusi). Anda dapat menginstalnya dengan*:
$ cabal update
$ cabal install haskanoid
$ $HOME/.cabal/bin/haskanoid
Jika Anda ingin menjelajahi kode dan mungkin membuat perubahan, lakukan hal berikut:
$ cabal update
$ cabal unpack haskanoid # or git clone http://github.com/ivanperez-keera/haskanoid
$ cd haskanoid-* # Game resources are here
$ cabal install
$ $HOME/.cabal/bin/haskanoid
Untuk memainkannya dengan wiimote, Anda perlu menjalankan program dengan argumen khusus +RTS -V0. Lihat http://github.com/ivanperez-keera/hcwiid untuk penjelasan.
* Catatan tambahan :
Pengguna GHC 7.8 perlu menjalankan langkah -langkah tambahan. Lihat masalah #2 untuk instruksi.
Pengguna Macosx (atau siapa pun tanpa wiimote) mungkin ingin menonaktifkan dukungan Wiimote dan Kinect. Anda dapat melakukannya dengan bendera Cabal wiimote dan kinect , dengan menjalankan cabal install --flags="-kinect -wiimote" .
Untuk menggunakan instruksi pemasangan di atas (dengan dukungan Wiimote dan Kinect yang dinonaktifkan, lihat titik peluru di atas) Anda memerlukan paket berikut:
Di Debian/Ubuntu, Anda dapat menginstalnya dengan:
$ sudo apt-get install ghc cabal-install
$ sudo apt-get install libsdl1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev libsdl-ttf2.0-dev
Untuk mengaktifkan dukungan Wiimote dan Kinect, Anda juga memerlukan paket -paket berikut:
Di Debian/Ubuntu, Anda dapat menginstalnya dengan, masing -masing:
$ sudo apt-get install libcwiid-dev
$ sudo apt-get install freenect
Untuk mencoba dan membuat segalanya sejelas mungkin, kode tersebut mencakup banyak dokumentasi dan komentar haddock yang bisa kami muat secara wajar. Anda dapat mengkompilasi mereka dengan:
$ cabal unpack haskanoid ## Or git clone this-repo
$ cd haskanoid-*
$ cabal install --only-dependencies
$ cabal haddock --haddock-executables --haddock-internal
Anda mungkin juga ingin menambahkan bendera -f-wiimote dan -f-kinect ke perintah komponen di atas untuk menginstal tanpa dukungan Wiimote dan Kinect.
YAMPA (http://github.com/ivanperez-keera/yampa), implementasi pemrograman reaktif fungsional yang dibuat oleh Antony Courtney dan Henrik Nilsson.
Dunai (http://github.com/ivanperez-keera/dunai), implementasi pemrograman reaktif yang sangat kuat yang mampu melakukan pemrograman reaktif fungsional klasik dan arrowisasi, pemrograman reaktif, pemrograman aliran, dan lainnya. Ini berisi penggantian Yampa yang mampu menjalankan haskanoid.
hcwiid (http://github.com/ivanperez-keera/hcwiid), pembungkus di sekitar perpustakaan CWIID untuk berkomunikasi dengan wiimotes.
Freenect (https://hackage.haskell.org/package/freenect), binding untuk berkomunikasi dengan perangkat Kinect.
FRP Collisions (https://github.com/keera-studios/haskell-frp-hampa-physics), contoh pengantar tentang cara melakukan tabrakan sphere di Yampa.
Magic Cookies (https://github.com/keera-studios/magic-cookies), permainan FRP komersial yang ditulis di Haskell menggunakan Yampa yang tersedia di iTunes dan Google Play.
Dalam file langsung Anda menemukan ide untuk meningkatkan haskanoid sambil memfokuskan pada area terkait pemrograman (game) yang mungkin ingin Anda selami lebih dalam. Area adalah: pemrograman fungsional (reaktif), kinerja, interaksi manusia-komputer dan input/output, dan desain game.
Jika Anda menganggap game ini menarik dan ingin menggunakannya untuk mengajarkan pemrograman fungsional atau mata pelajaran lain, kami akan dengan senang hati mengetahuinya. Kami dapat menyediakan materi tambahan yang dapat Anda tunjukkan kepada siswa (video, tangkapan layar, dll.).