Опишем методику проектирования и программирования типичной и широко распространённой игры по угадыванию слова по буквам. Известно много вариантов этой игры как в ручном, так и в компьютерном варианте.
В ручном варианте смысл игры хорошо понятен из хорошо известной телепередачи “Поле чудес” 1-го канала российского телевидения. Телеведущий (в роли Игрока 1) рассказывает, по какой тематике он загадал слово. На доске показана строка, состоящая и такого количества квадратов, сколько букв содержит это слово. И участники телепередачи (в роли Игрока 2) по очереди отгадывают отдельные буквы загаданного слова. Если участник угадал букву, то в одном или нескольких квадратах слова появляется эта буква. Если участник угадал все буквы слова, игра заканчивается, и победитель получает приз. Начинается новый сеанс игры по угадыванию нового слова.
В компьютерном варианте эту игру мы будем разрабатывать, следуя проекту Hang Man автора Ibrahim от 1.3.2005 с сайта www.planet-source-code.com, но с нашими усовершенствованиями для современной версии Visual Studio.
Игрок, угадывающий слово, будет воздействовать на кнопки типа Button с названиями букв из алфавита. После каждого щелчка игроком кнопки (мышью или клавишей Enter) искусственный интеллект анализирует событие, какую букву выбрал игрок, и выдаёт или мелодию для неправильного ответа, или мелодию для правильного ответа. Кроме того, при неправильном ответе искусственный интеллект будет выводить на форму смайлик (в виде известного графического файла) с недовольным изображением лица, а при правильном ответе – с довольным и улыбающимся изображением лица.
Правила игры.
1. После запуска появляется форма с интерфейсом игры (рис. 19.1). По умолчанию, в окне TextBox мигает курсор, приглашающий Игрока 1 записать слово.
Сначала Игрок 1 при помощи клавиатуры записывает английскими буквами, причём только строчными буквами (без нажатия клавиши Shift) загаданное им слово в окно TextBox, например, слово exception (исключение). Даже первую букву имени собственного, например, имени человека, следует записывать строчной буквой.
Это слово искусственный интеллект скрывает от Игрока 2, записывая его звёздочками (как пароль), рис. 19.2. Далее Игрок 1 объясняет Игроку 2, как переводится на русский язык (или только тематику) загаданное им английское слово, и щёлкает кнопку Старт.
Кнопка Старт становится недоступной (рис. 19.3).
2. Игрок 2 пытается отгадать отдельные буквы загаданного слова и щёлкает первую кнопку с выбранной им буквой (из всех кнопок со всеми буквами английского алфавита).
Например, Игрок 2 щёлкнул кнопку с буквой O. Такая буква есть в загаданном слове. Искусственный интеллект делает кнопку с буквой О недоступной и размещает эту букву на верхней строке для букв загаданного слова (рис. 19.4). Звучит мелодия для правильного ответа.
Рис. 19.1. Перед игрой.
Рис. 19.2. Игрок 1 записал слово.
Рис. 19.3. Игрок 1 щёлкнул кнопку Старт.
Рис. 19.4. Игрок 2 выбрал букву О.
3. Далее, например, Игрок 2 щёлкнул кнопку с буквой А. Такой буквы нет в загаданном слове. Искусственный интеллект делает кнопку с буквой А недоступной и размещает эту букву в таблице для 10 допустимых неправильных букв красного цвета (рис. 19.5). Звучит мелодия для неправильного ответа.
Рис. 19.5. Игрок выбрал букву А и не угадал.
4. Далее, например, Игрок 2 щёлкнул кнопку с буквой E. Такой буквы в загаданном слове две. Искусственный интеллект делает кнопку с буквой E недоступной и размещает эту букву в двух квадратах на верхней строке для букв загаданного слова (рис. 19.6). Звучит мелодия для правильного ответа.
5. Аналогично игрок щёлкает кнопки с оставшимися доступными буквами алфавита, пытаясь угадать слово. На рис. 19.7 видно, что игрок уже угадал много букв загаданного слова, но выбрал уже все 10 букв из 10 допустимых неправильных букв. Предположим, что после этого он щёлкнул кнопку с буквой F, которой нет в слове.
Но после 11-й ошибки игрок считается проигравшим.
6. Появляется панель типа MessageBox с сообщением “Вы не угадали слово.” (рис. 19.8).
Закрываем эту панель, воздействуя на выделенную кнопку OK мышью или клавишей Enter.
7. Чтобы Игрок 2 проверил, правильно ли записал слово Игрок 1 (не допустил ли Игрок 1 ошибки в слове, что явилось причиной поражения Игрока 2), Игрок 2 щёлкает кнопку Проверка.
8. Появляется панель типа MessageBox с ответом Exception (рис. 19.9).
Такое слово в английском языке по компьютерной тематике имеется и переводится как исключение (или ошибка).
Следовательно, в этой игре проиграл Игрок 2, из 10 попыток не угадавший слово.
9. Для начала новой игры следует в Меню выбрать команду “Новая игра” (рис. 19.10).
Рис. 19.6. Игрок выбрал букву E и угадал.
Рис. 19.7. Игрок на последней 10-й попытке не угадал букву.
Рис. 19.8. Панель с сообщением “Вы не угадали слово.”. Рис. 19.9. Загаданное слово.
Рис. 19.10. В Меню выбираем команду “Новая игра”.
10. Теперь участники игры могут поменяться ролями. Аналогично, сначала Игрок 1 при помощи клавиатуры записывает английскими буквами, причём только строчными буквами (без нажатия клавиши Shift) загаданное им слово в окно TextBox, например, слово thanks (благодарность).
Это слово искусственный интеллект скрывает от Игрока 2, записывая его звёздочками (как пароль), рис. 19.11. Далее Игрок 1 объясняет Игроку 2, как переводится на русский язык (или только тематику) загаданное им английское слово, и щёлкает кнопку Старт. Кнопка Старт становится недоступной. Игрок 2 пытается отгадать отдельные буквы загаданного слова и щёлкает кнопки с выбранными им буквами (из всех кнопок со всеми буквами английского алфавита). Искусственный интеллект делает кнопки с выбранными буквами недоступными и размещает эти буквы либо в верхней строке для правильного ответа, либо в таблице для 10 допустимых неправильных букв красного цвета. Звучит мелодия либо для правильного ответа, либо для неправильного ответа.
Рис. 19.11. Из 10 попыток игрок угадал слово.
11. Предположим, что из 10 попыток игрок угадал слово.
Изображение типа смайлика улыбается, звучит музыка для правильного ответа, значит победил Игрок 2.
12. Для начала новой игры следует в Меню выбрать команду “Новая игра”.
13. Для закрытия игры следует в Меню выбрать команду Выход.
14. Появляется панель типа MessageBox с благодарностью “Спасибо за игру” (рис. 19.12).
Закрываем эту панель, воздействуя на выделенную кнопку OK мышью или клавишей Enter.
15. Появляется панель типа MessageBox с вопросом “Вы желаете выйти из игры” (рис. 19.13).
Рис. 19.12. Панель MessageBox с благодарностью. Рис. 19.13. Панель MessageBox с вопросом.
В зависимости от выбранного нами ответа Yes или No мы выходим или продолжаем игру.
16. Если выбираем No, появляется уже показанный выше интерфейс игры.
Теперь первый ход (загадывает слово) делает, например, тот игрок, который в предыдущей игре начинал вторым. Если в игре участвует несколько человек, то можно условиться, что победитель в предыдущей игре начинает первым.
17. Если выбираем Yes, игра закрывается. Для закрытия игры можно также в любой момент выбрать на форме значок Close.
18. Если игроку требуется вспомнить правила игры, то в меню Помощь он выбирает команду “Правила игры”, после чего появляется соответствующая форма (рис. 19.14).
Рис. 19.14.
Форма с правилами игры.
На основании этих правил можно сформулировать другие правила, и любые правила ввести в эту справочную форму.