Zasadniczo wszystko co was interesuje znajduje się w pliku flask_api.py
. Żeby odpalić serwer odpalacie skrypt run_online.py
Jak checie tylko sobie poklikać żeby sprawdzić zasady to odpalacie run_offline.py
Protokół łączenia się z serwerem i gry wygląda następująco:
- wysyłacie GET'a na
http://adres_serwera:5000/sync
- W odpowiedzi dostajecie jsona z:
player_id
- token którym potem będziecie się uwierzytelniać z serweremstone_color
- wasz kolor kamieni
- Żeby pobrać stan gry wysyłacie POST'a na
http://adres_serwera:5000/get_state
z polem formularzaplayer_id
którego wartość to wasz token
- W odpowiedzi:
game_state
- lista list gdzie1
to białe kamienie,2
to czarne ,a0
to puste pola. Mapowanie jest w klasieStoneColor
is_your_turn
- flaga dająca wam znać czy teraz jest wasz ruch
- Żeby wysłać ruch który chcecie wykonać wysyłacie POST'a na
http://adres_serwera:5000/send_move
ponownie z polem formularzaplayer_id
i dwoma dodatkowymi polami formularzax
iy
oznajczającymi pole na które chcecie wykonać ruch
- W odpowiedzi otrzymujecie
- kod odpowiedzi
200
jeśli ruch ktory wykonaliście jest poprawny - kod odpowiedzi
500
jeśli ruch który wykonaliście albo nie jest poprawny albo nie jest wasza tura - dodatkowo otrzymujecie zawsze stringa z informacją co się zepsuło
- kod odpowiedzi
Dodatkowe info:
- Punkt (0,0) planszy jest w lewym górnym rogu.
- kod odpowiedzi '418' oznacza problem z autoryzacją albo problem z
player_id
albo już wydano dwa tokeny - skrypt
run_online.py
nie ubije się przez Ctrl+C bo pygame stroi fochy, musicie go ubić ręcznie - wszelkie uwagi do Mnie i do Olka, jak chcecie coś poprawić w kodzie to dawajcie pull-requesty i nas pingujcie na fejsie
Cała logika gry jest zaimplementowana zgodnie z regułami podanymi tutaj jak chcecie się dokładnie zapytać o coś to męczcie Olka on pisał logikę gry
Ważne get_state
nie zwraca histori ruchów w grze co jest istotne przy niektórych sytuacjach na planszy ale będzie niedługo
- dodać historię ruchów w
get_state
- dodać możliwość pasowania w
send_state