Prosty arkanoid

0

Cześć,
niedawno skończyłem pisać prostego arkanoida. Wiele brakuje, żeby kod był idealny, więc proszę o fale konstruktywnych hejtów ;)

https://github.com/Haradd/Allegro5-arkanoid-game

Z góry dzięki

1

nie bedę czepiał się drugi raz rzeczy które w podobny sposób mi się nie podobają.

1). (jak coś to -std=c11

    int i = 0;
    for(i; i<13; i++)
    {
        int j = 0;
        for(j; j<7; j++)
        {

lepiej:

    int i = 0;
    for( int  i = 0, j; i<13; i++)  {
        int j = 0;
        for(j; j<7; j++)
        {
...

2). rozbijaj zmienne
block[i][j].color = (rand()%4) +1;
ladniej
` block[i][j].color = ( rand() % 4 ) +1;

3).
struct Block block[13][10]
lepiej dac prt i size oddzielnie, ale to już jak to se woli.
jakbys potem chcial pozmieniac wielkosc tablicy to musisz wszedzie te 13 zamieniac. lepiej juz bylo sobie zdefiniowac gdzies ta liczbe imho.

4). alegro to podobno prehistoria lepiej juz baw sie sdl'em.

5). `pare linijek beło za długich ;-)

6). W C jak funkcja nie bierze parametrów to jest void pusty nawias oznacza, że może brać jakoby nieskończoną ilość„.

7.) czasamiw switch daje się default po to aby wyłapać błąd (nie oczekiwany parametr ) ale to już takie tam.

8.) ok że dajesz spacje ale chyab jednak zbyt wiele jak już się na nie zdecydujesz. ;-)

9.) Wydaje się że za dużo sprawdzania błędów nie było. ;-)

  1. )

Można też i wydaje mi się to czytelniejsze.


     if (keyboard_state() == ALLEGRO_KEY_ESCAPE)     done = True;

podobnie z pętlami.

Coś tam napierdziałem.

0

Dzięki za konkretną ocenę ;)
Natomiast miałem problemy z czytelnym rozbiciem takiego warunku

if ( (ball_x + ball_dim >= bar_x && ball_x + ball_dim < bar_x + bar_width/5) ||
     (ball_x + ball_dim > bar_x + (bar_width - bar_width/5)) && (ball_x + ball_dim <= bar_x+bar_width) )

Dla mnie najczytelniej jest w taki sposób, a jak Ty to widzisz ?

0

Może tak ale coś takiego to nie tragedia jak nie ma wyjścia albo podzielić to na więcej ifów. ;-)


if ( ( ball_x + ball_dim >= bar_x && ball_x + ball_dim < bar_x + bar_width/5) ||
     ( ball_x + ball_dim > bar_x + ( bar_width - bar_width/5 )  ) &&
     ( ball_x + ball_dim <= bar_x+bar_width )  )  {

Może bym z tego zrobił funkcję jakby elemety były jakos upchane w strukture czy coś.

0

@wujnia: bo te elementy powinny być wpakowane w strukturkę - dzięki temu zmniejszy się ilość potrzebnych zmiennych, a takie pakiety łatwiej i czytelniej będzie przekazywać do innych funkcji. Tak więc popieram.

@Harad: sporo tych "magic numbers" - zastąp je definicjami (#define).

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