Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 11
1

Как написать мини-игру?

11.11.2019, 16:57. Показов 2968. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, такая ситуация. Нужно написать мини-игру. Суть: Задается с клавиатуры число- это количество людей( может быть любое). Потом для каждого человека вводятся параметры ( имя, жизни, атака). И рандомным образом происходит их сражение ( Например, вводится три человека. Второй бьет первого, первый третьего, третий первого и т.д. Пока не останется один живой). Буду очень благодарен если подскажите как можно решить эту задачу.

Я новичок, поэтому не могли бы по понятнее)

C++
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2019, 16:57
Ответы с готовыми решениями:

Кто нибудь знает как написать игру на С ?)
Зраствуйте Можно ли написать крестики нолики на С ? И как это сделать ? Дайте идею или код....

Написать мини Unit Test к программе
Не удается написать юнит тест без ошибок. Помогите написать хотя бы самый простой юнит тест. Кидаю...

Как создать мини-игру
Здравствуйте, нужна помощь, не получается создать мини игру, в которой надо сделать 10 десять...

Как внедрить мини-игру в процесс другой игры
Кто может помочь сделать такую вещь: в GTA SA нужно вместо стандартной мини-игры внедрить любую...

6
фрилансер
5860 / 5399 / 1105
Регистрация: 11.10.2019
Сообщений: 14,419
11.11.2019, 19:29 2
Лучший ответ Сообщение было отмечено IGoogleI как решение

Решение

боевик

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class s_numan
{
    std::string name;
    uint32_t health=0;
    uint32_t strenght=0;
public:
 
    s_numan
    (
            std::string name
            ,uint32_t health
            ,uint32_t strenght
            )
        :name(name)
        ,health(health)
        ,strenght(strenght)
    {
    }
 
    bool isDead()const
    {
        return health==0;
    }
 
    void hit(s_numan& target)const
    {
        if(strenght>=target.health)
        {
            target.health=0;
        }
        else
        {
            target.health-=strenght;
        }
    }
};
 
int main(int argc, char *argv[])
{
    std::vector<s_numan> graveyard;
    std::vector<s_numan> crowd
    {
        {"Вася",10,2},
        {"Петя",15,1},
        {"Коля",8,4},
    };
 
    while(crowd.size()>1)
    {
        const size_t index_aggr  =std::rand()%crowd.size();
        const size_t index_target=std::rand()%crowd.size();
 
        if(index_aggr==index_target)
        {
            continue;
        }
 
        auto it_target=crowd.begin()+index_target;
        crowd[index_aggr].hit(*it_target);
 
        if(it_target->isDead())
        {
            graveyard.push_back(*it_target);
            crowd.erase(it_target);
        }
    }
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 11
11.11.2019, 19:35  [ТС] 3
А почему в командной строке ничего не выводит?)
0
фрилансер
5860 / 5399 / 1105
Регистрация: 11.10.2019
Сообщений: 14,419
11.11.2019, 19:38 4
IGoogleI, оставил тебе доделать, мне это не интересно
0
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 11
11.11.2019, 20:01  [ТС] 5
Понял, спасибо
0
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 11
12.11.2019, 19:55  [ТС] 6
Алексей1153, не могли бы пояснить что здесь происходит?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
  if(index_aggr==index_target)
        {
            continue;
        }
 
        auto it_target=crowd.begin()+index_target;   //Отсюда
        crowd[index_aggr].hit(*it_target);
 
        if(it_target->isDead())
        {
            graveyard.push_back(*it_target);
            crowd.erase(it_target);
        }
0
фрилансер
5860 / 5399 / 1105
Регистрация: 11.10.2019
Сообщений: 14,419
13.11.2019, 08:27 7
IGoogleI,

it_target - итератор на цель в векторе crowd

crowd[index_aggr].hit(*it_target); - агрессор бьёт цель

если цель мертва, отправляем на кладбище и извлекаем из "толпы"
0
13.11.2019, 08:27
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2019, 08:27
Помогаю со студенческими работами здесь

Создать мини игру
Нужно создать мини игру. Внутри большого квадрата бегает маленький квадратик (исчезает и и...

Сделать мини математическую игру
Мне нужно сделать мини математическую игру, На форму есть примеры, в textbox заносятся ответы....

Как написать мини-ОС с загрузчиком
Например стоит задача написать мини ОС с загрузчиком для неё, которая выполняла бы только одну...

Как написать бот для мини игры?
Всем привет! У меня такая ситуация, Я уезжаю на некоторое время из города, но мне нужно что бы я...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
Копирование (маппинг) объектов в JavaScript
bytestream 21.01.2025
В современной разработке программного обеспечения копирование объектов представляет собой фундаментальную операцию, которая требует особого внимания и понимания. Маппинг объектов в JavaScript – это. . .
Как работать с Apache Kafka в C# .NET
bytestream 21.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки больших объемов информации в реальном времени. Эта система,. . .
Как использовать RabbitMQ в C# .NET
bytestream 21.01.2025
RabbitMQ представляет собой мощный брокер сообщений, который эффективно решает эту задачу, обеспечивая надежную передачу данных между множеством приложений. Этот инструмент реализует протокол AMQP. . .
Как объединить последние коммиты в Git
bytestream 21.01.2025
В мире разработки программного обеспечения система контроля версий Git стала незаменимым инструментом для управления исходным кодом. Одной из наиболее полезных, но порой сложных для освоения функций. . .
Как запушить новую локальную ветку (branch) в удалённый репозиторий Git и отслеживать её
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемым инструментом для эффективного управления кодом и организации командной работы. Одной из ключевых. . .
Как создать директорию и все родительские директории, указанные в пути, с помощью Python
bytestream 21.01.2025
Python предоставляет мощные инструменты для работы с файловой системой через встроенные модули os и pathlib, которые значительно упрощают процесс манипуляции директориями. Эти модули содержат. . .
Как работать с массивами в JavaScript
bytestream 21.01.2025
Массивы в JavaScript представляют собой один из фундаментальных типов данных, который позволяет хранить упорядоченные коллекции различных элементов в одной переменной. Эта структура данных является. . .
Какая максимальная длина адреса (URL) в различных браузерах и стандартах
bytestream 21.01.2025
В современном мире интернет-технологий URL-адреса (Uniform Resource Locator) играют фундаментальную роль в функционировании веб-пространства. Эти уникальные идентификаторы ресурсов стали неотъемлемой. . .
Как сбросить локальный репозиторий до состояния удалённого репозитория Git
bytestream 21.01.2025
При разработке программного обеспечения с использованием системы контроля версий Git разработчики часто сталкиваются с необходимостью синхронизации локального и удаленного репозиториев. Данная задача. . .
Как запретить подсветку выделенного текста с помощью CSS
bytestream 20.01.2025
Подсветка текста при выделении является стандартным поведением браузера, которое не всегда соответствует дизайнерским решениям или функциональным требованиям веб-приложения. Выделение текста может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru