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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ подключение hpp и срр,что то не правильно сделал,классы http://www.cyberforum.ru/cpp-beginners/thread102051.html
сначала создаю hpp файл,в нем создаю интерфейс класса,потом срр файл создаю,в нем класс начинаю определять,а в меин.срр создаю объект..вобщем вот коды employee.hpp #include <windows.h> #include <iostream> class employee{ int age,years,salary; public:
C++ max= Привет. Помогите плжалуйста разобраться с функциями. Нужно просто найти Максимальный элеммент. #include<iostream.h> const n=99; void f1(int n); int main() { int a,n; cout<<"Vvedi n "<<endl; cin>>n; http://www.cyberforum.ru/cpp-beginners/thread102040.html
Массив слов C++
Мне нужно сделать массив слов. char words = { "lalala","loplpo"}; как то так но вылазит оибка, так как массив получается двумерный. но когда я делаю words* все норм. объясните почему? и еще написано на одном сайте что string удобнее чара... так ли это?
C++ Функция для нахождения среднего значения
Скажите пожалуйста, что у меня тут неправильно... я знаю что много чего, скажите что исправить, чтобы она работала. Условие задачи: написать функцию для нахождения среднего значения всех мин-ных и макс-ных элементов массива и замены им все макс-ные элементы. #include <iostream.h> #include <conio.h> float func(float *a, int k) { float min=a; float max=a; for(int i=0;i<k;i++) {
C++ Детерминант http://www.cyberforum.ru/cpp-beginners/thread102018.html
Помогите сделать произведение детерминантов в потоках, если детерминант задаётся тоже в потоках. Вот код // kontr.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "iostream" #include "conio.h" #include "windows.h" #include "math.h"
C++ Лагранж Помогите пожалуйста дорешать прогу, необходимо посчитать формулу,(она приложена в дополнении), ток та что бы числа брались из txt-файла, и выводились туда, я кое-что написал, помогите доделать, вот код того, что я написал#include <iostream> using namespace std; int main () { double s=0; double m=1; double x0=1; int i=1, k; double x={0, 1, 2, 3, 4, 5, 6, 7}, y={0, 1, 4, 9, 16, 25, 36,... подробнее

Показать сообщение отдельно
AIRWALK
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 19
07.03.2010, 15:39     Написать простейшую игру на С++
Вот дано задание из практической работы. Прошу помочь с решением.

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

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

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

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

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

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

Для инициализации следует записать в массивы ДА и НЕТ числа равные максимальному количеству слов. В массив слов и описаний записать одно слово и его описание - это первый вопрос, а количество слов увеличить на 1.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru