На том же элементе управления PictureBox на месте, где должна находиться голова человечка, размещаем следующий элемент управления PictureBox, для которого в панели Properties записываем или устанавливаем следующие свойства: Name = pic_happy, BackColor = ControlLightLight, SizeMode = StretchImage, Visible = False. За маркеры устанавливаем размеры элемента Size = 58; 46. На этом элементе размещаем рисунок веселой головы человечка (типа смайлика) по стандартной схеме: в панели Properties (для этого элемента) в свойстве Image щёлкаем кнопку с тремя точками, в появившейся панели Select Resource выбираем переключатель Local resource, щёлкаем кнопку Import, в появившейся панели Open находим (например, в папке с загруженными из Интернета файлами) и выделяем графический файл happy_face.jpg и щёлкаем кнопку Open (или дважды щёлкаем по имени этого файла). Отображение этого файла мы увидим на элементе PictureBox (см. рисунок).
Два последних элемента управления PictureBox со смайликами накладываем один на другого на месте головы нарисованного человечка. А программа будет показывать нам либо хмурый смайлик (при неправильной букве), либо веселый смайлик (при правильной букве).
Напомним, что, растягивая за маркеры элемент PictureBox, при помощи свойства SizeMode = StretchImage мы можем растягивать голову человечка на всю площадь этого элемента так, чтобы было посмешнее.
Переносим на форму элемент управления MenuStrip выпадающее меню для команд и опций, сгруппированных по функциональности. Щёлкаем по этому элементу menuStrip1, расположенному ниже формы Form1 в режиме проектирования. На форме Form1 появляются окна с надписью Type Here (Печатайте здесь), в которые записываем команды на английском языке (приведённые далее в программе): Game, New Game, Exit; Help, How to, About. Теперь в панели Properties (для каждой команды этого элемента управления) в свойстве Text изменяем эти английские команды на русские, согласно рис. 19.17 19.18.
Рис. 19.17. Команды левого меню. Рис. 19.18. Команды правого меню.
Если в игре применяются звуковые файлы, то их целесообразно разместить в одной папке с именем, например, Sounds. Для добавления в проект этой папки, в панели Solution Explorer выполняем правый щелчок по имени проекта, в контекстном меню выбираем Add, New Folder, в поле появившегося значка папки записываем имя папки и нажимаем клавишу Enter. Добавляем в эту папку звуковые файлы по стандартной схеме: выполняем правый щелчок по имени этой папки, в контекстном меню выбираем Add, Existing Item, в панели Add Existing Item в окне Files of type выбираем All Files, в центральном окне находим (например, в папке с загруженными из Интернета файлами) и с нажатой клавишей Ctrl выделяем имена файлов и щёлкаем кнопку Add. В панели Solution Explorer мы увидим эти файлы (см. рисунок выше).
Для ввода в проект новой формы (для правил игры) в меню Project выбираем Add Windows Form, в панели Add New Item оставляем заданные по умолчанию параметры и щёлкаем кнопку Add. В ответ VS выводит новую форму Form2 и добавляет в панель Solution Explorer новый пункт Form2.vb. Аналогично, как первую, проектируем вторую форму (рис. 19.18), за маркеры увеличиваем форму до размеров Size (420; 420). Вводим на эту форму элемент управления в виде окна TextBox, для которого в панели Properties в свойстве Multiline выбираем значение True (для многострочного текста). Ниже размещаем кнопку Button со свойством Text = Выход.
Рис. 19.18.
Форма Form2.
19.3. Код и запуск программы
Открываем файл Form1.vb (например, по схеме: File, Open, File) и в классе Form1 записываем следующие переменные и методы.
Листинг 19.1. Переменные и методы.
'Массив для загадываемого слова из 20 (и менее) букв
'с индексами 0,1,2,3,,19:
Dim str(19) As String
Dim nums As Integer
На первой форме Form1 в режиме проектирования дважды щёлкаем по кнопке Button с именем для первой буквы используемого в данной игре английского алфавита Name = A (или в панели Properties для этого элемента на вкладке Events дважды щёлкаем по имени соответствующего события).
Появившийся шаблон метода после записи нашего кода принимает следующий вид.
Листинг 19.2. Метод-обработчик щелчка кнопки.
Private Sub A_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles A.Click
A.Enabled = False
nums = Len(Word_in.Text)
Try
str(0) = Mid(Word_in.Text, nums, 1)
str(1) = Mid(Word_in.Text, nums 1, 1)
str(2) = Mid(Word_in.Text, nums 2, 1)
str(3) = Mid(Word_in.Text, nums 3, 1)
str(4) = Mid(Word_in.Text, nums 4, 1)
str(5) = Mid(Word_in.Text, nums 5, 1)
str(6) = Mid(Word_in.Text, nums 6, 1)
str(7) = Mid(Word_in.Text, nums 7, 1)
str(8) = Mid(Word_in.Text, nums 8, 1)
str(9) = Mid(Word_in.Text, nums 9, 1)
str(10) = Mid(Word_in.Text, nums 10, 1)
str(11) = Mid(Word_in.Text, nums 11, 1)
str(12) = Mid(Word_in.Text, nums 12, 1)
str(13) = Mid(Word_in.Text, nums 13, 1)
str(14) = Mid(Word_in.Text, nums 14, 1)
str(15) = Mid(Word_in.Text, nums 15, 1)
str(16) = Mid(Word_in.Text, nums 16, 1)
str(17) = Mid(Word_in.Text, nums 17, 1)
str(18) = Mid(Word_in.Text, nums 18, 1)
str(19) = Mid(Word_in.Text, nums 19, 1)
Catch ex As Exception
End Try
If Word_in.TextLength = 1 Then
If str(0) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 2 Then
If str(1) = "a" Then
Chr1.Text = "A"
End If
If str(0) = "a" Then
Chr2.Text = "A"
End If
ElseIf Word_in.TextLength = 3 Then
If str(0) = "a" Then
Chr3.Text = "A"
End If
If str(1) = "a" Then
Chr2.Text = "A"
End If
If str(2) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 4 Then
If str(0) = "a" Then
Chr4.Text = "A"
End If
If str(1) = "a" Then
Chr3.Text = "A"
End If
If str(2) = "a" Then
Chr2.Text = "A"
End If
If str(3) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 5 Then
If str(0) = "a" Then
Chr5.Text = "A"
End If
If str(1) = "a" Then
Chr4.Text = "A"
End If
If str(2) = "a" Then
Chr3.Text = "A"
End If
If str(3) = "a" Then
Chr2.Text = "A"
End If
If str(4) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 6 Then
If str(0) = "a" Then
Chr6.Text = "A"
End If
If str(1) = "a" Then
Chr5.Text = "A"
End If
If str(2) = "a" Then
Chr4.Text = "A"
End If
If str(3) = "a" Then
Chr3.Text = "A"
End If
If str(4) = "a" Then
Chr2.Text = "A"
End If
If str(5) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 7 Then
If str(0) = "a" Then
Chr7.Text = "A"
End If
If str(1) = "a" Then
Chr6.Text = "A"
End If
If str(2) = "a" Then
Chr5.Text = "A"
End If
If str(3) = "a" Then
Chr4.Text = "A"
End If
If str(4) = "a" Then
Chr3.Text = "A"
End If
If str(5) = "a" Then
Chr2.Text = "A"
End If
If str(6) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 8 Then
If str(0) = "a" Then
Chr8.Text = "A"
End If
If str(1) = "a" Then
Chr7.Text = "A"
End If
If str(2) = "a" Then
Chr6.Text = "A"
End If
If str(3) = "a" Then
Chr5.Text = "A"
End If
If str(4) = "a" Then
Chr4.Text = "A"
End If
If str(5) = "a" Then
Chr3.Text = "A"
End If
If str(6) = "a" Then
Chr2.Text = "A"
End If
If str(7) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 9 Then
If str(0) = "a" Then
Chr9.Text = "A"
End If
If str(1) = "a" Then
Chr8.Text = "A"
End If
If str(2) = "a" Then
Chr7.Text = "A"
End If
If str(3) = "a" Then
Chr6.Text = "A"
End If
If str(4) = "a" Then
Chr5.Text = "A"
End If
If str(5) = "a" Then
Chr4.Text = "A"
End If
If str(6) = "a" Then
Chr3.Text = "A"
End If
If str(7) = "a" Then
Chr2.Text = "A"
End If
If str(8) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 10 Then
If str(0) = "a" Then
Chr10.Text = "A"
End If
If str(1) = "a" Then
Chr9.Text = "A"
End If
If str(2) = "a" Then
Chr8.Text = "A"
End If
If str(3) = "a" Then
Chr7.Text = "A"
End If
If str(4) = "a" Then
Chr6.Text = "A"
End If
If str(5) = "a" Then
Chr5.Text = "A"
End If
If str(6) = "a" Then
Chr4.Text = "A"
End If
If str(7) = "a" Then
Chr3.Text = "A"
End If
If str(8) = "a" Then
Chr2.Text = "A"
End If
If str(9) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 11 Then
If str(0) = "a" Then
Chr11.Text = "A"
End If
If str(1) = "a" Then
Chr10.Text = "A"
End If
If str(2) = "a" Then
Chr9.Text = "A"
End If
If str(3) = "a" Then
Chr8.Text = "A"
End If
If str(4) = "a" Then
Chr7.Text = "A"
End If
If str(5) = "a" Then
Chr6.Text = "A"
End If
If str(6) = "a" Then
Chr5.Text = "A"
End If
If str(7) = "a" Then
Chr4.Text = "A"
End If
If str(8) = "a" Then
Chr3.Text = "A"
End If
If str(9) = "a" Then
Chr2.Text = "A"
End If
If str(10) = "a" Then
Chr1.Text = "A"
End If
ElseIf Word_in.TextLength = 12 Then
If str(0) = "a" Then
Chr12.Text = "A"
End If
If str(1) = "a" Then