Skip to content
ausendzhikovaPublic

About

My-First-Mini-Project

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

QuizGame

My-First-Mini-Project

Най-напред в конзолата се визуализират 4 опции(1-Нова игра, 2-Добавяне на нов въпрос,3-Редактиране на въпрос,4 - Изход), които потребителят има право да избере. От него се очаква да въведе число от 1 до 4. Ако въведенето число не е в този интервал, тогава се извежда съобщение за грешен вход и се иска от потребителя да въведе число в интервала.

I. Ако потребителя избере опция 1 (Нова игра), тогава в конзолата се визуализират 6 нови опции за избор на категория, от която ще са въпросите.(При избор на число, което не е в интервала от 1 до 6 се извежда съобщение за грешка и се очаква от потребителя да въведе ново такова.) Всеки въпрос има различна трудност.Лесните въпроси (1-3) се намират във файла question1.txt, средните( 4-6) - в question2.txt и трудните(7-10) - в question3.txt. В отделен файл с разшиерение .h се намира фунцкията optionNewGame, с помощта на която въпросите се визуализират в конзолата един по един по следния начин:

  • Първо се извежда въпроса, изисква се от потребителя да отговори и ако отговорът е верен се извежда следващия въпрос,който е с по-висока трудност и т.н., но ако потребителят сгреши играта приключва и в конзолата се извежда сумата, която е спечелил играчът.
  • Във функцията optionNewGame се проверява и кой файл трябва да бъде отворен(question1.txt, question2.txt, question3.txt). Когато потребителят е отговорил правилно на всички въпроси с трудност 1-3, в main функцията в cpp файла се променя стойността на променливата fileName="question2.txt" и отново се извиква функцията optionNewGame и така изпълнението на програма продължава. По аналогичен начин се извеждат и въпросите от файла question3.txt.
  • След като бъде отворен съответния файл с въпроси, всеки въпрос и сътветно отговорите към него, нивото на трудност и категорията му се запазват в променливи от тип string, а на конзолата се визуализират само онези, чиято трудност е с 1 по-голяма от тази на предходния въпрос и категорията на въпроса съвпада с тази, която потребителят е избрал по-рано. При избор на всички категории(опция 6) от потребителя , функцията е предефинирани и условието за съвпадение между категория на въпроса и избрана такава от играча не влияе върху изпълнението на горепосочената функция. Във функцията има инициализиран брояч, който следи колко въпроса са се извели на конзолата и чрез него се изписва поредния номер на въпроса.

Има създадена отделна функция(selectedCategory), която проверява коя категория въпроси е избрал потребителя и в зависимост от това в main функцията чрез проверки за опциите за категория 1,2,3,4,5 като параметър в съответната функция се подава и тази опция, като чрез този подаден параметър по-нататък при изпълнение на по-горепосочената функция се проверява дали категорията, която е избрал потребителя съпада с категорията на въпроса, до който сме стигнали при четене на файла. Ако това не е така се пропуска неговото извеждане на конзолата. Същото важи и ако трудността на достигнатия въпрос във файла не е с 1 по-голяма от тази на предходния изведен в конзолата въпрос.

Потребителят има право да използва 3 жокера по време на изпълнение на програмата(50/50, помощ от публиката, обади се на приятел). След като на конзолата се изведе въпроса, потребителят бива питан дали желае да използва жокер. Ако отговорът е не, от него се очаква да отговори на въпроса. Ако отговора му е да, тогава на конзолата се извежда съобщение, което го информира за възможните жокери, които може да използва (50/50 - два от грешните отговори биват елиминирани; помощ от публиката - публиката предлага верен отговор, като вероятността за грешка е по- голяма при по-трудните въпроси; обади се на приятел - на конзолата се извежда възможен отговор, като отново има различен процент вероятност за грешка в зависимост от трудността на въпроса). След като потребителят е използвал някой(някои) от жокерите, при следващ такъв той има право да избера само измежду тези, които не е използвал. Ако потребителят е използвал всички възможни жокери, след като въпросът се изведе на конзолата, от него се очаква да въведе отговор на въпроса(без да се извеждат съобщения, свързани с жокерите).

II. За да бъде редактиран въпроса от потребителя първо се изисква да въведе идентификационния номер на въпроса, след това нивото му на трудност. Нивото на трудност е необходимо, за да се знае кой от трите текстови файла да бъде отворен. Един от трите файла с въпросите се отваря за четене, във функцията се отваря и друг текстов файл("new.txt"), където се копира съдържанието от файла с въпросите. Но когато се стигне до въпроса, който потребителят иска да редактира, от него се изисква да въведе необходимите данни и той замества предишния въпрос в новия файл. След това файла с име "new.txt" се преименува като взема името на файла, който е редактиран, а старият файл с въпроси се изтрива.

III. За въвеждане на нов въпрос е създаден header файл, където има 3 функции(enterQuestion, writeQuestion,readFile). Функцията readFile прочита всички редове в съответния файл(името на файла се подава като параметър). Чрез функцията writeQuestion на конзолата се извеждат подходящи съобщения и се очаква от потребителя да въведе нужните данни. Във функцията enterQuestion се проверява кой файл да бъде отворен в зависимост от нивото на трудност на въпроса, който потребителят иска да въведе. След това се отваря някой от трите текстови файла и се извиква функцията writeQuestion ( функцията readFile бива извикана във функцията writeQuestion). Идентификационния номер на въпросите се генерира автоматично.

IV. При избор от потребителя на опция 4 (Изход) в конзолата се извежда съобщението "Goodbye" и програма приключва своето изпълнение.

About

My-First-Mini-Project

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages