هذه هي لعبة Haskell Breakout التي تم تنفيذها باستخدام مكتبة البرمجة التفاعلية الوظيفية Yampa.

SDL 1.2 الرسومات والصوت.
أجهزة إدخال متعددة (لوحة المفاتيح ، الماوس ، Wiimote الأشعة تحت الحمراء ، Kinect).
الأنظمة الفرعية المتمايزة للفيزياء/التصادمات ، والمدخلات ، والتقديم/الوسائط المتعددة ، والمنطق ، إلخ.
تم توفير إصدار من هذه اللعبة باستخدام SDL2 بواسطة Keera Studios مجانًا على Google Play for Android. هناك خطأ يجعل التطبيق لا يغلق أو حفظ اللعبة عند الخروج منها. أعرف كيفية حلها ، لم أجد الوقت لدفع هذا التغيير. من فضلك ، الإبلاغ عن أخطاء أخرى من تطبيق Android هنا. يمكنك متابعة تقدم المنفذ لنظام Android على Facebook و Twitter.

نود أن ندعو المبرمجين Haskell ومطوري الألعاب وأي شخص لديه مصلحة في البرمجة الوظيفية و/أو برمجة الألعاب لمراجعة الكود ، وطلب التوضيح عندما لا يكون الرمز واضحًا بما فيه الكفاية ، ويساعدنا على تحسين اللعبة ، و Estase of FRP/Yampa Programming أيضًا.
تم استخدام هذه اللعبة لتقديم برنامج تعليمي لبرمجة الألعاب في PPDP 14 (انظر http://keera.co.uk/blog/2014/09/24/game-programming-videos-code/ للحصول على التفاصيل). ترتبط الشرائح من هذا الموقع.
اللعبة متوفرة على هاكاج. يتم تضمين جميع موارد الوسائط مع التوزيع (انظر ترخيص شروط إعادة التوزيع). يمكنك تثبيته مع*:
$ cabal update
$ cabal install haskanoid
$ $HOME/.cabal/bin/haskanoid
إذا كنت ترغب في استكشاف الكود وربما إجراء تغييرات ، فافعل ما يلي:
$ 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
لتشغيلها مع Wiimote ، تحتاج إلى تشغيل البرنامج مع الحجج الخاصة +RTS -V0. انظر http://github.com/ivanperez-keera/hcwiid للحصول على شرح.
* ملاحظات إضافية :
يحتاج مستخدمو GHC 7.8 إلى تشغيل خطوات إضافية. انظر المشكلة رقم 2 للحصول على التعليمات.
قد يرغب مستخدمو MacOSX (أو أي شخص بدون Wiimote) في تعطيل دعم Wiimote و Kinect. يمكنك القيام بذلك باستخدام Flags Cabal wiimote و kinect ، عن طريق تشغيل cabal install --flags="-kinect -wiimote" .
لاستخدام تعليمات التثبيت أعلاه (مع معطل Wiimote و Kinect ، انظر Bullet Point) أنت بحاجة إلى الحزم التالية:
على Debian/Ubuntu ، يمكنك تثبيتها مع:
$ 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
لتمكين دعم Wiimote و Kinect ، تحتاج أيضًا إلى الحزم التالية:
على Debian/Ubuntu ، يمكنك تثبيتها معها ، على التوالي:
$ sudo apt-get install libcwiid-dev
$ sudo apt-get install freenect
لمحاولة توضيح الأمور قدر الإمكان ، يتضمن الرمز وثائق وتعليقات كبيرة الحجم كما يمكن أن نناسب بشكل معقول. يمكنك تجميع تلك مع:
$ cabal unpack haskanoid ## Or git clone this-repo
$ cd haskanoid-*
$ cabal install --only-dependencies
$ cabal haddock --haddock-executables --haddock-internal
قد ترغب أيضًا في إضافة الأعلام -f-wiimote و -f-kinect إلى أوامر cabal أعلاه للتثبيت دون دعم wiimote و kinect.
Yampa (http://github.com/ivanperez-keera/yampa) ، تطبيق البرمجة التفاعلية الوظيفية السهم التي أنشأها أنتوني كورتني وهنريك نيلسون.
Dunai (http://github.com/ivanperez-keera/dunai) ، وهو تطبيق برمجة تفاعلي قوي للغاية قادر على القيام برمجة تفاعلية وظيفية كلاسيكية وسهم ، وبرمجة تفاعلية ، وبرمجة دفق ، وغيرها. أنه يحتوي على بديل Yampa قادر على تشغيل Haskanoid.
hcwiid (http://github.com/ivanperez-keera/hcwiid) ، غلاف حول مكتبة cwiid للتواصل مع wiimotes.
Freenect (https://hackage.haskell.org/package/freenect) ، روابط للتواصل مع أجهزة Kinect.
تصادمات FRP (https://github.com/keera-studios/haskell-frp-yamma-physics) ، مثال تمهيدي على كيفية القيام بتصادمات المجال في يامبا.
Magic Cookies (https://github.com/keera-studios/magic-cookies) ، وهي لعبة FRP تجارية مكتوبة في Haskell باستخدام Yampa متوفرة على iTunes و Google Play.
في الملف العملي ، تجد أفكارًا لتحسين Haskanoid أثناء التركيز على (Game) Programming Progerments التي قد ترغب في الغوص في أعمق. المجالات هي: البرمجة الوظيفية (التفاعلية) ، والأداء ، وتفاعل الحاسوب البشري والاتفاقية/الإخراج/الإخراج ، وتصميم اللعبة.
إذا وجدت هذه اللعبة جذابة وترغب في استخدامها لتدريس البرمجة الوظيفية أو غيرها من الموضوعات ، فسنكون سعداء للغاية بمعرفتها. يمكننا توفير مواد إضافية يمكنك عرضها للطلاب (مقاطع الفيديو ، لقطات الشاشة ، إلخ).