0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 4
1

Многофайловые проекты и шаблон MVC

07.01.2018, 18:44. Показов 2936. Ответов 44
Метки нет (Все метки)

Привет помогите!

Разработать интерактивную программу «Try to Guess the Number» («Попробуй угадать число»), которая эмулирует классическую игру на отгадывание числа. Суть программы (игры) сводиться к следующему: компьютер генерирует слу-чайное число из диапазона, к примеру, от 1 до 100, а пользователь (далее иг-рок) пытается отгадать число за минимальное количество попыток. При каж-дой очередной попытке компьютер «подсказывает» игроку, как соизмеряется предложенный вариант игрока с действительным загаданным компьютером числом: загаданное число больше или меньше указанного (higher/lower). Как только игрок отгадывает число, компьютер должен «поздравить» его с выво-дом на экран угаданного числа и количество затраченных игроком попыток. Далее компьютер может «предложить» повторно сыграть игру или выйти из программы.
Для универсальности предложенной программы можно добавить возможность выбора диапазона генерирования компьютером случайных чисел, а также задания ограничения на количество попыток. В случае, если игрок не укладывается в заданное количество попыток (т.е. проигрывает), программа должна выводить суровую надпись «Game Over».

Добавлено через 43 секунды
может у кого есть пример кода?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2018, 18:44
Ответы с готовыми решениями:

Многофайловые проекты и шаблон MVC
Разработать интерактивную программу «Try to Guess the Number» («Попробуй угадать число»), которая...

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

Многофайловые проекты
1. Составить программу, которая бы реализовала обработку массива (Вариант) с использованием...

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

44
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
07.01.2018, 20:54 2
Здравствуйте!
Это для какого курса задание? Мне кажется Вы главное не сказали... В заголовке указано, что проект должен быть многофайловый и MVC модели соответствовать. Это так? Дело в том, что без всего этого, проект сводится к нескольким циклам.
1
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 7
07.01.2018, 21:21 3
Старый воин, подобного не писал... для Linux
поможете буду благодарен. можно в ЛС проект или тут.
буду сидеть разбираться.
Миниатюры
Многофайловые проекты и шаблон MVC  
0
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 7
07.01.2018, 21:25 4
может есть у кого кусок кода. посижу поразбираюсь.
кидайте сюда
0
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
07.01.2018, 21:31 5
Сколько у Вас есть времени на решение?
0
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 7
07.01.2018, 21:40 6
Старый воин, 2-3 дня
если поможете аналогично сам сделаю... у меня ещё 5 шт. которые по аналогии похожи.
сделаю.выложу сюда. на благо форума
0
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
07.01.2018, 21:45 7
Попробую помочь. Давайте в эту тему выкладывать, может еще кому пригодиться. В командной строке Linux работали с компилятором? Если нет, я напишу как.
0
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 7
07.01.2018, 21:48 8
да работал debian, ubuntu
стоит ide code::block на ubuntu так для информации

p.s. можете написать пускай будет. для будущих людей
0
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
07.01.2018, 21:50 9
Понял. Чуть позже выложу.
2
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 7
07.01.2018, 21:57 10
Старый воин, ок, спасибо.
выкладывайте тогда сюда в тему.
0
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 1
08.01.2018, 12:41 11
Старый воин, нусс есть что?)
0
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
08.01.2018, 13:36 12
Да, сейчас выложу. Пока в CodeBlocks делал (удобнее). Компиляцию в командной строке отдельно распишу.
Наверное в архив сейчас сожму и выложу. Правда не до конца отлажена. При выборе ограничения на число попыток угадать неправильно работает. Посмотрите если не трудно. Я только ближе к вечеру опять смогу этим заняться.
1
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
08.01.2018, 13:40 13
Вот, готово
Вложения
Тип файла: zip NGame.zip (68.1 Кб, 18 просмотров)
6
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
08.01.2018, 13:43 14
Вот во что казалось бы простая задача может вылиться, если модель MVC криво использовать
0
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 1
08.01.2018, 14:08 15
Старый воин, ок, гляну. буду сидеть разбираться.
кстати, напишите Ваш e-mail для связи.
0
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
08.01.2018, 14:18 16
Кажется нашел...
В файле Control.cpp метод run().
Там проверка неправильно выполнялась. Заменил, вроде работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
bool Control::run()
{
    bool flag=false;
    int gamer_num;
    game->ClearNumSteps();
    //*************
    //перезапуск генератора
    game->rand_run();
    //*************
    while(!flag)
    {
        std::cout << "Задайте число: ";
        std::cin >> gamer_num;
        setNum(gamer_num);
            if(game->run())
            {
                std::cout << "Случайное число " << game->getNumRandom() << std::endl;
                std::cout << "Вы угадали за " << game->getNumSteps() << " попыток" <<std::endl;
                flag=true;
            }
            else
            {
                if(game->getStatus())
                {
                    std::cout << "Ваше число больше" << std::endl;
                }
                else
                {
                    std::cout << "Ваше число меньше" << std::endl;
                }
                flag=false;
            }
        if(StepLimit==game->getNumSteps())
        {
            std::cout << "Игра завершена!" << std::endl;
            flag=true;
        }
    }
return true;
 
}
6
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 2
08.01.2018, 16:09 17
Старый воин, дайте e-mail для связи.
0
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
08.01.2018, 16:33 18
Ну вот, как обещал, выкладываю компиляцию этого проекта из командной строки. Самый простой способ это закинуть все в какой либо каталог (имеется в виду все файлы *.cpp и *.h). У меня это /home/user/Work/Poligon/NGame Можно конечно там создать структуру папок типа src, include, ogj и bin, но просто, чтобы продемонстрировать компиляцию и сборку, можно обойтись и без этого.
Кроме того, можно компилировать в ручном режиме (вводя в командной строке последовательно команды для каждого модуля), а можно упростить себе жизнь и использовать утилиту make. Естественно, пойдем по легкому пути… Для этого, в том же каталоге, где лежат и все файлы с исходным кодом создаем файл с именем makefile. По большому счету, не так важно, как он называется, но самое главное у него внутри. Имя makefile (на некоторых системах требуется называть как Makefile) является стандартным и ищется по умолчанию при вызове команды make. С другими именами файлы вызываются путем передачи в качестве параметра с ключем -f (например: make -f myfile).
Внутри файла пишем следующее:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
CC=g++
 
rebuild: main.o Control.o Model.o View.o
    $(CC) main.o Control.o Model.o View.o -o prog
main.o: main.cpp View.h
    $(CC) -c main.cpp -I/home/user/Work/Poligon/NGame/
Control.o: Control.cpp Control.h
    $(CC) -c Control.cpp -I/home/user/Work/Poligon/NGame/
Model.o: Model.cpp Model.h
    $(CC) -c Model.cpp
View.o: View.cpp View.h
    $(CC) -c View.cpp -I/home/user/Work/Poligon/NGame/
Здесь создана переменная CC, которая содержит название компилятора (можно и без нее обойтись, если подставить везде вместо $(CC) g++).
Затем, созданы несколько целей:
это rebuild — для сборки исполняемого файла
main.o, Control.o, Model.o, View.o — для получения объектных модулей.
Обратите внимание, что строки, начинающиеся со знака $ должны быть сдвинуты табуляцией и ни в коем случае не пробелами (там даже к количеству знаков в табуляции претензии есть). Поэтому, если вдруг команда не распознается, лучше два таба впереди поставить (иногда помогает).
Конструкция -I/home/user/Work/Poligon/NGame/ показывает утилите make, где искать файлы с расширением *.h (Ваши файлы, созданные в рамках проекта).
Файлы, после имени цели (например: Control.o: Control.cpp Control.h) вроде как показывают, какие файлы будут использованы для построения цели, точно не знаю, но и без них тоже хорошо работает, кроме первой строки.
То есть вот это тоже работает:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
CC=g++
 
rebuild: main.o Control.o Model.o View.o
    $(CC) main.o Control.o Model.o View.o -o prog
main.o: 
    $(CC) -c main.cpp -I/home/user/Work/Poligon/NGame/
Control.o:
    $(CC) -c Control.cpp -I/home/user/Work/Poligon/NGame/
Model.o:
    $(CC) -c Model.cpp
View.o:
    $(CC) -c View.cpp -I/home/user/Work/Poligon/NGame/
Дальше просто в командной строке, находясь в каталоге с рабочими файлами выполнить команду make. В результате будут созданы файлы main.o, Control.o, Model.o, View.o и исполняемый файл prog.

dangerdanger, я все равно фрилансом не занимаюсь. В свободное время, если задача интересная могу помощь оказать вот примерно так же как сейчас. Но регулярно... не, я же Старый Воин Достать меня на форуме можно (в личку).
6
1 / 1 / 0
Регистрация: 09.01.2018
Сообщений: 15
09.01.2018, 19:37 19
Старый воин, помогите ещё с этими заданиями.
ибо не успеваю физически)) буду благодарен.
Миниатюры
Многофайловые проекты и шаблон MVC   Многофайловые проекты и шаблон MVC   Многофайловые проекты и шаблон MVC  

0
92 / 91 / 21
Регистрация: 16.08.2017
Сообщений: 187
Записей в блоге: 1
09.01.2018, 20:43 20
Доброго времени суток!
Чем смогу, помогу конечно... Но в свободное время. Сейчас рабочая неделя началась, загружен сильно. Я так понимаю, времени мало осталось. По заданиям:
1. Не совсем понятно, о каких матрицах идет речь. К этой игре тут можно только файл прилепить с результатами.
2. Про рефакторинг... В игре нет никакой пользовательской библиотеки ввода-вывода. В этом пункте непонятно, что хотят.
3. Это я так понимаю, отдельная программа для работы с файлами должна быть?

Что нибудь пояснить можете по всему этому безобразию? Мне пока только представляется возможным запись результата игры в файл добавить.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2018, 20:43
Помогаю со студенческими работами здесь

Inline функции и многофайловые проекты
Здравствуйте, уважаемые программисты ! Имеются 2 файла: foo.cpp: inline int foo() { return...

Многофайловые проекты ошибка в синтаксисе
Здравствуйте, подскажите пожалуйста, а чем проблема, есть 3 файла: Array.h #include&lt;iostream&gt;...

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

Классы. Многофайловые проекты. Описать класс с именем STUDENT
Описать класс с именем STUDENT, содержащий поля:  фамилия и инициалы;  номер группы;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru