From 8d0fedf836cfd418f9c05d5c21b3c6cc1875e5c9 Mon Sep 17 00:00:00 2001 From: cirakg Date: Mon, 2 Jan 2023 15:32:29 +0100 Subject: Omoguceno igranje igre. Prikaz rezultata po zavrsetku igre. Postavljanje korisnika da budu dostupni za nove zahteve.TODO(Popraviti progress bar,upisivanje rezultata igre u bazu, povratak korisnika da biranje protivnika,provera unosa web i client, ispit istorije meceva web) --- src/main/java/pokemon/Server.java | 45 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'src/main/java/pokemon/Server.java') diff --git a/src/main/java/pokemon/Server.java b/src/main/java/pokemon/Server.java index 9d56a27..0c8e31e 100644 --- a/src/main/java/pokemon/Server.java +++ b/src/main/java/pokemon/Server.java @@ -217,9 +217,10 @@ public class Server implements Runnable { System.out.println(opponentId); Game game=null; for(Game tempGame :games) { - if(tempGame.player1Id==opponentId) + if(tempGame.player1Id==opponentId) { game=tempGame; - break; + break; + } } game.status=GameStatus.PLAYING; ByteBuffer buff = ByteBuffer.wrap(game.toString().getBytes()); @@ -285,8 +286,48 @@ public class Server implements Runnable { opponentSocket.write(buff); ByteBuffer buff1 = ByteBuffer.wrap(myMsg.getBytes()); sc.write(buff1); + }else if(msg[0].equals("GAMEPLAY")) { + long myId=players.get(sc); + long moveId=Long.parseLong(msg[1]); + + Game game=null; + for(Game tempGame :games) { + if(tempGame.player1Id==myId || tempGame.player2Id==myId) { + game=tempGame; + break; + } + } + long opponentId=-1; + + if(game.player1Id==myId) { + opponentId=game.player2Id; + game.player1Move(moveId); + }else { + opponentId=game.player1Id; + game.player2Move(moveId); + } + SocketChannel opponentSocket=null; + for(Entry player : players.entrySet()) { + if(player.getValue()==opponentId) { + opponentSocket=player.getKey(); + break; + } + } + int gameRes=game.checkWin(); + ByteBuffer buff = ByteBuffer.wrap(game.toString().getBytes()); + opponentSocket.write(buff); + ByteBuffer buff1 = ByteBuffer.wrap(game.toString().getBytes()); + sc.write(buff1); + + if(gameRes==1) { + inGame.remove(sc); + inGame.remove(opponentSocket); + games.remove(game); + System.out.println("GAME FINISHED"+games.size()); + //add game to database + } } -- cgit v1.2.3