Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 4

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

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

Студворк — интернет-сервис помощи студентам
Привет помогите!

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

Добавлено через 43 секунды
может у кого есть пример кода?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.01.2018, 18:44
Ответы с готовыми решениями:

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

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

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

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

p.s. можете написать пускай будет. для будущих людей
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
07.01.2018, 21:50
Понял. Чуть позже выложу.
2
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 7
07.01.2018, 21:57
Старый воин, ок, спасибо.
выкладывайте тогда сюда в тему.
0
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 1
08.01.2018, 12:41
Старый воин, нусс есть что?)
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
08.01.2018, 13:36
Да, сейчас выложу. Пока в CodeBlocks делал (удобнее). Компиляцию в командной строке отдельно распишу.
Наверное в архив сейчас сожму и выложу. Правда не до конца отлажена. При выборе ограничения на число попыток угадать неправильно работает. Посмотрите если не трудно. Я только ближе к вечеру опять смогу этим заняться.
1
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
08.01.2018, 13:40
Вот, готово
Вложения
Тип файла: zip NGame.zip (68.1 Кб, 18 просмотров)
6
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
08.01.2018, 13:43
Вот во что казалось бы простая задача может вылиться, если модель MVC криво использовать
0
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 1
08.01.2018, 14:08
Старый воин, ок, гляну. буду сидеть разбираться.
кстати, напишите Ваш e-mail для связи.
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
08.01.2018, 14:18
Кажется нашел...
В файле 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
Старый воин, дайте e-mail для связи.
0
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
08.01.2018, 16:33
Ну вот, как обещал, выкладываю компиляцию этого проекта из командной строки. Самый простой способ это закинуть все в какой либо каталог (имеется в виду все файлы *.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
 Аватар для sizzam
1 / 1 / 0
Регистрация: 09.01.2018
Сообщений: 15
09.01.2018, 19:37
Старый воин, помогите ещё с этими заданиями.
ибо не успеваю физически)) буду благодарен.
Миниатюры
Многофайловые проекты и шаблон MVC   Многофайловые проекты и шаблон MVC   Многофайловые проекты и шаблон MVC  

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

Что нибудь пояснить можете по всему этому безобразию? Мне пока только представляется возможным запись результата игры в файл добавить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2018, 20:43
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru