Java - kółko i krzyżyk

0

Piszę grę w kółko i krzyżyk (przy pomocy Swinga) przez sieć. Sama gra nie jest problemem, jednak pomimo przeglądania przykładowych kodów nie potrafię zrobić tego przez sieć. Chcę napisać program dla serwera i klienta, które łączyłyby się ze sobą za pomocą Socket. Nie jestem do końca pewny co powinien zawierać każdy z programów. Dla przykładu samo tworzenie okienka do gry i "obliczania" wyniku gry nie jest chyba potrzebne w obu programach? Jak zrobić w takim razie to tak, aby po połączeniu okienko, które zostanie utworzone np. według kodu klienta pojawiło się także dla serwera? I ogólnie co który program powinien robić?

Z góry dziękuję za pomoc :)

1

Serwer raczej nie powinien mieć interfejsu graficznego. Serwer powinien wystawić jakieś proste api dla klienta np.

Server {

   setNick(nick)

   playerMove(x, y)

}

oraz powinien być odpowiedzialny za całą mechanikę i logikę gry.
Natomiast klient powinien aktualizować widok w zależności od tego
co się zadzieje w grze na serwerze.

0

Tutaj masz coś podobnego co chcesz zrobić https://cs.lmu.edu/~ray/notes/javanetexamples/#tictactoe

0

A w tym programie co powinienem wpisać jako argument? Próbowałem z localhost, ale wtedy nie działa. Co wpisać, aby programy połączyły się na jednym komputerze?

0
var listener = new ServerSocket(59090)

Z dokumentacji (https://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html) argument w nawiasie to port, na którym działa server.
Także poza localhostem, musisz podać konkretny port.

Nawet masz obrazek dołączony przez autora :)
title

0

Ale w tym przykładowym programie port już jest podany (wpisany w kodzie w odpowiedniej funkcji). Chyba że coś źle rozumiem?

0

Ok, zacznijmy od początku.

Wierze Ci, że umiesz zrobić kółko krzyżyk konsolowo. Chcesz teraz to połączyć z serverem? Podejdź do tego inaczej - zaimplementuj najpierw łatwy program korzystający z TCP. Napisz server i clienta, który będzie się z nim komunikować, np wysyłanie prostej wiadomości przez klienta, odbieranie wiadomości na serverze i odsyłanie potwierdzenia do klienta.
Gdy ogarniesz sobie jak to działa, wtedy możesz dodać do tego implementację gry :)

Przykład TCP Servera i clienta - https://www.pegaxchange.com/2017/12/07/simple-tcp-ip-server-client-java/
Poradnik jest dobrze napisany, sam w przeszłości korzystałem z niego aby ogarnąć z czym to się je.

0

Dobra, poczytam o tym i odezwę się pewnie niedługo. A tak dla pewności - chodziło mi o to co podać w argumencie wywołania programu, a nie samej funkcji, bo nie wiem czy się dobrze zrozumielismy 😂

1 użytkowników online, w tym zalogowanych: 0, gości: 1