Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Lokacja {
- private:
- string nazwa, opis;
- int x, y;
- public:
- Lokacja(string nazwaLokacji, string opisLokacji, int pozycjaX, int pozycjaY) {
- nazwa = nazwaLokacji;
- opis = opisLokacji;
- x = pozycjaX;
- y = pozycjaY;
- }
- Lokacja() {
- nazwa = "";
- opis = "";
- x = 0;
- y = 0;
- }
- void wyswietl() {
- cout << ":: " << nazwa << " (" << x << ", " << y << ")" << endl;
- cout << opis << endl;
- }
- int pozycjaX() {
- return x;
- }
- int pozycjaY() {
- return y;
- }
- };
- class Swiat {
- private:
- Lokacja listaLokacji[100];
- int nastepnaLokacja = 0;
- bool sprawdzLokacje(int x, int y) {
- for (int i=0; i<nastepnaLokacja; i++) {
- if (listaLokacji[i].pozycjaX() == x && listaLokacji[i].pozycjaY() == y) {
- return true;
- }
- }
- return false;
- }
- public:
- void dodajLokacje(Lokacja lokacja) {
- listaLokacji[nastepnaLokacja] = lokacja;
- nastepnaLokacja++;
- }
- Lokacja pobierzLokacje(int x, int y) {
- for (int i=0; i<nastepnaLokacja; i++) {
- if (listaLokacji[i].pozycjaX() == x && listaLokacji[i].pozycjaY() == y) {
- return listaLokacji[i];
- }
- }
- return Lokacja();
- }
- bool sprawdzPolnoc(int x, int y) {
- if (sprawdzLokacje(x, y+1)) return true;
- return false;
- }
- bool sprawdzPoludnie(int x, int y) {
- if (sprawdzLokacje(x, y-1)) return true;
- return false;
- }
- bool sprawdzWschod(int x, int y) {
- if (sprawdzLokacje(x+1, y)) return true;
- return false;
- }
- bool sprawdzZachod(int x, int y) {
- if (sprawdzLokacje(x-1, y)) return true;
- return false;
- }
- void wyswietlWyjscia(int x, int y) {
- cout << "Wyjścia:";
- if (sprawdzPolnoc(x, y)) cout << " północ";
- if (sprawdzPoludnie(x, y)) cout << " południe";
- if (sprawdzWschod(x, y)) cout << " wschód";
- if (sprawdzZachod(x, y)) cout << " zachód";
- cout << endl;
- }
- };
- class Bohater {
- private:
- string imie;
- int x, y;
- public:
- Bohater(string imieBohatera, int pozycjaX, int pozycjaY) {
- imie = imieBohatera;
- x = pozycjaX;
- y = pozycjaY;
- }
- void idzNaPolnoc(Swiat swiat) {
- if (swiat.sprawdzPolnoc(x, y)) {
- y++;
- cout << "Idziesz na północ..." << endl;
- } else {
- cout << "Nie możesz tam pójść!" << endl;
- }
- }
- void idzNaPoludnie(Swiat swiat) {
- if (swiat.sprawdzPoludnie(x, y)) {
- y--;
- cout << "Idziesz na południe..." << endl;
- } else {
- cout << "Nie możesz tam pójść!" << endl;
- }
- }
- void idzNaWschod(Swiat swiat) {
- if (swiat.sprawdzWschod(x, y)) {
- x++;
- cout << "Idziesz na wschód..." << endl;
- } else {
- cout << "Nie możesz tam pójść!" << endl;
- }
- }
- void idzNaZachod(Swiat swiat) {
- if (swiat.sprawdzZachod(x, y)) {
- x--;
- cout << "Idziesz na zachód..." << endl;
- } else {
- cout << "Nie możesz tam pójść!" << endl;
- }
- }
- int pozycjaX() {
- return x;
- }
- int pozycjaY() {
- return y;
- }
- };
- int main() {
- Swiat swiat;
- swiat.dodajLokacje(Lokacja("Lokacja startowa", "Opis lokacji startowej", 0, 0));
- swiat.dodajLokacje(Lokacja("Lokacja druga", "Opis lokacji drugiej", 1, 0));
- swiat.dodajLokacje(Lokacja("Lokacja trzecia", "Opis lokacji trzeciej", 0, 1));
- Bohater bohater("Mateusz", 0, 0);
- string komenda = "";
- while (komenda != "koniec") {
- swiat.pobierzLokacje(bohater.pozycjaX(), bohater.pozycjaY()).wyswietl();
- swiat.wyswietlWyjscia(bohater.pozycjaX(), bohater.pozycjaY());
- cout << "Co robisz? ";
- cin >> komenda;
- if (komenda == "n") bohater.idzNaPolnoc(swiat);
- if (komenda == "s") bohater.idzNaPoludnie(swiat);
- if (komenda == "e") bohater.idzNaWschod(swiat);
- if (komenda == "w") bohater.idzNaZachod(swiat);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment