Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 5: Программирование искусственного интеллекта на Visual Basic (продолжение 1)
Шрифт:
Два последних элемента управления PictureBox со смайликами накладываем один на другого на месте головы нарисованного человечка. А программа будет показывать нам либо хмурый смайлик (при неправильной букве), либо веселый смайлик (при правильной букве).
Напомним, что, растягивая за маркеры элемент PictureBox, при помощи свойства SizeMode = StretchImage мы можем растягивать голову человечка на всю площадь этого элемента так, чтобы было посмешнее.
Переносим на форму элемент управления MenuStrip – выпадающее меню для команд и опций, сгруппированных по функциональности. Щёлкаем по этому элементу menuStrip1, расположенному
Рис. 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