Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
AIRWALK
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 19
#1

Написать простейшую игру на С++ - C++

07.03.2010, 15:39. Просмотров 2026. Ответов 0
Метки нет (Все метки)

Вот дано задание из практической работы. Прошу помочь с решением.

Написать простейшую игру. Эта игра в слова, вы загадываете слово, а компьютер отгадывает, задавая наводящие вопросы. В этой программе будем работать со строками, поэтому, следует подключить STRING.H. Для ввода–вывода воспользуемся потоками, поэтому подключить IOSTREAM.H.

Описание игры: Компьютер задает вопросы игроку, на которые тот отвечает ДА или НЕТ, сначала компьютер говорит «Загадайте слово», и начинает спрашивать про то, что вы загадали, например «Это пушистое?», если игрок ответил ДА, то компьютер пытается угадать это слово, например спрашивает «Это кот?», если игрок отвечает ДА, то считается, что компьютер отгадал, и игра начинается с начала. Если НЕТ, то компьютер продолжает задавать наводящие вопросы, пока у него не закончится его «словарный запас». В итоге, если компьютер не угадал ни одного слова, он cдается и спрашивает игрока, что это за слово. Игрок должен вписать это слово, после компьютер попросит описать такое слово, и игрок должен ввести описание. Чем дольше вы играете, тем «умнее» компьютер. Игра продолжается до тех пор, пока игрок не введет слово ХВАТИТ или какое либо еще.

Для написания такой программы, следует выделить много памяти для хранения слов и описаний слов, они будут храниться в массивах по порядку, и каждое слово и описание будет иметь номер. На каждый вопрос игрок может ответить ДА или НЕТ, что приводит к переходу на следующий вопрос и слово. Поэтому, следует также выделить память для ответов ДА и НЕТ. В этой памяти будут храниться номера тех слов, на которые этот ответ переводит.

Игра может продолжаться бесконечно, поэтому, в программе основным является бесконечный цикл, в котором и происходят все действия. Выход из цикла происходит тогда, когда игрок введет слово ХВАТИТ, или заполнится вся память. Каждая итерация цикла это новый тур игры, и компьютер просит загадать слово. Далее следует цикл, назовем его цикл-угадывание, который перебирает слова, и пытается их угадать, выход из этого цикла происходит в двух случаях: если компьютер угадал, то переходим на самое начало, в бесконечный цикл, если нет, то следует спросить что это за слово. Условием выполнения этого цикла будет номер текущего слова, если этот номер равен максимальному количеству слов, то компьютер не нашел ответа.

Итак, в цикле угадывания компьютер должен вывести на экран описание текущего слова, и ожидать ввода ответа. Если игрок набрал ХВАТИТ выходим из главного цикла. Если игрок набрал НЕТ, то следует запомнить номер последнего слова, и прочитать номер следующего слова из массива с номерами для ответов НЕТ, перейти к следующему шагу цикла-угадывания. Если игрок ответил ДА, то вывести на экран слово, и ожидать ввода ответа. Если игрок набрал ХВАТИТ, выходим из главного цикла. Если игрок набрал НЕТ, то следует запомнить номер последнего слова и прочитать номер следующего слова , из массива с номерами для ответов ДА, если игрок набрал ДА, то переходим к началу нового тура игры - компьютер угадал.

Если компьютер не угадал – закончился цикл-угадывание, то выводим на экран просьбу - назвать это слово, ожидаем ввода слова, сначала во временную переменную. Проверяем длину введенного слова, не больше ли она чем допустимая длинна слова, если больше, то урезаем слово до допустимой длины. Запоминаем введенное слово в массиве слов, поставив его последним. Для этого заведем переменную – «количество слов в массиве», которую каждый раз, при добавлении нового слова, будем увеличивать. Эта переменная – также позиция последнего слова. Далее выводим на экран просьбу - описать это слово, ожидаем ввода слова, проверяем длину введенного описания, не больше ли она чем допустимая длинна описания, если больше, то урезаем его до допустимой длины. Запоминаем введенное описание в массиве описаний. Теперь в массивы номеров ответов запишем номер нового слова. Для этого в специальной переменной будем запоминать, как ответил последний раз на описание слова игрок, если ответил на описание НЕТ, то выберем номер следующего слова из массива НЕТ, если ответил ДА то из массива ДА. Увеличим количество слов на 1, и если это количество равно размеру массива слов, то выходим из программы – память закончилась. Иначе повторяем заново.

Для инициализации следует записать в массивы ДА и НЕТ числа равные максимальному количеству слов. В массив слов и описаний записать одно слово и его описание - это первый вопрос, а количество слов увеличить на 1.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2010, 15:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать простейшую игру на С++ (C++):

Помогите написать простейшую программу - C++
Доброго времени суток! Помогите пожайлуста написать простую программу на С++, без использования массива: "дана последовательность n,...

Помогите написать простейшую программу!!! - C++
Я навичок в програмирование... Помогите написать программу : Передать в пользовательскую функцию массив и в пользовательской функции...

Написать простейшую нейронную сеть - C++
Помогите с заданием, пожалуйста. Написать алгоритм реализующий работу нейрона МакКаллока-Питтса сигмоидальной функции активации....

Написать простейшую программу робота-пылесоса с графической средой, интерфейсом и датчиками пространстваи загрязненности - C++
Помогите пожалуйста написать, задали такой ужас на 2 семестре 1 курса, знаний по тому, как её делать - 0!

написать игру - C++
Всем привет! Нужна срочно самая простая игра, написанная на С/С++, можно Паскаль. Сам персонаж должен двигаться и можно было управлять...

Си++ написать игру - C++
Помогите пожалуйста написать игру на си ++,четыре в ряд!Очень нужно!!!!!

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2010, 15:39
Привет! Вот еще темы с ответами:

Написать игру - C++
Нужно игру написать,где есть три монстра и два игрока,у каждого игрока по 3 монстра. Эти монстры атакуют и двигаются. Не поняла, как это...

Написать игру кости - C++
Здравствуйте, стоит вот такая задача: "Основное правило игры в кости — каждый игрок по очереди бросает некоторое количество игральных...

Написать игру гонки - C++
Прошу написать игру гонки в которые играют на тетырсе!

Написать игру «Питон» - C++
Написать игру «Питон». Игрок управляет питоном, который постоянно движется. На карте по одному появляются «кролики», которых питон может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru