هدف از چالش، پیادهسازی بازی معمایی هنگمن (Hangman) است. در این بازی:
یک کلمه به صورت مخفی (با استفاده از خطتیره یا جای خالی) نمایش داده میشود.
بازیکن باید با حدس زدن حروف، کلمه را کشف کند.
تعداد مشخصی تلاش (حدس) در اختیار بازیکن قرار میگیرد؛ در صورت اتمام تعداد تلاشها یا حدس درست کل حروف، بازی به اتمام میرسد.
امکان افزودن کلمه جدید به بازی نیز فراهم است.
تمام منطق بازی به کمک JavaScript پیادهسازی شده و رابط کاربری زیبا از طریق Bootstrap طراحی گردیده است.
توابع و منطق استفاده شده
در این پروژه از توابع و منطق زیر استفاده میشود:
متغیرهای سراسری:
words: آرایهای از کلمات پیشفرض مانند "برنامه"، "کامپیوتر"، "توسعه"، "کدنویسی" و "الگوریتم".
secretWord: کلمهای که به صورت تصادفی از آرایه انتخاب شده و به صورت مخفی استفاده میشود.
guessedLettersArr: آرایهای برای ذخیره حروف صحیح حدسزده شده توسط کاربر.
maxAttempts و attemptsLeft: تعداد تلاشهای مجاز که بسته به سطح بازی (آسان، متوسط، سخت، بسیار سخت) تعیین میشود.
difficultyMapping: شیء نگاشتی که سطوح بازی را به تعداد تلاشهای مجاز متناسب نگاشت میکند.
انتخاب المانهای DOM: تمامی المانهایی مانند نمایش کلمه، تلاشهای باقیمانده، ورودی حدس و دکمهها با استفاده از document.getElementById انتخاب شدهاند تا بتوان آنها را بهروز کرد.
تابع initializeGame:
هدف: راهاندازی یا ریست کردن بازی.
عملکرد:
انتخاب تعداد تلاشها براساس سطح انتخاب شده از منوی drop-down.
انتخاب یک کلمه تصادفی از آرایه words و ذخیره آن در secretWord (به حروف کوچک).
پاکسازی آرایه guessedLettersArr و پیامهای قبلی.
فعالسازی دکمه حدس و بهروزرسانی رابط کاربری از طریق فراخوانی تابع updateDisplay.
تابع updateDisplay:
هدف: بهروزرسانی نمایش کلمه، تعداد تلاشها و حروف حدس شده.
عملکرد: برای هر حرف کلمه مخفی، چک میشود که آیا به درستی حدس زده شده است یا خیر؛ در صورت درست بودن حرف نمایش داده، در غیر این صورت از نماد "_" استفاده میشود.
تابع checkGameStatus:
هدف: بررسی وضعیت بازی (برنده شدن یا اتمام تلاشها).
عملکرد: اگر همه حروف کلمه حدس زده شده باشند پیام پیروزی نمایش داده و دکمه حدس غیرفعال میشود؛ در غیر این صورت، در صورت اتمام تلاشها، پیام باخت به همراه نمایش کلمه مخفی نمایش داده میشود.
رویدادهای (Event Listeners):
حدس بزن: با کلیک بر روی دکمه "حدس بزن"، حرف ورودی اعتبارسنجی شده، در آرایه guessedLettersArr ذخیره شده و در صورت اشتباه بودن تلاشها کاهش مییابد.
شروع مجدد: کلیک بر روی "شروع مجدد" منجر به فراخوانی تابع initializeGame میشود.
افزودن کلمه: در این بخش، کاربر میتواند کلمه جدیدی وارد نموده تا به آرایه words اضافه شود.
تغییر سطح بازی: در صورت تغییر سطح بازی از منوی انتخاب، بازی مجدداً تنظیم و ریست میشود.
بازی هنگمن (Hangman)
در این چالش باید بازی کلمات هنگمن را با JavaScript پیادهسازی کنید. با حدس زدن حروف، کلمه مخفی را کشف کنید.