Реферат по предмету "Программирование, программное обеспечение, СУБД"


Создание игры “Реверси”, при помощи языка программирования Visual Basic

Содержание. Введение. 3 Описание хода работы. 4 Создание игрового интерфейса. 4 Написание кода программы для кнопки Новая Игра. 6 Написание программного кода для игрового поля. 8 Заключительная часть 14 Приложение (исходный код программы) 15
Создание игры “Реверси”, при помощи языка программирования Visual Basic Введение
Задачей, поставленной при написании курсовой работы, стало создание логической игры «Реверси» в среде программирования Visual Basic. При работе над ней использовалась сама среда программирования Visual Basic для создания непосредственно самой игры, а так же средство Microsoft Word для создания отчета о проделанной работе.
Интерфейс данной программы прост, как и действия, выполняемые пользователями. Поле для игры представляет собой квадрат жёлтых шашек 8Ч8. Для начала игры игроку необходимо нажать на кнопку Новая игра, а далее нажимать на шашки поля так, чтобы шашки противника оказались «зажаты». Для этого при нажатии шашки будут поочередно менять свой цвет, либо на белый, либо на чёрный. В случае, когда игра закончена, пользователю нужно снова нажать кнопку Новая игра, для начала новой партии. Описание хода работы Создание игрового интерфейса
Одна из важнейших задач, которая стоит перед тем, кто хочет создать при помощи Microsoft Visual Basic любую программу, пусть даже самую простейшую, это разработка интерфейса этой программы. Используя панель инструментов, мы создаём следующий интерфейс: Выбрав элемент CommandButton(Командная Кнопка), мы создаём на нашей форме 64 идентичных, ничем не отличающихся друг от друга кнопки, которые будут играть роль шашек, заполнение которых своим цветом и является целью игры. Все эти кнопки имеют одинаковое имя – Command1. Их цвет (параметр BackColor) жёлтый. Важно также отметить, что на кнопках ничего не написано (параметр Caption не заполнен). Кнопки имеют форму квадратов, т. е. параметры Width(ширина) и Height(высота) имеют одинаковые значения, в нашем случае эти значения равны 495. Создание интерфейса программы
Помимо этих 64 кнопок, на форме мы располагаем кнопку для начала игры, её параметры следующие: имя – ComNew, она светлого жёлтого цвета(BackColor), в отличие от тех 64 кнопок, на этой есть надпись(Caption) – Новая игра, т. е. из названия следует, что после нажатия на эту кнопку начнётся новая игра, ширина(Width) и высота(Height) на этот раз отличаются по своим значениям, т. к. кнопка имеет прямоугольную форму. Теперь, когда поле и кнопка начала игры создана, мы создаём при помощи элемента TextBox, два окошка, в которых будут отображаться кол-ва очков играющих сторон. Таких окна нам нужно два (т. к. количество игроков в нашей версии программы равно двум), они имеют имена Text1 и Text2 соответственно. Параметр Text для этих двух окон не заполняется, так как в них будут отображаться числа, равные кол-ву квадратов, занятых одной из сторон (Text1 для белых шашек, Text2 для чёрных) на игровом поле, а изначально эти два окна должны быть пусты. Затем, при помощи элемента Label, мы создаём две надписи, и располагаем их над окошками где будут выводиться очки играющих (см. выше), эти две надписи создаются для удобства пользователя, чтобы было видно какое из окон отображает кол-во чёрных шашек, а какое кол-во белых. Надписи имеют параметры: Имена – Label1 и Label2, на одной из них написано “Белые”, а на второй “Чёрные”, т. е. параметры Caption заполняются соответствующим образом. Параметры текста (параметр Font) этих названий имеют следующий вид: Шрифт - Arial, начертание – жирный курсив, размер шрифта – 18. Текст на надписях расположен в центре (параметр Alignment). Напоследок создаётся кнопка выполняющая операцию выхода из игры. Имя – ComEnd, надпись (Caption) – ВЫХОД. Написание кода программы для кнопки Новая игра
Создание программного кода является основным этапом в создании любой программы. Код представляет собой алгоритм, на основе которого будет действовать программа. Одна из самых важнейших частей программного кода связана с кнопкой Новая игра (ComNew), при её нажатии выполняются следующий действия: Во-первых, стираются все “окрашенные” шашки на игровом поле: Col = vbBlack For Index = 0 To 63 Command1. Item(Index). BackColor = vbYellow Command1. Item(Index). Enabled = True Next Index
Эти строчки означают, что поступает команда для всех этих кнопок поменять цвет на жёлтый. Однако это не все операции, которые происходят при нажатии на кнопку Новая игра, также происходит окраска 4 шашек, расположенных в центре поля (это 27-ая, 28-ая, 35-ая и 36-ые шашки), две из шашек становятся чёрными, а две других белыми: Command1. Item(27). BackColor = vbWhite Command1. Item(28). BackColor = vbBlack Command1. Item(35). BackColor = vbBlack Command1. Item(36). BackColor = vbWhite Command1. Item(27). Enabled = False Command1. Item(28). Enabled = False Command1. Item(35). Enabled = False Command1. Item(36). Enabled = False До нажатия клавиши Новая игра После нажатия
Эта операция необходима для того, чтобы играющие вначале были в равных условиях, и у каждого уже было какое-то кол-во шашек на поле. В состав кода для этой кнопки входят также следующие действия – во-первых, задаётся цвет первого хода, тут нужно обратить внимание на то, что этот цвет “ходит первым” после нажатия кнопки Новая игра, а не после появления 4 уже покрашенных шашек.
Во-вторых, в текстовые окна (TextBox) вводятся исходные данные, они равны 2, так как после нажатия на кнопку Новая игра, у каждого из играющего находиться по две, уже окрашенных шашки: Text1. Text = 2 Text2. Text = 2 На этом заканчивается написание кода для кнопки Новая Игра. Написание программного кода для игрового поля
Часть программного кода, касающегося самого игрового поля, является самой главной. В первую очередь мы задаём 6 переменных, одна из них (переменная Col, которая будет относиться к цвету) имеет тип String, это стартовый тип, предназначенный для описания символов и строк символов. Другие 5 переменных (Down, Right, Vert, Gor, A, необходимые для вычислений) имеют тип Integer, предназначенный для хранения целых чисел, а также чисел со знаком. Dim Col As String Dim Down, Right, Vert, Gor, A As Integer
Теперь для массива управления 64 шашек (Command1) пишется операция, которая выбирает цвет следующего хода, в зависимости от того какой цвет ходил в прошлый раз, как раз тут используется переменная Col. Затем создаётся процедура, которая выполняет такую функцию: после нажатия на шашку, она окрашивается в тот цвет, который сейчас активен (т. е. чей сейчас ход). Одновременно с этим задаётся команда, что такая шашка уже не может быть нажата игроками ещё раз, то есть её свойство Enabled становится False. If Col = vbBlack Then Col = vbWhite Else Col = vbBlack End If Command1. Item(Index). BackColor = Col Command1. Item(Index). Enabled = False
Следующий шаг в написание алгоритма для этих кнопок это – вычисление по формулам координат шашек по вертикальной и горизонтальной осям. Происходит это по следующим формулам: Vert = Index \ 8 + 1 Gor = 9 - (7 * Vert - (Index - Vert)) Down = 8 - Vert Right = 8 – Gor White = 0 Black = 0
На этом же шаге для некоторых переменных, которые будут позже использованы в дальнейших операциях, задаются исходные значения. Так переменным Down, Right, являющимися пределами максимально изменения параметра A во многих следующих циклах кода, задаются значения 8 – Vert и 8 – Gor соответственно. Также переменным White и Black задаются нулевые значения, что необходимо для дальнейшего корректного подсчета количества очков, полученных игроками в ходе игры.
Далее пишутся логические выражения, обеспечивающие смену цвета шашек, при выигрышном ходе игрока, то есть таком, при котором происходит двустороннее «окружение» шашек противника шашками своего цвета. Происходит это за счет использования циклического алгоритма For с шагом Step равным (-1) для переменной A. Например: For A = Down To 1 Step -1 … Next A
Внутрь это циклического алгоритма вкладывается разветвляющийся алгоритм, реализованный с помощью неполной команды ветвления с проверкой цвета фона необходимой клавиши, определяемой математическим выражением с параметром A. Например: If Command1. Item(Index - 7 * A). BackColor = Col Then … End If
В тело этого алгоритма вложена ещё одна неполная команда ветвления аналогичного вида, проверяющая свойство Enabled выбираемой при помощи математического выражения с параметром A кнопки, например: If Command1. Item(Index - 7 * (A - 1)). Enabled = False Then Command1. Item(Index - 7 * (A - 1)). BackColor = Col End If
Таким образом в совокупности они выглядят следующим образом (примерный вариант): For A = Vert - 1 To 1 Step -1 If Command1. Item(Index - 7 * A). BackColor = Col Then
If Command1. Item(Index - 7 * (A - 1)). Enabled = False Then Command1. Item(Index - 7 * (A - 1)). BackColor = Col End If End If Next A
Вышеприведенный цикл последовательно производит следующие логические операции: 1 шаг: задает численное значение переменной A;
2 шаг: проверяет цвет фона, выбираемой согласно параметру A, шашки и при его совпадении со значением переменной Col, переходит к проверке следующего условия, то есть шагу 3, а в обратном случае возвращается к шагу 1; 3 шаг: проверяет, была ли нажата ранее кнопка, определяющаяся выражением с параметром A, если условие выполняется, то данная шашка закрашивается цветом, определяющимся переменной Col, в обратном случае возвращается на шаг 1. До нажатия помеченной кнопки После нажатия пользователем кнопки
Циклов таких было использовано 8, связанно это с направлениями изменения определяющего параметра A: For A = Down To 1 Step -1 If Command1. Item(Index + 8 * A). BackColor = Col Then
If Command1. Item(Index + 8 * (A - 1)). Enabled = False Then Command1. Item(Index + 8 * (A - 1)). BackColor = Col Else End If End If Next A For A = Vert - 1 To 1 Step -1 If Command1. Item(Index - 8 * A). BackColor = Col Then
If Command1. Item(Index - 8 * (A - 1)). Enabled = False Then Command1. Item(Index - 8 * (A - 1)). BackColor = Col End If End If Next A For A = Right To 1 Step -1 If Command1. Item(Index + A). BackColor = Col Then If Command1. Item(Index + A - 1). Enabled = False Then Command1. Item(Index + A - 1). BackColor = Col End If End If Next A For A = Gor - 1 To 1 Step -1 If Command1. Item(Index - A). BackColor = Col Then If Command1. Item(Index - A + 1). Enabled = False Then Command1. Item(Index - A + 1). BackColor = Col End If End If Next A For A = Down To 1 Step -1 If Command1. Item(Index + 7 * A). BackColor = Col Then
If Command1. Item(Index + 7 * (A - 1)). Enabled = False Then Command1. Item(Index + 7 * (A - 1)). BackColor = Col Else End If End If Next A For A = Vert - 1 To 1 Step -1 If Command1. Item(Index - 7 * A). BackColor = Col Then
If Command1. Item(Index - 7 * (A - 1)). Enabled = False Then Command1. Item(Index - 7 * (A - 1)). BackColor = Col End If End If Next A For A = Down - 1 To 1 Step -1 If Command1. Item(Index + 9 * A). BackColor = Col Then
If Command1. Item(Index + 9 * (A - 1)). Enabled = False Then Command1. Item(Index + 9 * (A - 1)). BackColor = Col Else End If End If Next A For A = Vert - 2 To 1 Step -1 If Command1. Item(Index - 9 * A). BackColor = Col Then
If Command1. Item(Index - 9 * (A - 1)). Enabled = False Then Command1. Item(Index - 9 * (A - 1)). BackColor = Col End If End If Next A
После это происходит процесс подсчета очков обоих игроков. Для этого вводится циклический алгоритм For Index = 0 To 63 .... Next Index
Внутри которого происходит проверка цветов шашек при помощи команды выбора Select, где предположением служит Command1. Item(Index). BackColor, то есть цвет фона шашки. В соответствии со значениями этого предположения изменяются переменные White и Black, значения которых выводятся в элементы Text1 и Text2. For Index = 0 To 63 Select Case Command1. Item(Index). BackColor Case Is = vbWhite White = White + 1 Case Is = vbBlack Black = Black + 1 End Select Text1. Text = White Text2. Text = Black Next Index
После этого в аналогичном цикле происходит подсчет количества уже нажатых кнопок, достигается это путем вложения в тело цикла неполной команды ветвления с проверкой условия о нажатии кнопки. A = 0 For Index = 0 To 63 If Command1. Item(Index). Enabled = False Then A = A + 1 End If Next Index If A = 64 Then приглашение = "Игра закончена. Начните снова! " If White > Black Then сообщение = "Белые выиграли! " Else If White сообщение = "Чёрные выиграли! " Else сообщение = “Ничья! ” End If End If MsgBox сообщение, vbExclamation, приглашение End If
Последнее описываемое событие – нажатие на кнопку ВЫХОД. Самый простой алгоритм Private Sub ComEnd_Click() End End Sub
На этом разработка кода программы завершена и программа игры Реверси готова к использованию. Заключительная часть
Таким образом, создание программы в среде программирования Visual Basic можно разделить на 2 основных этапа: создание интерфейса написание программного кода
Именно возможность создания и просмотра интерфейса программы в режиме проектирования и является отличительной чертой среды Visual Basic, как графической, делающей её гибкой и приемлемой для решения разнообразных задач, в том числе и для создания игр, что было рассмотрено нами на примере создания игры «Реверси». Приложение (исходный код программы) Dim Col As String Dim Down, Right, Vert, Gor, A As Integer Private Sub ComNew_Click() Col = vbBlack For Index = 0 To 63 Command1. Item(Index). BackColor = vbYellow Command1. Item(Index). Enabled = True Next Index Command1. Item(27). BackColor = vbWhite Command1. Item(28). BackColor = vbBlack Command1. Item(35). BackColor = vbBlack Command1. Item(36). BackColor = vbWhite Command1. Item(27). Enabled = False Command1. Item(28). Enabled = False Command1. Item(35). Enabled = False Command1. Item(36). Enabled = False Text1. Text = 2 Text2. Text = 2 End Sub Private Sub Command1_Click(Index As Integer) If Col = vbBlack Then Col = vbWhite Else Col = vbBlack End If Command1. Item(Index). BackColor = Col Command1. Item(Index). Enabled = False Vert = Index \ 8 + 1 Gor = 9 - (7 * Vert - (Index - Vert)) Down = 8 - Vert Right = 8 - Gor White = 0 Black = 0 For A = Down To 1 Step -1 If Command1. Item(Index + 8 * A). BackColor = Col Then
If Command1. Item(Index + 8 * (A - 1)). Enabled = False Then Command1. Item(Index + 8 * (A - 1)). BackColor = Col Else End If End If Next A For A = Vert - 1 To 1 Step -1 If Command1. Item(Index - 8 * A). BackColor = Col Then
If Command1. Item(Index - 8 * (A - 1)). Enabled = False Then Command1. Item(Index - 8 * (A - 1)). BackColor = Col End If End If Next A For A = Right To 1 Step -1
If Command1. Item(Index + A). BackColor = Col Then If Command1. Item(Index + A - 1). Enabled = False Then Command1. Item(Index + A - 1). BackColor = Col End If End If Next A For A = Gor - 1 To 1 Step -1 If Command1. Item(Index - A). BackColor = Col Then If Command1. Item(Index - A + 1). Enabled = False Then Command1. Item(Index - A + 1). BackColor = Col End If End If Next A For A = Down To 1 Step -1 If Command1. Item(Index + 7 * A). BackColor = Col Then
If Command1. Item(Index + 7 * (A - 1)). Enabled = False Then Command1. Item(Index + 7 * (A - 1)). BackColor = Col Else End If End If Next A For A = Vert - 1 To 1 Step -1 If Command1. Item(Index - 7 * A). BackColor = Col Then
If Command1. Item(Index - 7 * (A - 1)). Enabled = False Then Command1. Item(Index - 7 * (A - 1)). BackColor = Col End If End If Next A For A = Down - 1 To 1 Step -1 If Command1. Item(Index + 9 * A). BackColor = Col Then
If Command1. Item(Index + 9 * (A - 1)). Enabled = False Then Command1. Item(Index + 9 * (A - 1)). BackColor = Col Else End If End If Next A For A = Vert - 2 To 1 Step -1 If Command1. Item(Index - 9 * A). BackColor = Col Then
If Command1. Item(Index - 9 * (A - 1)). Enabled = False Then Command1. Item(Index - 9 * (A - 1)). BackColor = Col End If End If Next A For Index = 0 To 63 Select Case Command1. Item(Index). BackColor Case Is = vbWhite White = White + 1 Case Is = vbBlack Black = Black + 1 End Select Text1. Text = White Text2. Text = Black Next Index A = 0 For Index = 0 To 63 If Command1. Item(Index). Enabled = False Then A = A + 1 End If Next Index If A = 64 Then приглашение = "Игра закончена. Начните снова! " If White > Black Then сообщение = "Белые выиграли! " Else If White сообщение = "Чёрные выиграли! " Else сообщение = "Ничья! " End If End If MsgBox сообщение, vbExclamation, приглашение End If End Sub Private Sub ComEnd_Click() End End Sub


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.