package MV3500Cohort2024JulySeptember.homework2.Smith; /** * This the the rock paper sciccors server. * @author tjsus */ import java.io.*; import java.net.*; import java.util.Random; public class Server { private static int runningTotal = 0; // Initialize running total public Server() { // default constructor } public static void main(String[] args) { try { System.out.println(Server.class.getName() + " has started..."); ServerSocket serverSocket = new ServerSocket(2317); OutputStream os; PrintStream ps; InetAddress localAddress, remoteAddress; int localPort, remotePort; int wins = 0; int losses = 0; while (true) { try (Socket clientConnectionSocket = serverSocket.accept()) { os = clientConnectionSocket.getOutputStream(); ps = new PrintStream(os); // Read the number sent by the client BufferedReader br = new BufferedReader(new InputStreamReader(clientConnectionSocket.getInputStream())); String clientChoice = br.readLine(); Random rand = new Random(); int serverChoiceInt = rand.nextInt(0,3); String serverChoiceStr; serverChoiceStr = switch (serverChoiceInt) { case 0 -> "rock"; case 1 -> "paper"; case 2 -> "scissors"; default -> "Error"; }; if ("rock".equals(serverChoiceStr) & "paper".equals(clientChoice)){ losses++; } else if ("paper".equals(serverChoiceStr) & "scissors".equals(clientChoice)){ losses++; } else if ("scissors".equals(serverChoiceStr) & "rock".equals(clientChoice)){ losses++; } else if ("rock".equals(serverChoiceStr) & "scissors".equals(clientChoice)){ wins++; } else if ("scissors".equals(serverChoiceStr) & "paper".equals(clientChoice)){ wins++; } else if ("paper".equals(serverChoiceStr) & "rock".equals(clientChoice)){ wins++; } // Send back the updated total ps.println("Client chose: " + clientChoice + "/ Server Chose: "+ serverChoiceStr + "/ Wins: "+wins+"/ loses: "+ losses); ps.println("Please wait for server to choose"); System.out.println("Client chose: " + clientChoice); localAddress = clientConnectionSocket.getLocalAddress(); remoteAddress = clientConnectionSocket.getInetAddress(); localPort = clientConnectionSocket.getLocalPort(); remotePort = clientConnectionSocket.getPort(); ps.flush(); } } } catch (IOException e) { System.err.println("Problem with " + Server.class.getName() + " networking: " + e); if (e instanceof java.net.BindException) { System.err.println("*** Be sure to stop any other running instances of programs using this port!"); } } } }