Wpis z mikrobloga

Cześć, poprawiłem kod według Twoich rad @MacDada.

https://github.com/Glenpl/Sapper

Tak jak radziłeś, nie przepisałem tego jeszcze obiektowo. Mógłbyś jeszcze raz spojrzeć na ten kod i powiedzieć co jeszcze wymaga poprawy?

W wielu miejscach mam jednak więcej niż 2 poziomy wcięć, bo nie wiem jak to dzielić tak, aby zachowało czytelność.

#naukaprogramowania #codereview #cpp
  • 31
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@GlenPL: Tak, ale:

Jeśli chodzi o prędkość - a jak wiadomo programiści c++ mają na nim bzika - idealne rozwiązanie (w twoim przypadku) to utworzenie dwuwymiarowej tablicy

enum
  • Odpowiedz
@MacDada: czesc! Chciałem Ci bardzo podziękować za pomoc przy tym projekcie, przejrzalem jeszcze raz kod ktory wstawilem tu na początku i to co jest teraz... różnica jest bardzo duża :)
Teraz takie małe todo list. Wczoraj napisalem proceduralne kółko i krzyżyk user vs user, jeszcze trochę poprawek i chyba wrzucę na githuba. W planach mam:
1. Dodac możliwość zapisu aktualnego stanu gry (sapera) do pliku i możliwość wczytania gry z tego save'a.
  • Odpowiedz
@MacDada: tragedia, tydzień a ja jestem dopiero na drugim punkcie z listy powyżej ( ͡° ʖ̯ ͡°) Jak coś to oba projekty miały aktualizacje, kod jest na githubie

Piszę bo mam mały problem z tą wersją obiektową ( ͡° ͜ʖ ͡°) jak dotąd robiłem tylko jakieś proste przykładowe programy obiektowo i nie do końca wiem jak wymodelować świat gry obiektowo.

Mam listę funkcji i podzieliłem je na
  • Odpowiedz
@GlenPL: Ogólnie to nie skupiaj się na tym co masz teraz, tylko robisz praktycznie rewrite – skup się na tym co chcesz mieć. Więc funkcje mogą się zupełnie inaczej nazywać, zupełnie inne rzeczy grupować, etc.

Podstawowe zasady dobrego dizajnu obiektowego: https://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29

Skup się na „rolach” – każdy obiekt odpowiada za jedno konkretne zadanie – wyobraź sobie, że obiekty to ludzie i że każda z tych osób ma wyznaczone zadanie do wykonania oraz
  • Odpowiedz
@MacDada: z tego co mówisz to tych klas będzie kilka. A, przypomnialo mi się, że jednak zrobilem kiedyś, w sumie nawet niedawno coś większego niż tylko program przykladowy - napisalem sobie własną bibliotekę Bignum, ale tam była tylko jedna klasa (ale sporo się przy tym nauczylem fajnych rzeczy, przeladowywania operatorow itd). Wtedy widzialem, że obiektowosc rzeczywiscie ma sens - bo obiektow Bignum tworzylem dużo, i mogłem ich używać dokladnie tak
  • Odpowiedz
@GlenPL: Nie twierdzę, że programowanie obiektowe jest jedynie słusznym rozwiązaniem – ma zalety i wady. Heh, programiści języków funkcyjnych (jak Haskell) twierdzą wręcz, że OOP ma same wady ;)

Ale jest to bardzo popularny paradygmat i ma swoje zalety – bo pozwala w spójny sposób modelować skomplikowane aplikacje i znacznie zwiększa „reużywalność” kodu.
  • Odpowiedz