import java.io.*; import java.net.*; class NetworkGameClient { public static void main(String args[]) throws Exception { int moveNum = 1; BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress My_IPAddress = InetAddress.getLocalHost(); // SERVER IP ADDRESS System.out.print("Please enter the server IP Address: "); String server_ip_address = inFromUser.readLine(); InetAddress IPAddress = InetAddress.getByName(server_ip_address); //USERNAME! System.out.print("Please enter your username: "); String player = inFromUser.readLine(); //OPPONENT NAME! System.out.print("Please enter your opponent's username: "); String opponent = inFromUser.readLine(); byte[] receiveData = new byte[1024]; DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); String modifiedSentence = new String(receivePacket.getData()); String sendMessage = ""; String l = "~"; String incomingString; String[] tokens; String playerMove, opponentMove, winner; String status = "start"; while(true) { byte[] sendData = new byte[1024]; if(status.equals("start")) { System.out.print("Please enter your move letter (Rock, Paper, Scissors, Lizard, spocK: "); String move = inFromUser.readLine(); String sendString = "move~" + player + l + opponent + l + move + l + moveNum; sendData = sendString.getBytes(); System.out.println(sendString); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); } clientSocket.receive(receivePacket); incomingString = new String(receivePacket.getData()); tokens = incomingString.split("~"); status = tokens[0]; player = tokens[1]; playerMove = tokens[2].toLowerCase(); opponent = tokens[3]; opponentMove = tokens[4].toLowerCase(); winner = tokens[5].trim(); if(status.equals("moved")) { moveNum++; System.out.println("Your move: " + playerMove); System.out.println( opponent + "'s move: " + opponentMove); System.out.println("Winer: " + winner); System.out.println(); System.out.print("Please enter your move letter (Rock, Paper, Scissors, Lizard, spocK: "); String move = inFromUser.readLine(); String sendString = "move" + l + player + l + opponent + l + move + l + moveNum; sendData = sendString.getBytes(); System.out.println(sendString); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); } else if(status.equals("gameover")) { System.out.println("Your move: " + playerMove); System.out.println( opponent + "'s move: " + opponentMove); System.out.println("Winer: " + winner); System.out.println("GAME OVER"); System.out.print("Winner: " ); System.out.print(winner + "\n"); System.exit(0); } } } }