Учебная работа. Курсовая работа: Игра Кто хочет стать миллионером
Кафедра системного анализа и управления
Курсовая работа
../../../../../html/Учёба/История/EXPRESSIONIZM.files/munch.scream.jpg
По технологии программирования
«Игра ‘Кто желает стать миллионером?’»
Дубна, 2003
Оглавление
1. Введение
2. Постановка задачки
3.Теоретическая часть5
4. Описание программки.7
5. Блок-схема главный программы9
6. Блок-схема доборной процедуры7
7. Листинг программки
8. Вывод
9. Перечень литературы
1. Введение
сейчас на нашем телевидении постоянно можно узреть огромное количество веселительных программ. Например, “Слабенькое звено”, “Поле чудес”. Все мы лицезрели их и знаем, что они из себя представляют. Из всего этого огромного количества я избрал “Кто желает стать миллионером?” в качестве предмета для написания курсовой работы. В телевизионном варианте выиграть миллион удавалось всего только нескольким людям. В её электрическом аналоге создать это не составить такового огромного труда, но зато и игра идёт не на истинные средства. В любом случае, вы можете отдохнуть, играя.
2. Постановка задачки
Создать игру-аналог известной телевизионной передачи “Кто желает стать миллионером?” с внедрением программной среды VisualBasic и средств объектно-ориентированного программирования.
3.Теоретическая часть
При написании программки я воспользовался таковыми элементами, как Form, TextBox, CommandButton, Line, ListBox, Label, Image.
объект Form
при организации проекта форма даётся по дефлоту. Её нету на обычной панели управления. Но форма также является объектом, у неё имеется собственный набор параметров и событий. На панели управления имеется пиктограмма AddForm, добавляющая в проект ещё одну форму, а не создавая новейший.
Для объекта CommandButton
о
сновное событие, связанное с ним, это Click(). Опосля щелчка определённые деяния, связанные с данной клавишей, будут совершенны немедля. С клавишами соединены не только лишь действия, да и характеристики. В данной программке мы употребляли свойство Enabled – делающее клавишу или активной, или неактивной. Данное свойство может принимать два значения – True либо False. Также имеются характеристики, отвечающие за положение клавиши на дисплее – характеристики Top, расстояние меж верхней стороной объекта и верхней границей контейнера, его содержащего, и Left, расстояние меж левой стороной объекта левой границей контейнера, его содержащего.
объект TextBox
служит для вывода, ввода и редактирования текста. Для этого поля можно задавать разные шрифты, размеры букв, цвета, ограничивать количество вводимых букв. По дефлоту это поле содержит одну строчку текста, но этот режим можно поменять на многострочный. Также элемент владеет качествами Top, Left, описанными выше для элемента CommandButton; свойством ForeColor, отвечающим за цвет вводимых букв.
Объект Line
употреблялся в моей программке для разных оформительских целей. Владеет качествами BorderColor – цвет данной полосы, BorderStyle – наружный вид полосы, BorderWidth – толщина полосы, Visible – видимость объекта на форме.
объект ListBox
дозволяет юзеру выбирать из перечня одно либо несколько значений. В хоть какой момент в перечень можно добавить новейшие значения либо удалить имеющиеся. Если перечень не сумеет отобразиться в данном размере объекта полностью, то в поле перечня автоматом добавляется полоса прокрутки.
объект Image
предназначен для отображения рисунков. В него можно поместить растровый набросок в формате bmp, wmf, ico, gif. Можно избрать режим отображения: либо размеры рисунка поменяются до размеров данного элемента Image, либо элемент Image поменяется до размеров рисунка. Image не дозволяет отрисовывать и не допускает группировки объектов снутри себя.
недозволено не упомянуть такие операторы языка, как условные операторы IF и CASE, операторы цикла WHILE и FOR. Оператор IF реализует метод конструкции развилка и изменяет порядок выполнения операторов зависимо от истинности либо ложности некого условия. При помощи оператора CASE можно выбирать вариант деяния из хоть какого количества вариантов критерий. Оператор цикла WHILE организует выполнение цикла, состоящего из хоть какого числа операторов, с неведомым заблаговременно числом повторений. Выход из цикла осуществляется при ложности некого логического выражения. Оператор цикла FOR организует выполнение группы операторов определённое число раз. В моей программке употребляется также процедура Open…For для открытия файла для чтения.
4. Описание программки
Моя программка начинается с возникновение основного окна, в каком происходят все главные деяния. Поначалу юзеру предлагается ввести его имя, опосля чего же начинается сама игра. Задаётся вопросец и предлагается 4 варианта. Вопросец случайным образом выбирается из четырёх вероятных. Варианты ответа также берутся из файла и показываются в перечне из четырёх частей. Также отображается сумма, которую игрок получает в итоге правильного ответа. В случае правильного ответа, игроку задаётся последующий вопросец. По мере приближения к 15 вопросцу, игрок набирает очки. Есть две “несгораемые” суммы, равные 1000 и 32000. Означающие, что если игрок набрал эту сумму, то в случае предстоящего неверного ответа, он получает эту сумму, а не уходит ни с чем. Если игрок отвечает некорректно, то он проигрывает, выдаётся сообщение с указанием выигранной суммы. Для облегчения процесса игры есть три подсказки – 50 на 50, звонок другу, помощь зала. 1-ая подсказка, 50 на 50, убирает из вариантов ответа два некорректных. 2-ая, звонок другу, выдаётся юзеру предполагаемый верный ответ. 3-я, помощь зала, имитирует опрос зрителей с целью выявления варианта, набравшего большее число голосов. Любая подсказка быть может применена один раз в процессе игры. Когда игрок отвечает верно на крайний пятнадцатый вопросец, он считается победителем и получает 1000000 очков, выдаётся сообщение о победе.
Также имеется возможность помощи игроку с целью разобраться с интерфейсом программки. При нажатии клавиши “Помощь” возникает новое окно, где указаны описания всех присутствующих в игре частей. Что обязано облегчить осознание процесса игры.
Наружный вид формы представлен на Рис.1. Так же на рисунке указаны пояснения к главным элементам интерфейса игры.
Рис.1.
Вид рабочей формы
5. Блок-схема главный программки
7. Блок-схема доборной процедуры
Блок-схема метода процедуры, обеспечивающей в игре подсказку “50 на 50”.
8.
Листинг
программки
Sub GameQuestions(AnswerIsCorrect As Integer)
Dim Questions(1 To 15, 1 To 4) As String
Dim QuestionsMoney(1 To 15) As Long
Dim Answers(1 To 15, 1 To 4) As String
Dim Answer(1 To 4) As String
Dim AnswersRight(1 To 15) As String
Dim ChooseAnswer(1 To 4) As String
Dim I As Integer, J As Integer, Imass As Integer, Jmass As Integer
Dim np As Integer, fp As Integer, Score As Long, Unburned As Long
Dim BuferSTR As String
Randomize
If AnswerIsCorrect = 2 Then
I = 1
End If
If AnswerIsCorrect = 1 Then
I = LabelQuestionI.Caption + 1
End If
If I = 0 Then
WinLooseLine1.Visible = 1
WinLooseLine2.Visible = 1
WinLooseLine3.Visible = 1
WinLooseLine4.Visible = 1
LabelWinLoose.Visible = 1
LabelWinLoose.Caption = «Выответилиневерно ! Вашвыигрыш: » & LabelUnburned.Caption & » средств !»
I = 1
EndGame 0
End If
If I = 16 Then
WinLooseLine1.Visible = 1
WinLooseLine2.Visible = 1
WinLooseLine3.Visible = 1
WinLooseLine4.Visible = 1
LabelWinLoose.Visible = 1
LabelWinLoose.Caption = «Поздравляю, » & TextNameInput.Text & «, вывыигралимиллионденег !»
Score = 1000000
LabelScoreTitle.Caption = Score
LabelScore.Caption = Score
EndGame 0
Else
J = Rnd * 3 + 1
Open «C:VBKursKYquemon.txt» For Input As #1
For Imass = 1 To 15
Line Input #1, BuferSTR
QuestionsMoney(Imass) = BuferSTR
Next Imass
Close #1
Open «C:VBKursKYque.txt» For Input As #1
For Imass = 1 To 15
For Jmass = 1 To 4
Line Input #1, BuferSTR
Questions(Imass, Jmass) = BuferSTR
Next Jmass
Next Imass
Close #1
Open «C:VBKursKYansw.txt» For Input As #1
For Imass = 1 To 15
For Jmass = 1 To 4
Line Input #1, BuferSTR
Answers(Imass, Jmass) = BuferSTR
Next Jmass
Next Imass
Close #1
Open «C:VBKursKYanswrig.txt» For Input As #1
For Imass = 1 To 15
Line Input #1, BuferSTR
AnswersRight(Imass) = BuferSTR
Next Imass
Close #1
BuferSTR = AnswersRight(I)
np = 1
fp = 1
ChooseAnswer(1) = SplitAnswers(np, BuferSTR, 0)
np = np + Len(ChooseAnswer(1)) + 1
ChooseAnswer(2) = SplitAnswers(np, BuferSTR, 0)
np = np + Len(ChooseAnswer(2)) + 1
ChooseAnswer(3) = SplitAnswers(np, BuferSTR, 0)
np = np + Len(ChooseAnswer(3)) + 1
ChooseAnswer(4) = SplitAnswers(np, BuferSTR, 1)
If AnswerIsCorrect = 1 Then
Score = QuestionsMoney(I — 1)
LabelScore.Caption = Score
If Score = 1000 Or Score = 32000 Then
Unburned = Score
LabelUnburned.Caption = Unburned
End If
End If
LabelQuestionI.Caption = I
LabelQuestionJ.Caption = J
QuestionNumber.Caption = «вопросец » & I & » | » & QuestionsMoney(I) & » средств«
LabelScoreTitle.Caption = «Счёт: » & Score
LabelQuestion.Caption = Questions(I, J)
BuferSTR = Answers(I, J)
np = 1
Answer(1) = SplitAnswers(np, BuferSTR, 0)
np = np + Len(Answer(1)) + 1
Answer(2) = SplitAnswers(np, BuferSTR, 0)
np = np + Len(Answer(2)) + 1
Answer(3) = SplitAnswers(np, BuferSTR, 0)
np = np + Len(Answer(3)) + 1
Answer(4) = SplitAnswers(np, BuferSTR, 1)
AddItemsToList Answer(1), Answer(2), Answer(3), Answer(4)
Choose1.Caption = Answer(1)
Choose2.Caption = Answer(2)
Choose3.Caption = Answer(3)
Choose4.Caption = Answer(4)
ChooseRight.Caption = ChooseAnswer(LabelQuestionJ.Caption)
EndIf
EndSub
9. Вывод
Мной была написана программка на языке программирования VisualBasic, были применены способы объектно-ориентированного программирования, также использовалась работа с файлами. программка дозволяет игроку проверить свои познания в совсем различных областях.
10. Перечень литературы
1. Мазный Г.Л., Прогулова Т.Б. Методическое пособие к курсовому проектированию по высшей арифметике и информатике. — Дубна: Интернациональный институт природы, общества и человека “Дубна”, 1996.
2. О.И.Мельникова, А.Ю.Бонюшкина. Учебное пособие по технологии программирования. – Дубна: Интернациональный институт природы, общества и человека “Дубна”, 2001.
]]>