منطق بازی Hangman را با برنامهنویسی واکنشی تابعی پیادهسازی کنید.
Hangman یک بازی سادهی حدس کلمه است.
برنامهنویسی واکنشی تابعی روشی برای نوشتن برنامههای تعاملی است. تفاوتش با دیدگاه معمول این است که بهجای اینکه بگویید «وقتی دکمه فشار داده شد، شمارنده را افزایش دهید»، مینویسید «مقدار شمارنده برابر است با مجموع تعداد دفعاتی که دکمه فشار داده شده است».
منطق پایهی بازی Hangman را با برنامهنویسی واکنشی تابعی پیادهسازی کنید. برای این کار باید یک کتابخانهی واکنشی تابعی نصب کنید؛ این موضوع در فایلهای مخصوص زبان و مسیرِ این تمرین توضیح داده شده است.
برای این تمرین، استفاده از یک کتابخانهی شخص ثالث لازم نیست. لطفاً دستورالعملهای مربوط به کتابخانهی FRP را نادیده بگیرید.
گاهی لازم است یک استثنا ایجاد کنید. وقتی این کار را میکنید، همیشه باید یک پیام خطای معنادار را هم بیاورید تا نشان دهید منشأ خطا چیست. این کار کد شما را خواناتر میکند و در دیباگ کردن کمک زیادی میکند. در موقعیتهایی که میدانید منشأ خطا از نوع مشخصی است، میتوانید یکی از انواع خطای داخلی را ایجاد کنید، اما همچنان باید پیام معناداری را هم بیاورید.
این تمرین بهطور خاص میخواهد که از دستور raise استفاده کنید تا وقتی بازی تمام شده ولی بازیکن میخواهد به بازی ادامه دهد، یک ValueError را «پرتاب» کنید. تستها تنها در صورتی قبول میشوند که هم exception را raise کنید و هم پیامی همراه آن بیاورید.
برای ایجاد یک ValueError همراه با پیام، پیام را بهعنوان آرگومان به نوع exception بدهید:
# when player tries to play, but the game is already over.
raise ValueError("The game has already ended.")