Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Fox123456
2 / 2 / 0
Регистрация: 06.03.2015
Сообщений: 91
1

Написать игру

30.03.2015, 17:46. Просмотров 785. Ответов 12
Метки нет (Все метки)

Нужно игру написать,где есть три монстра и два игрока,у каждого игрока по 3 монстра. Эти монстры атакуют и двигаются. Не поняла, как это сделать.
2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2015, 17:46
Ответы с готовыми решениями:

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

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

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

Написать игру «Пятнашки»
Кто знает, как на С++ написать игру «Пятнашки». Программа должна содержать следующие функции: ...

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

12
Renji
2227 / 1643 / 498
Регистрация: 05.06.2014
Сообщений: 4,744
30.03.2015, 18:10 2
Нужно сделать автомобиль у которого будет четыре сиденья. Этот автомобиль должен ездить и сигналить. Не понял как собрать.
Правильный ответ: никак. У вас слишком большие дыры в знаниях и слишком плохая способность сформулировать чего вы хотите получить на выходе. Кто не страдает первым и вторым, будет спрашивать что-то в духе "бензин то какой заливать, мужики?".
0
Croessmah
++Ͻ
15466 / 8804 / 1689
Регистрация: 27.09.2012
Сообщений: 21,705
Записей в блоге: 2
Завершенные тесты: 2
30.03.2015, 18:34 3
Цитата Сообщение от Fox123456 Посмотреть сообщение
где есть три монстра и два игрока,у каждого игрока по 3 монстра.
то есть всего монстров уже 6? Или 9?
Цитата Сообщение от Fox123456 Посмотреть сообщение
Эти монстры атакуют и двигаются.
а игроки что делают? Зачем нам эти рудименты?
0
Fox123456
2 / 2 / 0
Регистрация: 06.03.2015
Сообщений: 91
31.03.2015, 06:32  [ТС] 4
всего 6 монстров, преподаватель сказал, что они должны выполнять эти команды

Добавлено через 18 минут
Игроки ими управляют
0
31.03.2015, 06:32
marat_miaki
202 / 175 / 103
Регистрация: 08.04.2013
Сообщений: 738
31.03.2015, 08:37 5
А вы что то подобное же наверное писали, как создавать,как управлять, ? Преподаватель вам не с потолка же задал?
CHOST RECON возьми и мочи, там и 3 и 6 против всех -))
0
Fox123456
2 / 2 / 0
Регистрация: 06.03.2015
Сообщений: 91
31.03.2015, 13:34  [ТС] 6
вот именно, что он ничего не объяснил
0
Renji
2227 / 1643 / 498
Регистрация: 05.06.2014
Сообщений: 4,744
31.03.2015, 15:49 7
Цитата Сообщение от Fox123456 Посмотреть сообщение
вот именно, что он ничего не объяснил
Окей, формулируем ТЗ от балды.
1) Игра происходит на поле 20x20 клеток, в пошаговом режиме (сначала ход делает один игрок, потом другой).
2) Каждый монстр имеет показатель скорости, показатель атаки и показатель защиты. Занимает одну клетку.
3) В начале хода монстр получает число очков движения, равное его показателю скорости. Перемещение в любую соседнюю с монстром клетку стоит одно очко. То есть, если у монстра только три очка движения, дальше чем на три клетки он за один ход не утопает. Между ходами очки движения не сохраняются (если показатель скорости равен трем, накопить девять очков движения про запас нельзя).
4) Если клетка в которую пытается переместиться монстр уже занята, он не перемещается, а атакует монстра в этой клетке. Атака опять-же стоит одно очко движения.
5) Если монстр А атакует монстра Б, он побеждает с вероятностью Атака_А/(Атака_А+Защита_Б). Приключения побежденного монстра на этом и заканчиваются.

Управление классическое.
7 - движение вверх-влево, 8-вверх, 9-вверх-вправо
4 - движение влево,         6-вправо
1 - движение вниз-влево, 2-вниз, 3-вниз-влево
Ну, на правую часть клавиатуры гляньте и посмотрите как цифры относительно пятерки расположены.
Ежели все равно не поняли как оно должно работать - поиграйте в первую Цивилизацию.
0
Тамика
Котовчанин
929 / 470 / 199
Регистрация: 16.02.2010
Сообщений: 3,313
Записей в блоге: 32
31.03.2015, 15:51 8
Цитата Сообщение от Fox123456 Посмотреть сообщение
вот именно, что он ничего не объяснил
А вы все, молодцы-студенты, конечно же узнали детали?
0
_Ivana
4041 / 1881 / 235
Регистрация: 01.03.2013
Сообщений: 5,119
Записей в блоге: 20
31.03.2015, 16:00 9
Renji, и все это в мультиплеерном режиме по сети (2 игрока то) и с полноценной 3D графикой и анимацией, фонами/тенями/рендерами/текстурами. И со звуком, да
0
Renji
2227 / 1643 / 498
Регистрация: 05.06.2014
Сообщений: 4,744
31.03.2015, 17:02 10
Цитата Сообщение от _Ivana Посмотреть сообщение
Renji, и все это в мультиплеерном режиме по сети (2 игрока то) и с полноценной 3D графикой и анимацией, фонами/тенями/рендерами/текстурами. И со звуком, да
Игра по сети здесь нужна только при наличии тумана войны (игроки не должны видеть где спрятался вражеский монстр). А я про него вроде бы ничего не говорил.
0
Boleon
Guardian of Asgaard
373 / 316 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
Завершенные тесты: 1
31.03.2015, 17:38 11
Как-то так, только без реализации у монстров "хождения по клеткам".

Monster.h
Кликните здесь для просмотра всего текста
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
#ifndef MONSTER_H
#define MONSTER_H
 
#include <iostream>
#include "Player.h"
 
class Player;
class DeadMonsterException{};
 
class Monster {
    private:
        Player* owner;
        std::string name;
        int health;
        int damage;
    public:
        Monster(Player* owner, const std::string& name);
        ~Monster();
 
        Player* getOwner() const;
        const std::string& getName() const;
        const int getHealth() const;
        const int getDamage() const;
 
        void changeOwner(Player* newOwner);
        void setHealth(int hp);
        void attack(Monster* enemy);
        void move();
        void showInfo();
};
 
#endif // MONSTER_H


Monster.cpp
Кликните здесь для просмотра всего текста
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
#include "Monster.h"
 
Monster::Monster(Player* owner, const std::string& name) : owner(owner), name(name) {
    this->health = 100;
    this->damage = 20;
    owner->addMonster(this);
}
 
Monster::~Monster() {
    owner = NULL;
}
 
Player* Monster::getOwner() const {
    return owner;
}
 
const std::string& Monster::getName() const {
    return name;
}
 
const int Monster::getHealth() const {
    return health;
}
 
const int Monster::getDamage() const {
    return damage;
}
 
void Monster::changeOwner(Player* newOwner) {
    if ( newOwner == owner ) {
        return;
    }
    owner->removeMonster(this);
    newOwner->addMonster(this);
 
    owner = newOwner;
}
 
void Monster::setHealth(int hp) {
    this->health = hp;
}
 
void Monster::attack(Monster* enemy) {
    if (this->getHealth() == 0 || enemy->getHealth() == 0) throw DeadMonsterException();
    if (this->getDamage() > enemy->getHealth()) enemy->setHealth(0);
    else enemy->setHealth(enemy->getHealth() - this->getDamage()),
         std::cout << this->getName() << " attacks " << enemy->getName() << std::endl;
}
 
void Monster::move() {
    std::cout << this->getName() << " is moving." << std::endl;
}


Player.h
Кликните здесь для просмотра всего текста
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
#ifndef PLAYER_H
#define PLAYER_H
 
#include <iostream>
#include <set>
#include "Monster.h"
 
class Monster;
 
class Player {
    private:
        std::string name;
        std::set<Monster*> monsters;
    public:
        Player(const std::string& name);
        ~Player();
 
        const std::string& getName() const;
        const std::set<Monster*>& getMonsters() const;
 
        void addMonster(Monster* newMonster);
        void removeMonster(Monster* deadMonster);
};
 
std::ostream& operator<<(std::ostream& out, const Player& player);
 
#endif // PLAYER_H


Player.cpp
Кликните здесь для просмотра всего текста
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
#include "Player.h"
 
Player::Player(const std::string& name) : name(name) {}
 
Player::~Player() {
    std::set<Monster*>::iterator it = monsters.begin();
    for ( ; it != monsters.end(); ++it ) {
        delete (*it);
    }
    monsters.clear();
}
 
const std::string& Player::getName() const {
    return name;
}
 
const std::set<Monster*>& Player::getMonsters() const {
    return monsters;
}
 
void Player::addMonster(Monster* newMonster) {
    if ( newMonster->getOwner() != this ) {
        return;
    }
    monsters.insert(newMonster);
}
 
void Player::removeMonster(Monster* deadMonster) {
    monsters.erase(deadMonster);
}
 
std::ostream& operator<<(std::ostream& out, const Player& player) {
    out << player.getName() << ":" << std::endl;
 
    std::set<Monster*>::iterator it = player.getMonsters().begin();
    for ( ; it != player.getMonsters().end(); it++ ) {
        out << "  " << (*it)->getName();
        out << " HP(" << (*it)->getHealth() << "),";
        out << " DMG(" << (*it)->getDamage() << ")" << std::endl;
    }
    return out;
}


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
#include <iostream>
 
#include "Monster.h"
#include "Player.h"
 
int main() {
    Player* player1 = new Player("Player1");
    Player* player2 = new Player("Player2");
 
    Monster* p1monster1 = new Monster(player1, "King-Kong");
    Monster* p1monster2 = new Monster(player1, "Spiderman");
    Monster* p1monster3 = new Monster(player1, "Aquaman");
 
    Monster* p2monster1 = new Monster(player2, "Godzilla");
    Monster* p2monster2 = new Monster(player2, "Batman");
    Monster* p2monster3 = new Monster(player2, "Sub-Zero");
 
    std::cout << *player1 << std::endl;
    std::cout << *player2 << std::endl;
 
    std::cout << "\n= = = = = = = = = = = =\n" << std::endl;
 
    p1monster1->attack(p2monster1);
    p1monster2->attack(p2monster2);
    p1monster3->attack(p2monster3);
 
    std::cout << "\n= = = = = = = = = = = =\n" << std::endl;
 
    std::cout << *player1 << std::endl;
    std::cout << *player2 << std::endl;
 
    return 0;
}
0
Raali
31.03.2015, 17:48
  #12

Не по теме:

Цитата Сообщение от Renji Посмотреть сообщение
5) Если монстр А атакует монстра Б, он побеждает с вероятностью Атака_А/(Атака_А+Защита_Б). Приключения побежденного монстра на этом и заканчиваются.
еще можно прикрутить 300 различных заклинаний из DnD

0
Renji
2227 / 1643 / 498
Регистрация: 05.06.2014
Сообщений: 4,744
31.03.2015, 17:49 13
Цитата Сообщение от Raali Посмотреть сообщение
еще можно прикрутить 300 различных заклинаний из DnD
Ну, я брал максимально примитивную систему, которую ТС будет максимально просто реализовать.
0
31.03.2015, 17:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2015, 17:49

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

Можно ли на C++ написать браузерную игру?
На чём лучше сделать простую игру браузерную? html5 или флеш?

Написать игру с использованием классов
Здравствуйте. Тут такая штука - нужно написать игру в с++ используя классы, но я не знаю как это...


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

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

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