maro512 / Loop

Projekt przeniesiony do Loop2
MIT License
0 stars 1 forks source link

Klasa Tile #4

Closed maro512 closed 7 years ago

maro512 commented 7 years ago

Dziedziczy po Cell, przechowuje typ komórki. Do implementacji najlepiej przez tę samą osobę która robi Cell

maro512 commented 7 years ago

Proponowałbym zrobić enuma z typami płytek, będzie czytelniejsze

pzjp commented 7 years ago

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...

pzjp commented 7 years ago

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.

maro512 commented 7 years ago

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

pzjp commented 7 years ago

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.