Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Poprawianie czytelności pisanego kodu

Ostatnio zmodyfikowano 2013-05-30 14:11
Autor Wiadomość
Nowicjusz
Temat założony przez niniejszego użytkownika
[C++] Poprawianie czytelności pisanego kodu
» 2013-05-23 22:07:04
Czesc mozecie mi podsunac pomysl jak zrobic zeby main nie byl taki "zagracony" ? Mimo iz program dziele na pliki(w ktorych sa klasy) to i tak main wyglada strasznie. Zaluzmy mam klase ktora tworzy przyciski i chcialbym ich stworzyc 10 to juz zasmiecam main 10-cioma definicjami + 10-cioma funkcjami update + 10-cioma funkcjami rysujacymi. Moglbym obejsc to w ten spsob ze zrobilbym klase ktora tworzy mi te przyciski dzieki czemu mialbym 10 definicji + 1 funkcja update + 1 funkcja rysujaca. No ale te przyciski maja nie tylko sie wyswietlac ale rowniez reagowac na nacisniecie na nie myszka. Mam straszny problem z organizacja kodu, nie sadzilem ze kiedy kolwiek bedzie mnie to derczyc ;p


Ponizej umieszcze kod jak mogloby to wygladac, moze nie z dziesiecioma definicjami ale dla przykladu z 3 + 1 funkcja update + 1 funkcja rysjaca. Mozecie mi na podstawie tego powiedzeic jak to inaczej zorganizowac ?



C/C++
int main()
{
    Button Przycisk; //Button klasa w ktorej jest np wektor przyciskow
   
    Przycisk.create( "Jeden", 0, 10, 30 ); //Nazwa,pozycja x, pozycja y, rozmiar
    Przycisk.create( "Dwa", 0, 40, 30 );
    Przycisk.create( "Trzy", 0, 80, 30 );
    Przycisk.create( "Cztery", 120, 10, 30 );
    Przycisk.create( "Piec", 0, 160, 30 );
   
    while( 1 )
    {
        Przycisk.update();
       
       
       
        //Gdybym do tego chcial dodac reagowanie na nacisniecie przycisku zaczalby robic sie chaos, jak ponizsze mozna inaczej rozwiazac???
        if( Przycisk.clicked( 0 ) ) //Przycisk o indexie 0 zostal klikniety czyli "Jeden"
        {
            //Jakies funkcje
        }
        if( Przycisk.clicked( 1 ) )
        {
            //Jakies funkcje
        }
       
       
       
        Przycisk.draw();
       
    }
   
   
}
P-83748
m4tx
» 2013-05-23 22:20:32
Tworzenie przycisków można by zrobić za pomocą pętli i tablicy, w której można by było przechowywać dane przycisków. Rysowanie także można zrobić w pętli.

Co do update'owania - możesz sobie zrobić jakiś event system, który będzie działał tak, że np. po wciśnięciu przycisku będzie wywoływana funkcja przekazywana wskaźnikiem. Chociaż tutaj akurat ciężko coś napisać, bo nie sprecyzowałeś w czym problem.
P-83749
cyklopek11
» 2013-05-23 22:35:11
Masz przecież takie pomoce jak:
- funkcje środowiska programistycznego fold (zwiń blok)
- #include
P-83751
cyklopek11
» 2013-05-23 22:37:08
P-83752
Szymko
» 2013-05-23 23:43:11
możesz sobie stworzyć kolejną klasę i tam w jej konstruktorze zamieścić instrukcje z main'a
P-83756
Nowicjusz
Temat założony przez niniejszego użytkownika
» 2013-05-23 23:45:59
A poprawnym byloby faktycznie dodanie tych ifow do fora i wywolanie funkcji ktora znajdowalaby sie gdzies w innym pliku ktora jako parametr przyjmowalaby wlasnie index nacisnietego przycisku ? Cos w tym stylu:


C/C++
#plik.h
void funkcja( int index )
{
    switch( index )
    {
    case 1:
        .
        .
        .
        .
    case 5:
       
    }
   
}

#include "plik.h"


int main()
{
    for( int i = 0; i < 5; i++ )
    if( Przycisk.clicked( i ) )
         funkcja( i );
   
}

P.S was chyba mecza takie posty co ;p?
P-83758
DejaVu
» 2013-05-30 14:11:45
Organizowanie kodu to nie jest lekka sprawa. Najważniejsze to nauczyć się dzielić kod na funkcje, wykonujące określoną czynność. Później trzeba nauczyć się organizować kod w postaci obiektów. O organizacji kodu sporo można napisać i to chyba nie jest dyskusja na jeden temat :P
P-84334
« 1 »
  Strona 1 z 1