HomePage RecentChanges

Zadanie zaliczeniowe PO 2007

Wstęp

Przedmiotem zadania jest stworzenie pewnej gry, czy też raczej “gropodobnej symulacji”, którą tym niemniej dla uproszczenia będziemy nazywać Grą.

Plansza i pola

Gra rozgrywa się na dwuwymiarowej planszy (siatce kwadratowych pól). Istnieją różne typy pól, reprezentujące typy terenu świata gry, np. trawa, piach, drzewo, ziemia, woda itp. Na polu może znajdować się dowolna kolekcja obiektów, a także gracz. W niektórych sytuacjach interesować nas będą także krawędzie między polami - na krawędzi może się znajdować np. płot lub ściana.

Gracz porusza się w czterech kierunkach: do góry, na dół, w prawo lub w lewo. Gracz nie może przechodzić przez ściany i płoty - jeśli na krawędzi między polem, na którym stoi gracz, i polem, na które gracz chce przejść, znajduje się płot lub ściana, to gracz nie może wykonać ruchu. Gracz nie może chodzić po wodzie. Jeśli pole, na które gracz chce wejść, jest polem typu woda, to taki ruch jest niedozwolony.

Obiekty

W Grze istnieje wiele różnych rodzajów obiektów, mają one jednak pewne cechy wspólne:

Akcje

Upływ czasu

Symulację można zrealizować na dwa sposoby:

Format planszy

Opis planszy jest plikiem tekstowym. W pierwszym wierszu znajduje się informacja o wymiarach planszy: dwie liczby całkowite rozdzielone średnikiem, pierwsza oznacza szerokość (s), druga wysokość (w) planszy. W kolejnych w wierszach znajduje się opis pól planszy. W każdym wierszu znajduje się s symboli rozdzielonych średnikami. Lista symboli:

W następnym wierszu znajduje para liczb całkowitych. Jest to początkowe położenie gracza, pierwsza liczba oznacza kolumnę, druga oznacza wiersz. W tym samym wierszu, oddzielona spacją, znajduje się dodatnia liczba całkowita. Oznacza ona maksymalną masę, jaką może unieść gracz.

W kolejnych wierszach umieszczony jest opis położenia poszczególnych przedmiotów w formacie:

 kod_przedmiotu kolumna;wiersz [informacje dodatkowe, np. pojemność pojemnika]

Kody przedmiotów obowiązkowych:

Format planszy może zostać dostosowany do wprowadzonych rozszerzeń (patrz niżej).

Przykładowa plansza:

 10;5
 W;W;W;P;T;T;T;T;T;T
 W;W;P;P;T;T;D;D;D;T
 W;W;P;T;T;T;D;D;D;T
 W;P;T;T;Z;Z;T;D;D;T
 P;T;T;Z;W;Z;T;D;T;T
 6;3 35
 S 5;3
 P 6;2
 Sk 6;3

Rozszerzenia

Kilka pomysłów do samodzielnego rozwinięcia

Zadanie

Napisz program umożliwiający przeprowadzenie pojedynczej Gry. Program ma na początku wczytać planszę, potem ma ją wyświetlić i umożliwić graczowi wykonywanie ruchów. Ponadto program ma umożliwiać zapisanie stanu Gry w pliku i późniejsze jego odtworzenie. Interfejs powinien być graficzny (przyciski, mysz) i sensownie wygodny.

Pytania