Warning
This page is located in archive.

Table of Contents

Mini úloha #7

Zadání

Naimplementujte výše uvedený diagram tříd reprezentující jednotky z hry Dune 2:

  • U každé jednotky bude možné určit, zda je pásová, poháněná koly nebo pěší.
  • Vytvořte třídu UnitFactory podle návrhové vzoru Tovární metoda, aby byla schopna vyrábět jednotky.
  • Každá jednotka bude zdravit svého kapitána například: “I am infantry. My mobility is foot.”

Kostra

#include <iostream>
#include <vector>
#include <string>
using namespace std;

class Mobility {
	string type() = 0;
	bool is_wheeled() { return false; }
	bool is_tracked() { return false; }
	bool is_foot() { return false; }
};


class Unit {
public:
	void salut() {}
};

class Attack: public Unit {
};

class Harvest: public Unit {
};

class Harvester: public Harvest {
};

class Infantry: public Attack {
};

class Quad: public Attack {
};

class Trike: public Attack {
};


class UnitFactory {
public:
	Unit * create_quad() {
	}
	Unit * create_trike() {
	}
	Unit * create_infantry() {
	}
	Unit * create_harvester() {
	}
};


int main(void) {
	UnitFactory uf;
	std::vector<Unit *> units;
	
	for(int i=0; i < 10; i++) {
		units.push_back(uf.create_quad());
		units.push_back(uf.create_trike());
		units.push_back(uf.create_infantry());
		units.push_back(uf.create_harvester());
	}
	
	for (Unit* u : units)
		u->salut(); //I am infantry. My mobility is foot.

	//uklid pameti
	for (Unit* u : units)
		delete u;
	units.clear();
}
courses/a7b36pjc/cviceni/ulohy/07.txt · Last modified: 2015/12/02 17:15 by mazanma3