Closed maro512 closed 7 years ago
Proponowałbym zrobić enuma z typami płytek, będzie czytelniejsze
Można tak zrobić. Dla wygody warto dodać metodę (może o zasięgu pakietowym) zwracającą maskę bitową, tak jak to opisałem w Uwagach...
Nie. To jednak ZŁY POMYSŁ z tymi typami w enumie, bo przecież będziemy je wysyłać przez sieć. Wtedy trzeba by je kodować i dekodować za każdym razem... chyba lepiej nie. Chyba byte i komplet stałych jest całkiem rozsądnym rozwiązaniem.
W enumie możesz przypisać wartość do każdego pola. Przez sieć będziemy przesyłać informacje o położeniu, najlepiej zrobić jakąś funckję, która to zakoduje. Jak będziemy wysyłąć dane to też trzeba się zastanowić, czy wysyłąnie współrzędnych jest najlepszym pomysłem, czy lepiej względne położenie. Rezerwując 4 bity na typ, wysyłając dwa bajty mielibyśmy po 6 bitów na X i Y czyli planszę 64x64, przy kodowaniu względnym 2 bity kierunek (z lewej, z prawej, na dole, do góry) i 14 bitów na numer komórki - 16 000 komórek
Nie do końca widzę konieczność liczenia pojedynczych bitów. Wydaje mi się, że wysłanie np. współrzędnych jako jednego inta i typu na 1 bajcie to i tak jest nic w porównaniu z narzutem transmisji (nagłówek IP to ponad 20 bajtów, TCP to chyba drugie tyle, czyli to nie wiele zmienia czy przesyłamy 2, 3 czy 5 bajtów danych), a każdy ruch poleci osobno. Co prawda warto byłoby wysyłać jeszcze jakieś informacje kontrolne (np. losowy "numer gry" albo numer ruchu), ale to dalej nie będą wielkie pakiety.
Dziedziczy po Cell, przechowuje typ komórki. Do implementacji najlepiej przez tę samą osobę która robi Cell