Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Internetowa gra w Kółko i Krzyżyk
tab
post
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
Go to the top of the page
+Quote Post
daniel1302
post
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/
Go to the top of the page
+Quote Post
nmts
post
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).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 15:59