Инфоурок Другое Другие методич. материалыМетодическая разработка открытого занятия по МДК.03.01 Технология разработки программного обеспечения для студентов третьего курса специальности 09.02.03 Программирование в компьютерных системах

Методическая разработка открытого занятия по МДК.03.01 Технология разработки программного обеспечения для студентов третьего курса специальности 09.02.03 Программирование в компьютерных системах

Скачать материал

АККРЕДИТОВАННОЕ ОБРАЗОВАТЕЛЬНОЕ ЧАСТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ФИНАНСОВО-ЮРИДИЧЕСКИЙ УНИВЕРСИТЕТ МФЮА»

 

 

 

 

 

 

 

 

 

Методическая разработка

 

занятия по МДК.03.01 Технология разработки программного обеспечения

 

 

Методы проектирования программ и программных систем. Специфика применения языка UML на этапе объектно-ориентированного анализа и проектирования

 

 

 

 

 

 

Разработчик: Калашникова О.А., ст.преподаватель кафедры информационных систем и технологий

 

 

 

 

 

 

 

 

 

 

 

 

 

2018 г.


ВВЕДЕНИЕ

 

Путь от «программ для себя» до программных продуктов достаточно долгий, он связан с изменениями технической и программной среды разработки и эксплуатации программ, с появлением и развитием самостоятельной отрасли - информационного бизнеса, для которой характерны разделение труда фирм - разработчиков программ, их дальнейшая специализация, формирование рынка программных средств и информационных услуг.

Программный продукт разрабатывается на основе промышленной технологии выполнения проектных работ с применением современных инструментальных средств программирования. Специфика заключается в уникальности процесса разработки алгоритмов и программ, зависящего от характера обработки информации и используемых инструментальных средств.

В связи с ростом потребности в разнообразных программах обработки данных весьма актуален вопрос применения эффективных технологий программирования и их перевода на промышленную основу. Это означает:

- стандартизованность, тиражируемость и воспроизведение различными разработчиками методов программирования;

- внедрение прогрессивных инструментальных средств разработки программ;

- использование специальных методов и приемов организации работ по разработке программ.

В рамках данного занятия рассматривается процесс проектирования средствами Microsoft Visio и реализации средствами среды программирования Visual Basic компьютерной игры «Крестики-нолики». Игра используется в развлекательных целях и способствует развитию логического мышления пользователя, в качестве соперника которого выступает компьютер.

Высокая производительность электронной вычислительной машины позволяет отыскать вариант решения за доли секунды, в то время как человек потратил бы на ту же операцию значительно больше времени. Это является ярким показателем снижения трудоемкости работ, производимых пользователем.

Материалы занятия представлены описанием процесса разработки программного продукта и презентацией к лекции.


ПЛАН ЗАНЯТИЯ

 

Дисциплина МДК.03.01 Технология разработки программного обеспечения

Тема: Методы проектирования программ и программных систем. Специфика применения языка UML на этапе объектно-ориентированного анализа и проектирования

Тип занятия: лекция

Вид занятия: комбинированный

Цели занятия:

образовательная

придать направленный характер формированию практических навыков проектирования программного продукта

развивающая-

развить навыки творческой работы, работы в группе, логическое и абстрактное мышление, внимание, умение общаться

воспитательная –

выработать умение организовывать последовательность действий для практического применения.

Межпредметные связи: Теория алгоритмов, Основы программирования, Операционные системы.

 

Структура занятия

 

Элементы

занятия

Способы, приемы и действия

Методы

преподавателя

студентов

1 Организационный момент

Задача:

- Настроить на плодотворную работу

 

 

- отмечает отсутствующих;

- проверяет готовность аудитории и студентов;

- озвучивает тему и цели занятия;

- мотивирует актуальность предшествующего и последующего материала;

- предлагает ход занятия

- осмысливают цели и задачи занятия;

- готовятся к занятию

Репродуктивные

Демонстрационные

2 Актуализация опорных знаний и умений (опрос)

Задача:

- Диагностика готовности студентов к восприятию нового материала;

- Закрепить пройденный материал

- проверяет знание пройденного материала;

- проводит фронтальный опрос (устно);

- подводит итоги опроса

- отвечают на вопросы (устно);

- приводят примеры (устно)

Словесно-репродуктивные

Творчески - воспроизводящие

3 Объяснение нового материала

Задача:

- На основе предыдущего материала овладеть новыми знаниями;

- Формирование новых понятий, знаний, умений, развитие мышления

- ставит проблемный вопрос;

- предлагает практическую ситуацию;

- предлагает опорную схему - конспект

 

- осмысливают основное содержание темы;

- анализируют практическую ситуацию и комментируют ее;

- составляют опорную схему-конспект

 

Исследовательские

Творчески - воспроизводящие

Самостоятельная работа

4 Закрепление знаний, умений и навыков

Задача:

- Систематизировать приобретенные знания

- проверяет и анализирует результат работы;

- опорную схему-конспект;

- задает вопросы на закрепление;

- подводит итог, выставляет оценки

- комментируют полученную схему-конспект (устно);

- отвечают на вопросы;

- обсуждают проблемный вопрос;

- оценивают свою работу

Творчески - воспроизводящие

Словесно-репродуктивные

Проблемные

5 Домашнее задание

Задача:

- На основе пройденного материала подготовиться к освоению новых знаний

- рекомендует закреплять пройденный материал;

- спроектировать модель системы по заданию;

- освоить опорную схему-конспект

 

- записывают задание;

- задают дополнительные вопросы по заданию

Самостоятельная работа

 

Вопросы и задания:

- при опросе: Раскрыть основные понятия UML языка, описать назначение и основные средства UML.

- при объяснении: Выделить критерии классификации методов проектирования и программирования программных продуктов, дать понятие объектно-ориентированного анализа и проектирования. На конкретном примере показать специфику использования средств UML языка на этапе объектно-ориентированного анализа и проектирования программных продуктов.

- при закреплении: Разработать проект программного продукта.

 

Средства обучения:

Раздаточный материал, презентация по материалу занятия, мультимедийный проектор, экран, ноутбук.

 

ХОД ЗАНЯТИЯ

1.      Организационный момент.

2.      Подготовка к изучению нового материала (ознакомление с планом и целью занятия).

3.      Изучение нового материала (просмотр электронного материала занятия с использованием мультимедиа проектора: слайды, текст лекции).

4.      По ходу занятия студенты конспектируют определения и отвечают на вопросы.

5.      Закрепление темы занятия (реализация проекта программы средствами среды разработки, работа с раздаточным материалом).

6.      Подведение итогов. Выставление оценок с учетом процентного выполнения задания занятия.

7.      Задание на дом (выучить определения, усовершенствовать интерфейсные элементы проекта).

Постановка задачи

В игре крестики-нолики в игровом поле 3х3 победитель должен выстроить три элемента в ряд по вертикали, горизонтали или диагонали.

Построение математической модели

Игровое поле представляет собой квадрат размером 3х3 (9 клеток). Для выигрыша необходимо выстроить в ряд три крестика (или три нолика) по вертикали, горизонтали или диагонали.

Рассмотрим линии, на которых можно выстроить выигрывающие комбинации, и присвоим им некоторые оценки. Оценка однозначно определяется состоянием клеток линии. Пусть программа играет крестиками. Присвоим наивысшие оценки линиям, на которых уже стоят два крестика и имеется свободная клетка. В самом деле, если такие линии есть, то, совершив следующий ход на клетку, принадлежащую одной из них, программа добьется победы. На рисунке приведены примеры таких комбинаций.

Х

 

Х

 

 

Х

Х

 

Х

Х

 

 

 

 

 

Следующие по величине оценки присваиваются линиям, содержащим два нолика и свободную клетку, так как противник угрожает своим следующим ходом поставить на такую линию третий нолик и добиться победы. Оценки для остальных возможных игровых комбинаций могут быть произвольными. Меняя порядок оценок, можно заставить программу отдавать приоритет то защите, то атаке.

Присвоив оценки всем линиям, оценивают свободные клетки (через линии, которым они принадлежат). При этом следует учитывать, что в зависимости от положения клетки на игровом поле через нее может проходить разное число линий. Оценка клетки, поэтому не может быть равна сумме оценок линий, для нее устанавливается более сложная зависимость. Программа совершает очередной ход на клетку, оценка которой максимальна.

В простейшем случае программа работает по следующему алгоритму: при выборе очередного хода осуществляет несколько просмотров всех линий; при первом просмотре ищет комбинации с максимальным приоритетом; если таких не оказывается, выполняет второй просмотр, во время которого ищет комбинации со следующим по порядку приоритетом и т.д. процесс продолжается до тех по, пока не окажется, что очередная комбинация найдена. После этого оцениваются свободные клетки, выбирается клетка с наибольшей оценкой и поиск заканчивается. Оценки клеток определяются линиями с комбинацией, имеющей наивысший приоритет, комбинации с меньшим приоритетом игнорируются.

Максимальный приоритет имеет линия, на которую противник выставил три своих элемента. Таким образом, при первом просмотре программа проверяет, не выиграл ли противник своим очередным ходом. Приоритеты остальных комбинаций идут в порядке, описанном ранее.

Разработка алгоритма

Окном игры «Крестики-нолики» является форма. Форма содержит строку меню и клетки, образующие игровое поле 3*3. На клетках располагаются крестики и нолики. Внизу формы выводится информация об очереди игроков и о победителе.

Операционная система является исходным звеном, так как она отвечает за функционирование системы в целом. Пользователь через операционную систему открывает программу и посылает сигнал активизации к форме проекта, вследствие чего форма загружается и получает фокус управления.

Далее фокус активности передается объекту Menu и классу Shape. На форме пользователь видит клетки игрового поля и строку меню.

Щелчок левой кнопки мыши по меню осуществляет передачу фокуса управления объекту Menu. Строка меню содержит переключатели, позволяющие осуществить настройку параметров игры: выбор обозначения Пользователя и уровень сложности игры.

После настройки параметров игры фокус передается форме, которая обрабатывает сигналы, поступающие от объекта Menu. Если Пользователь выбирает игру крестиками, тогда первым будет ходить именно он. Выбранный уровень сложности определяет варианты ходов компьютера.

На форме появляется сообщение о принадлежности первого хода одному из игроков. Фокус активности у объекта Label.

Предположим, Пользователь играет крестиками. После щелчка левой кнопки мыши по клетке, класс Square получает фокус активности, выполняется процедура Square(). Эта процедура осуществляет проверку возможности поставить крестик на выбранной Пользователем клетке. Если такая возможность существует, тогда ставится крестик и фокус активности передается обратно форме.

Форма обрабатывает поступивший сигнал и происходит обращение к модулю (объекту Moves). Модуль содержит функции выбора хода компьютера.

После того как определена клетка, которую должен занять компьютер, происходит передача фокуса активности классу Shape. На клетке рисуется нолик. Заключительным действием является передача фокуса управления форме.

 

Описание реализации программы

Игра начинается с выбора в меню Настройка обозначения пользователя: Х или О с помощью переключателей Играть X или Играть О, а также один из трех уровней сложности с помощью переключателей Уровень1, Уровень2, Уровень3.

Первоначально в процедуре Initialize оговаривается, что выбран первый уровень мастерства и пользователь играет крестиками, а компьютер – ноликами. При умолчании будут выбраны именно эти условия игры.

Private Sub Initialize ()

 SkillLevel = 1

 mnuOptionsLevel(SkillLevel).Checked = True

 PlayerX = PLAYER_HUMAN

 PlayerO = PLAYER_COMPUTER

 mnuOptionsPlayX.Checked = True

 StartNewGame

End Sub

Если пользователь выбирает игру крестиками, то для выбранной им клетки свойство «Видимость Х» будет верным, если же пользователь выбирает игру ноликами, то свойство «Видимость О» будет верным.

Private Sub DrawSquare(i As Integer)

 Select Case Board(i)

 Case PlayerX

 X1(i).Visible = True

 X2(i).Visible = True

 Case PlayerO

 O(i).Visible = True

 End Select

End Sub

При выборе игры крестиками происходит обращение к процедуре mnuOptionsPlayX, в которой переключатель, соответствующий Х принимает значение True(Верно), а переключатель, соответствующий О – значение False(Ложь).

Private Sub mnuOptionsPlayX_Click()

 PlayerX = PLAYER_HUMAN

 PlayerO = PLAYER_COMPUTER

 mnuOptionsPlayX.Checked = True

 mnuOptionsPlayO.Checked = False

 StartNewGame

End Sub

При выборе игры ноликами происходит обращение к процедуре mnuOptionsPlayО, в которой переключатель, соответствующий О принимает значение True(Верно), а переключатель, соответствующий Х – значение False(Ложь).

Private Sub mnuOptionsPlayO_Click()

 PlayerX = PLAYER_COMPUTER

 PlayerO = PLAYER_HUMAN

 mnuOptionsPlayX.Checked = False

 mnuOptionsPlayO.Checked = True

 StartNewGame

End Sub

После каждого выбора обозначения игрока и уровня сложности происходит запуск новой игры обращением к процедуре StartNewGame.

Private Sub StartNewGame()

Dim i As Integer

 For i = 1 To NUM_SQUARES

 Board(i) = PLAYER_NONE

 X1(i).Visible = False

 X2(i).Visible = False

 O(i).Visible = False

 Next i

 NextPlayer = PlayerX

 GameInProgress = True

 PlayerHasMoved

End Sub

В процедуре StartNewGame все клетки игрового поля очищаются от крестиков и ноликов, то есть свойство «Видимость» как крестиков, так и ноликов становится ложным (False). Новую игру начинает Игрок Х. Далее делается первый ход. Для этого необходимо обращение к процедуре PlayerHasMoved. Эта процедура также используется при подготовке к передаче хода следующему игроку.

Суть процедуры PlayerHasMoved заключается в том, что если ход должен делать компьютер, то происходит передача управления процедуре MakeComputerMove, которая отвечает за осуществление компьютером хода. Если же ход должен делать человек, тогда происходит обращение к процедуре MakeHumanMove. Эта процедура выдает на форме сообщение «Ваш ход».

Private Sub PlayerHasMoved()

 If NextPlayer = PLAYER_COMPUTER Then

 MakeComputerMove

 If GameOver() Then Exit Sub

 End If

 MakeHumanMove

End Sub

При обращении к процедуре MakeComputerMove на форме появляется сообщение «Ход компьютера». Указатель мыши принимает вид песочных часов. Далее происходит выбор компьютером хода посредством обращения к функции PickComputerMove и ставится соответствующее обозначение на выбранной им клетке. Затем управление передается следующему игроку, то есть человеку. Указатель мыши принимает стандартный вид.

Private Sub MakeComputerMove()

Dim Square As Integer

 Msg.Caption = "Ход компьютера"

 Msg.Refresh

 MousePointer = vbHourglass

 Square = PickComputerMove

 Board(Square) = NextPlayer

 DrawSquare Square

 NextPlayer = PLAYER_HUMAN

 MousePointer = vbDefault

End Sub

Если происходит обращение к процедуре MakeHumanMove, на форме появляется сообщение «Ваш ход».

Private Sub MakeHumanMove()

 Msg.Caption = "Ваш ход"

End Sub

Для того, чтобы пользователь мог поставить крестик или нолик необходима процедура Square. Она работает следующим образом. Сначала проверяется – в действии ли игра. Затем необходимо удостовериться, что очередь игрока-человека и что никто не владеет выбираемой клеткой. И только после этого происходит захват клетки для игрока.

Private Sub Square_Click(index As Integer)

 If Not GameInProgress Then Exit Sub

 If NextPlayer <> PLAYER_HUMAN Then Exit Sub

 If Board(index) <> PLAYER_NONE Then Exit Sub

 Board(index) = NextPlayer

 DrawSquare index

 If GameOver() Then Exit Sub

 NextPlayer = PLAYER_COMPUTER

 PlayerHasMoved

End Sub

Следующий шаг – обращение к функции GameOver. Если игра закончена, то происходит выход из процедуры, если нет, то происходит подготовка к следующему ходу (обращение к процедуре PlayerHasMoved).

Рассмотрим упомянутую нами выше функцию GameOver.

Функция GameOver использует обращения к функции Winner(Победитель). Функция Winner позволяет выявить игрока, который одерживает победу. Эта функция ищет победу игрока в строке, в столбце, по диагонали и «запоминает» победителя. Если победителя нет, то в игреничья.

Private Function Winner() As Integer

 Dim i As Integer

 For i = 1 To 7 Step 3

 If Board(i) <> PLAYER_NONE Then

 If Board(i) = Board(i + 1) And Board(i) = Board(i + 2) Then

 Winner = Board(i)

 Exit Function

 End If

 End If

 Next i

 For i = 1 To 3

 If Board(i) <> PLAYER_NONE Then

 If Board(i) = Board(i + 3) And Board(i) = Board(i + 6) Then

 Winner = Board(i)

 Exit Function

 End If

 End If

 Next i

 If Board(1) <> PLAYER_NONE Then

 If Board(1) = Board(5) And Board(1) = Board(9) Then

 Winner = Board(1)

 Exit Function

 End If

 End If

 If Board(3) <> PLAYER_NONE Then

 If Board(3) = Board(5) And Board(3) = Board(7) Then

 Winner = Board(3)

 Exit Function

 End If

 End If

 Winner = PLAYER_NONE

 For i = 1 To NUM_SQUARES

 If Board(i) = PLAYER_NONE Then Exit Function

 Next i

 Winner = PLAYER_DRAW

End Function

GameOver проверяет есть победитель или нет. Если победителя еще нет, то игра не оканчивается и происходит выход из этой функции (возвращение к игре). Если это не так, игра останавливается и в случае победы игрока Х выдается сообщение «Х выиграли», в случае победы игрока О выдается сообщение «О выиграли», или, в противном случае, выдается сообщение «Ничья». На этом игра оканчивается.

Private Function GameOver() As Integer

Dim pl As Integer

Dim i As Integer

Dim color As Long

 pl = Winner()

 If pl = PLAYER_NONE Then

 GameOver = False

 Exit Function

 End If

 GameInProgress = False

 If pl = PlayerX Then

 Msg.Caption = "X выиграли"

 ElseIf pl = PlayerO Then

 Msg.Caption = "O выиграли"

 Else

 Msg.Caption = "Ничья"

 End If

 Beep

 GameOver = True

End Function

Важнейшей функцией программы является функция выбора компьютером хода – PickComputerMove.

Первоначально в этой функции происходит проверка выбранного уровня сложности с помощью оператора Select Case. Если происходит выбор первого уровня сложности, то компьютер совершает произвольный ход.

При выборе второго уровня сложности, компьютер делает свой ход, после того как осуществит определенные вычисления (в порядке значимости):

¾                победный ход;

¾                ход, который преграждает победу пользователя в следующем ходе.

Если ни один из вышеупомянутых вариантов не применяется, то компьютер делает произвольный ход.

Для третьего уровня сложности компьютер делает свой ход, после того как осуществит вычисления (в порядке значимости):

¾               победный ход;

¾               ход, который преграждает победу пользователя в следующем ходе;

¾               ход, который преграждает победу пользователя после двух ходов.

Если ни один из вышеперечисленных вариантов не применяется, тогда компьютер делает стандартный ход.

Public Function PickComputerMove()

Dim pick As Integer

Select Case SkillLevel

 Case 1

 PickComputerMove = MakeRandomMove

 Exit Function

 Case 2

 pick = MakeWinningMove

 If pick = 0 Then

 pick = MakeSavingMove

 Else

 PickComputerMove = pick

 Exit Function

 End If

 If pick = 0 Then

 PickComputerMove = MakeRandomMove

 Else

 PickComputerMove = pick

 End If

 Case 3

 pick = MakeWinningMove

 If pick = 0 Then

 pick = MakeSavingMove

 Else

 PickComputerMove = pick

 Exit Function

 End If

 If pick = 0 Then

 pick = MakeSavingMove2

 Else

 PickComputerMove = pick

 Exit Function

 End If

 If pick = 0 Then

 PickComputerMove = MakeStandardMove

 Else

 PickComputerMove = pick

 End If

End Select

End Function

При выборе победного хода происходит обращение к функции, которая осуществляет вычисление победного хода – MakeWinningMove.

Эта функция действует следующим образом.

Сначала осуществляется поиск хода, который выиграет в строке. Для этого первая, четвертая, седьмая компьютерные и свободные клетки принимают значение 0. Это первые клетки строк, следовательно, вторая и третья клетки каждой строки будут иметь значения 1 и 2 соответственно. Далее проверяем клетки 0, 1, 2 в каждой строке. Если клетка занята компьютером, то компьютер занимает следующую за ней клетку. Если же клетка никем не занята, то следующая после нее клетка будет также свободна. После этого при условии, что компьютер занимает последнюю клетку строки, и свободная клетка не занимает первую клетку строки, то компьютер делает победный ход, занимая свободную клетку.

Далее осуществляется поиск хода, который выиграет в столбце. Принцип действия тот же, что и при поиске выигрышного хода в строке. Отличие состоит лишь в том, что «нулевыми» клетками будут начальные клетки столбцов – 1, 2, 3.

Затем программа ищет ход, который выиграет по диагонали. Поиск хода осуществляется аналогично. Рассматриваются клетки 1, 5, 9 и 3, 5, 7, то есть клетки, составляющие диагонали игрового поля. На этом поиск победного хода завершается.

Public Function MakeWinningMove() As Integer

Dim computersquares As Integer

Dim freesquare As Integer

Dim Square As Integer

Dim i As Integer

For Square = 1 To 7 Step 3

 computersquares = 0

 freesquare = 0

 For i = 0 To 2

 Select Case Board(Square + i)

 Case PLAYER_COMPUTER

 computersquares = computersquares + 1

 Case PLAYER_NONE

 freesquare = Square + i

 End Select

 Next

 If computersquares = 2 And freesquare <> 0 Then

 MakeWinningMove = freesquare

 Exit Function

 End If

Next

For Square = 1 To 3

 computersquares = 0

 freesquare = 0

 For i = 0 To 6 Step 3

 Select Case Board(Square + i)

 Case PLAYER_COMPUTER

 computersquares = computersquares + 1

 Case PLAYER_NONE

 freesquare = Square + i

 End Select

 Next

 If computersquares = 2 And freesquare <> 0 Then

 MakeWinningMove = freesquare

 Exit Function

 End If

Next

 computersquares = 0

 freesquare = 0

For i = 1 To 9 Step 4

 Select Case Board(i)

 Case PLAYER_COMPUTER

 computersquares = computersquares + 1

 Case PLAYER_NONE

 freesquare = i

 End Select

 Next

 If computersquares = 2 And freesquare <> 0 Then

 MakeWinningMove = freesquare

 Exit Function

 End If

 computersquares = 0

 freesquare = 0

 For i = 3 To 7 Step 2

 Select Case Board(i)

 Case PLAYER_COMPUTER

 computersquares = computersquares + 1

 Case PLAYER_NONE

 freesquare = i

 End Select

 Next

 If computersquares = 2 And freesquare <> 0 Then

 MakeWinningMove = freesquare

 Exit Function

 End If

End Function

Если вариантом выбора является ход, который преграждает победу пользователя в следующем ходе, то происходит обращение к функции MakeSavingMove. В функции MakeSavingMove, аналогично предыдущей функции, сначала осуществляется поиск хода, который предотвратит выигрыш пользователя в строке, далее – поиск хода, который предотвратит выигрыш в столбце, а затем – по диагонали. Эта функция анализирует ходы пользователя, после чего компьютер занимает ту клетку, которая могла бы стать победоносной для человека.

Public Function MakeSavingMove() As Integer

Dim humansquares As Integer

Dim freesquare As Integer

Dim Square As Integer

Dim i As Integer

 For Square = 1 To 7 Step 3

 humansquares = 0

 freesquare = 0

 For i = 0 To 2

 Select Case Board(Square + i)

 Case PLAYER_HUMAN

 humansquares = humansquares + 1

 Case PLAYER_NONE

 freesquare = Square + i

 End Select

 Next

 If humansquares = 2 And freesquare <> 0 Then

 MakeSavingMove = freesquare

 Exit Function

 End If

 Next

 For Square = 1 To 3

 humansquares = 0

 freesquare = 0

 For i = 0 To 6 Step 3

 Select Case Board(Square + i)

 Case PLAYER_HUMAN

 humansquares = humansquares + 1

 Case PLAYER_NONE

 freesquare = Square + i

 End Select

 Next

 If humansquares = 2 And freesquare <> 0 Then

 MakeSavingMove = freesquare

 Exit Function

 End If

 Next

 humansquares = 0

 freesquare = 0

 For i = 1 To 9 Step 4

 Select Case Board(i)

 Case PLAYER_HUMAN

 humansquares = humansquares + 1

 Case PLAYER_NONE

 freesquare = i

 End Select

 Next

 If humansquares = 2 And freesquare <> 0 Then

 MakeSavingMove = freesquare

 Exit Function

 End If

 humansquares = 0

 freesquare = 0

 For i = 3 To 7 Step 2

 Select Case Board(i)

 Case PLAYER_HUMAN

 humansquares = humansquares + 1

 Case PLAYER_NONE

 freesquare = i

 End Select

 Next

 If humansquares = 2 And freesquare <> 0 Then

 MakeSavingMove = freesquare

 Exit Function

 End If

End Function

При выборе хода, который преграждает победу пользователя после двух ходов, происходит обращение к функции MakeSavingMove2. В этой функции предполагается, что пользователь занимает клетку 5. Далее если первая клетка занята пользователем, а седьмая свободна, компьютер занимает седьмую свободную клетку. Если же седьмая клетка занята, а четвертая свободна, компьютер занимает четвертую свободную клетку. Аналогичным образом рассматриваются клетки (3, 9, 6), (7, 1, 4), (9, 3, 6).

Public Function MakeSavingMove2() As Integer

Dim pick As Integer

Select Case Board(5) = PLAYER_HUMAN

 Case True

 If Board(1) = PLAYER_HUMAN Then

 If Board(7) = PLAYER_NONE Then

 pick = 7

 ElseIf Board(4) = PLAYER_NONE Then

 pick = 4

 End If

 ElseIf Board(3) = PLAYER_HUMAN Then

 If Board(9) = PLAYER_NONE Then

 pick = 9

 ElseIf Board(6) = PLAYER_NONE Then

 pick = 6

 End If

 ElseIf Board(7) = PLAYER_HUMAN Then

 If Board(1) = PLAYER_NONE Then

 pick = 1

 ElseIf Board(4) = PLAYER_NONE Then

 pick = 4

 End If

 ElseIf Board(9) = PLAYER_HUMAN Then

 If Board(3) = PLAYER_NONE Then

 pick = 3

 ElseIf Board(6) = PLAYER_NONE Then

 pick = 6

 End If

 End If

End Select

MakeSavingMove2 = pick

End Function

Для осуществления произвольного хода происходит обращение к функции MakeRandomMove. Эта функция определяет произвольным образом клетку, и если она свободна, то компьютер занимает выбранную клетку.

Public Function MakeRandomMove() As Integer

Dim pick As Integer

Dim Square As Integer

Do Until pick <> 0

Square = Int(Rnd * 8) + 1

If Board(Square) = PLAYER_NONE Then pick = Square

Loop

MakeRandomMove = pick

End Function

Если вариантом выбора является стандартный ход, то происходит обращение к функции MakeStandardMove. Она осуществляет следующие действия:

-        переход в середину игрового поля (клетка 5);

-        переход в угол игрового поля (клетки 1, 3, 7, 9);

-        переход в имеющуюся в наличии клетку (2, 4, 6, 8).

Public Function MakeStandardMove() As Integer

Dim Square As Integer

Dim pick As Integer

 If Board(5) = PLAYER_NONE Then

 MakeStandardMove = 5

 Exit Function

 End If

 For Square = 1 To 9 Step 2

 If Board(Square) = PLAYER_NONE Then

 MakeStandardMove = Square

 Exit Function

 End If

 Next

 For Square = 2 To 8 Step 2

 If Board(Square) = PLAYER_NONE Then

 MakeStandardMove = Square

 Exit Function

 End If

 Next

End Function

 

ВЫВОДЫ ПО РЕЗУЛЬТАТАМ ЗАНЯТИЯ

Результаты открытого занятия показали эффективность применения мультимедийных технологий в образовательном процессе.

Были отмечены следующие положительные моменты:

а) студенты:

- легче усваивают новый материал, так как нет лишней информации;

- проявляют больше самостоятельности, активности и творчества при выполнении различных заданий на протяжении всего урока;

- с интересом знакомятся с представленной мультимедийным проектором коллекцией изображений, текстов и данных, сопровождающихся различными визуальными эффектами;

- учатся работать в группе, слушать друг друга, корректно вести себя по отношению друг к другу.

б) преподаватель:

- имеет возможность активизировать мыслительную деятельность учащихся, отказавшись от постоянных повторов информации и сосредоточив свое внимание на индивидуальной работе, как с отдельными студентами, так и на работе с группой в целом;

- может уделить больше времени на обсуждение вопросов по теме;

- имеет возможность применить на занятии элементы развивающего обучения, опираясь на разнообразный наглядный материал, представленный на занятии мультимедийным проектором.

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1.    Майк МакГрат. Программирование на Visual Basic для начинающих. (2017) PDF Издательство: Эксмо.

2.    UML. Основы. Третье издание. Краткое руководство по стандартному языку объектного моделирования. (2006) Издательство: Символ- Плюс.

3.    Александр Леоненков. Самоучитель UML, 2-е издание. (2004) Издательство: БХВ-Петербург.



Приложение 1

Презентация к занятию

1    2

3    4

5    6

7    8

9    10

11

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическая разработка открытого занятия по МДК.03.01 Технология разработки программного обеспечения для студентов третьего курса специальности 09.02.03 Программирование в компьютерных системах"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Инженер лифтового оборудования

Получите профессию

Экскурсовод (гид)

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 660 917 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 19.05.2019 487
    • DOCX 1 мбайт
    • 19 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Калашникова Ольга Алексеевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Калашникова Ольга Алексеевна
    Калашникова Ольга Алексеевна
    • На сайте: 4 года и 11 месяцев
    • Подписчики: 0
    • Всего просмотров: 4044
    • Всего материалов: 13

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Фитнес-тренер

Фитнес-тренер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Организация деятельности библиотекаря в профессиональном образовании

Библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 282 человека из 66 регионов
  • Этот курс уже прошли 849 человек

Курс профессиональной переподготовки

Руководство электронной службой архивов, библиотек и информационно-библиотечных центров

Начальник отдела (заведующий отделом) архива

600 ч.

9840 руб. 5900 руб.
Подать заявку О курсе
  • Этот курс уже прошли 25 человек

Курс профессиональной переподготовки

Библиотечно-библиографические и информационные знания в педагогическом процессе

Педагог-библиотекарь

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 483 человека из 70 регионов
  • Этот курс уже прошли 2 325 человек

Мини-курс

Подготовка менеджеров по продажам: аспекты телефонных переговоров

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе

Мини-курс

Искусство: от истории к глобализации

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Продвинутые техники нарративного подхода в психологии

5 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 25 человек из 16 регионов
Сейчас в эфире

Арт-педагогика как метод профилактики детских неврозов

Перейти к трансляции