Nie potrafię napisać programu. Problem nie leży za bardzo w tym, że nie znam języka za dobrze bo z tym bym, sobie jakoś poradził. Znajdując w internecie itd. ale z tym że nie potrafię za bardzo wymyślić algorytmu i nie wiem jak złożyć program jedną działającą całość. Dlatego proszę was o pomoc. Jak powinien wyglądać algorytm do tego zadania, jak mniej więcej powinien wyglądać ten program. No potrafię zrobić klasę i parametry tych obiektów, wiem jak zadeklarować funkcje itd. Ale nie wiem od czego zacząć robić ten program.
Ten program ma wyglądać ala snake. Jest dom z pokojami 3x3 tablica 5x5 gdzie brzegi to X a pokoje (obiekty) to 0 ale jeśli wejdę do pokoju to zmienia sie z 0 na 1 i mam poruszać się po tych pokojach używając 4 stron świata.
Treść
Przygotować klasę do przechowywania opisu pomieszczeń mających po 4 możliwe wyjścia. Klasa powinna zawierać następujące pola: opis, czy pomieszczenie
było odwiedzane, wskaźniki na pomieszczenia znajdujące się po wszystkich stronach świata (n-północ, e-wschód, s-południe, w-zachód). Metody dostępne w klasie: pobranie opisu, pobranie wska¹nika do pomieszczenia sąsiedniego (4 metody),
ustawienie statusu odwiedzin, sprawdzenie statusu odwiedzin. Przykładowy kod
demonstracyjny:
_ utworzyć 9 pomieszczeń (9 obiektów) w kwadracie 3x3,
_ przechować je w tablicy 3x3
_ wyświetlić pomieszczenia w następujący sposób:
_ iterujemy po tablicy:
_ jeżeli wskaźnik na sąsiednie pomieszczenie:
_ jest ustawiony - nie wyświetlamy w tym miejscu nic,
_ nie jest ustawiony - wyświetlamy X - czyli ścianę
_ same pomieszczenia wyświetlamy w zależności od statusu odwiedzin:
_ jest ustawiony - wyświetlamy 1,
_ nie jest ustawiony - wyświetlamy 0.
_ przejdź przez pomieszczenia, zaczynając od lewego górnego rogu (nw) i idąc
wg schematu: e, s, e, s, w
_ wyświetliś pomieszczenia raz jeszcze
Korzystać z trybu tekstowego, przed wyświetleniem można wypełnić sobie tablicę
znaków o rozmiarach 5x5 i w niej przechowywać poszczególne wartości korytarzy.
W wyniku drugiego wyświetlenia powinno sie nam pojawić na ekranie:
XXXXX
X110X
X011X
X011X
XXXXX
Zacząłem tak, ale ja nawet nie wiem jak się za to zabrać. Ogólnie nie mam planu od początku do końca jak to zrobić ale pierw chciałem utworzyć tablicę dwuwymiarową obiektów. Nie wiem też czy pierw nadać konstruktorem wartości czy pokój był odwiedzany czy przy inicjalizacji obiektów w tablicy. Metody na razie są puste bo nie wiem jak to wszystko będę robił.
#include
#include
#include
using namespace std;
class room
{
public:
string opis;
int odwiedzony;
int *polnoc;
int *poludnie;
int *zachod;
int *wschod;
//deklarowanie metod
void pobieranie(string desc);
void ust_odwiedzin(int gvis);
void czy_odwiedzony(int is_vis);
};
//Pobieranie opisu
void room::pobieranie(string desc)
{
}
//ustawianie statusu odwiedzin
void room::ust_odwiedzin(int gvis)
{
}
//sprawdzanie statusu odwiedzin
void room::czy_odwiedzony(int is_vis)
{
}
int main()
{
room* tablica = new room[2][2];
system("PAUSE");
return 0;
}