![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 20 Dołączył: 8.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam tak mnie naszło żeby napisać internetową gre w Kolko i Krzyzyk. Nie pisalem nigdy czegos takiego wiec chcialem sie poradzic kogos z wiekszym doswiadczeniem. Ogolnie to widzi mi sie to tak:
Uzytkownik wchodzi na strone i z bazy pobierane sa wszystkie stoły. Moze zalozyc stol lub do stolu dolaczyc. Tabela ze stołami wygladlałaby tak: id | wyglad | stan | ruch ID to numer stolu, wyglad to stan pola do gry czyli np 001021022 (1 to krzyzyk, 2 kolko). A stan to 0 lub 1 (0 jak jest jeden gracz ktory utworzyl stol i czeka na kogos do gry, 1 to ze jest dwoch graczy i mozna zaczac gre). Ruch oznacza gracza ktory moze teraz wykonac ruch Po utworzeniu lub wybraniu stolu do gry zapisywany bylby gdzies ID stolu (najpewniej w sesji). Przekierowanie do gra.php gdzie bylby stol do gry. I tutaj do akcji wkracza juz AJAX ktory co 5-10 sek (coby za bardzo serwera nie obciazyc) wysyla zapytanie do bazy i sprawdza czy drugi gracz wykonal jakis ruch (co objawia sie zmiana pola ruch). Przy kazdym ruchu zmieniaja sie wyglad i ruch. Poza tym sprawdzane jest odpowiednim algorytmem czy ulozone sa 3 X lub O i czy nalezy zakonczyc gre. Tak to sie ma w teorii ale w praktyce nie wiem za bardzo jak wykonac ten ruch. W jaki sposob rozroznic ze jest jeden gracz i drugi... Czy tutaj przydaloby sie uzyc socketów (nie znam za bardzo ich dzialania ale wiem ze sie je chyba w tego typu rzeczach wykorzystuje). Prosze o pomysly i propozycje glownie co do tego jak rozniac graczy |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 30 Dołączył: 1.08.2007 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
No nie znam się na SOCKETACH, ale przy grach 5-10 sekund jest to wieczność, i gracz może pomyśleć, że ktoś inny nie wykonał ruchu i odejść od stołu.
No to najprościej graczy rozróżniać tak: Każdy gracz posiada swoje ID, który nie ma prawa się powtózyć(np ID rekordu w tabeli gracza). i zmieniasz trochę wygląd tabeli stol: ID|wyglad|ruch|wlasciciel|przeciwnik ID-ID stołu wyglad- tj u ciebie ruch-określa kogo ruch wlasciciel- ID gracza który zalozyl pokoj przeciwnik- ID przeciwnika Tym samym pozbyliśmy się pola stan. Określać czy pokój jest pusty można za pomocą pola przeciwnik. Jeśli wlasciciel odejdzie to zmieniamy pole wlasciciel na 0 i np co 30 sec usuwamy takie pokoje. A jeśli chodzi o określenie kto ma jaki znak (O/X) to najlepiej przypisać właścicielowi X albo O na stałe albo dodać dodatkowe pole wlasciciel_znak A jeśli chcialbyś zaimplementować sztuczną inteligencje to: http://software.com.pl/sztuczna-inteligenc...r-gry-w-szachy/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
To do kogo należy ruch, można również określać stanem na planszy (ilością X i O).
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 15:59 |