Pomysł na budowę programu

2015-02-19 19:46
Czarny Lew
0

Szukam w miarę prostego pomysłu jak obiektowo zbudować program, na przykład grę kółko i krzyżyk. Przeważnie korzystałem z takiego schematu znalezionego na internecie:

Był singleton, i klasa abstrakcyjna okna, i od tego tworzyło się różne inne okna jak menu, okno gry, okno opcji.

Jest to trochę zawiły dla mnie sposób, i szukam czegoś prostszego:

Wymyśliłem klasę game, która ma funkcję publiczną runGame();
W main tworzy się obiekt game i wywołuję te funkcję.

#pragma once
#include "Menu.h"
#include <SFML/Graphics.hpp>

class Game
{
public:
    Game(void);
    ~Game(void);

    void runGame();

private:
    enum gameState 
    {
        GAME,
        MENU,
        END
    };

    gameState state;

    Menu menu;
};

runGame() posiada switcha który ma wybierać co dalej biorąc pod uwagę state, aktualny stan gry. Konstruktor na początku ustawia stan MENU, więc jest wywoływany w switchu menu.draw();
Ale jak potem zmienić stan w klasie Game, w menu wybierzemy np. opcję start, i jak potem komunikować obie te klasy?
Macie jakieś pomysły na konstrukcję obiektową programu?

`dodanie znaczników ``` - @furious programming

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2015-02-19 19:53
0

Masz klasę menu, w niej metody: Nowa gra, Zapisz, Zaladuj, Zakoncz (czy cokolowiek tam chcesz). Masz klase gra, z rzeczami zwiazanymi tylko z gra i ze stanem gry ktory pozwoli narysowac Ci plansze (ale nie implementuj rysowania w klasie gra, tak samo zadnego rysowania w klasie menu). Gra ma minimum dwa konstruktory: Game() i Game(Stan). Pierwszy do rozpoczecia nowej gry, drugi do wczytania istniejacej. Jak klikasz cos w opcjach to tworzysz nowa instancje gry (moze poza Pauzą). Jak gra sie konczy/zamknie czy cokolwiek to niszczysz to niszczysz obiekt gry. Dodatkowo dwie klasy: MenuView, GameView z jakims wspolnym interfejsem bazowym ktore wyswietlaja stan menu i gry na ekranie. Dodaj osobna klase do wyswietlania widokow Twojej gry. Kod powinien byc czytelny i nie przekomplikowany. Jesli latwiej Ci trzymac rysowanie widoku w tej samej klasie to tak zrob. Najwazniejsze jest zeby gra dziala i byla responsywna, Twoj drugi cel to uproszczenie kodu, ale nie przekombinowuj bo bedziesz wiecej szukal bugow niz to warte.


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 3x, ostatnio: krwq, 2015-02-19 19:56

Pozostało 580 znaków

2015-02-20 17:34
Czarny Lew
0

Rozumiem, a czy jak mamy potem klasę plansza to powinienem stworzyć klasę ją malującą, a potem kasę figura i od niej dziedziczą kółko i krzyżyk, to też klasę do malowania kształtów i tak do wszystkiego innego klasy malujące, czy po prostu klasą do malowania poziomu która obsługuje malowanie wszystkich elementów?

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0