jarzynek napisał(a)
Grę można zrobić z wykorzystaniem klas lub bez nich. To już zależy od upodobań i wymagań wykładowcy ;). Moim zdaniem program zrobiony w oparciu o klasy jest bardziej przejrzysty i łatwiejszy do modyfikacji.
Hmm, bardziej przejrzysty, w teorii na pewno... w praktyce różnie z tym bywa :D szczególnie jak zaczniesz dopisywać nieplanowane fragmenty kodu :>
zresztą sam zobaczysz :>
a czy łatwiejszy do modyfikacji, tu myślę że to bez różnicy, zależy jak duże te modyfikacje są :>
jarzynek napisał(a)
Do reprezentacji takiej prostej planszy z figurami wystarczy tablica ( równie dobrze może to być klasa, której składową jest tablica ). Puste pole będzie miało np. wartość 0, pole z pionem jednego gracza 1, a drugiego 2.
jak chcesz trzymać się OOP to zamiast prostego inta, bo znaczy technicznie nadal prosty int to będzie, ale opakowany w ładną OPPową klasę :>
class Pole
{
public:
void SetPionek(int player_index); //hehe, zajebiaszcza nazwa metody :>
bool IsEmpty(); //sprawdza czy juz jakiś gracz tu stoi
//itd.
private:
int value; //to prosty int, ale już z :>
};
Pole tablica[7][7];
tablica[0][0].SetPiontek(1);
czyli ładnie zrobisz inta i metody do operaowania na polu, związane z tym intem :> żeby było w OOP :>
jarzynek napisał(a)
Przy implementacji sztucznej inteligencji będziesz potrzebował znać wszystkie możliwe ruchy, przechować gdzieś tymczasowe mapy, aby zaplanować kilka ruchów do przodu. Ja bym to robił na klasach. Jakbyś tego nie robił, musisz wiedzieć, do czego zmierzasz, a więc najpierw poczytaj nieco o SI ( np. o funkcjach heurystycznych ).
w tym wypadku ja bym zrobił ta łopatologicznie, czyli analizujesz wszystkie możliwe ruchy komputera, czyli zbudujesz jakieś drzewko ruchów (dla tablicy 7x7, spokojnie algorytm będzie działał poniżej 1ms :>) i sprawdzisz która droga jest najbardziej korzystna (budując drzewko będziesz danemu ruchowi przypisywał jakąś wartość, jak bardzo "opłacalny" jest) i powinno to jakiś działać, gdy kilka dróg będzie tak samo "punktowanych", możesz np. losować, w grze będzie element losowości, czyli nawet przy takim samych ruchach komputer może inaczej zagrać :>