Tengo un juego implementado en java, de tirar un dado y que se pasen los puntos y que si saca 1 los puntos queden en cero y si pasa el turno los puntos se guardan y el que llegue a 100 gana actualmente tengo solo dos frames pero lo que pasa es que nle agregue la clase cliente y servidor a el código ya hecho, pero no se como hacer que los metodos de el juego que estan en el frame los amneje el servidor alguien me puede ayudar??
package agalludo2; import java.util.Random; import javax.swing.JOptionPane; /** * * @author Leidy */ public class jFrameAgalludo extends javax.swing.JFrame{ /** * Creates new form FrameAgalludo */ Random tiro=new Random(); // int jugadores = Integer.parseInt(jlbCantidadJugadores.getText()); int player1=0, player2=0, player3=0, player4=0, jugador=1; int dado, cantidadjugadores; public jFrameAgalludo() { initComponents(); this.setLocationRelativeTo(null);//Inicia la ventana en la posicion del centro. CantidadJugadores(); } /** * Lanza los numeros a el jugar que le corresponde * @param evt */ private void jbtnLanzarActionPerformed(java.awt.event.ActionEvent evt) { if(player1>=100 || player2>=100 || player3>=100 || player4>=100){ JOptionPane.showMessageDialog(null, "La partida ya finalizo. \nHas ganado.", "Juego ha terminado", JOptionPane.ERROR_MESSAGE); }else{ if(jlbCantidadJugadores.getText().equals("1")){ do { Jugarcon1Jugador(); } while (jugador==2); }else{ JugarconMasDe1Jugador(); } } } //Pasa el turno a el siguiente jugador private void jbtPasarActionPerformed(java.awt.event.ActionEvent evt) { int aux=jugador; jugador++; if(jugador>cantidadjugadores){ jugador=1; } JOptionPane.showMessageDialog(null, "Jugador "+aux+" pasa.\n Turno para jugador: " +jugador, "Cambio de turno", JOptionPane.INFORMATION_MESSAGE); jlbPlayer.setText(String.valueOf(jugador)); jlbDado.setText(""); } /** * Manda la cantidad de jugadores, a elotro frame y deja jugar a los jugadores que esten en la cantidad elegida */ public void CantidadJugadores(){ cantidadjugadores= Integer.parseInt(JFrameSeleccionarPlayer.jComboBoxcantidad.getSelectedItem().toString()); jlbCantidadJugadores.setText(String.valueOf(cantidadjugadores)); if(cantidadjugadores==1 || cantidadjugadores==2){ cantidadjugadores=2; jlbPlayer3Nombre.setVisible(false); jlbPlayer3Puntos.setVisible(false); jlbPlayer4Nombre.setVisible(false); jlbPlayer4Puntos.setVisible(false); }else{ if(cantidadjugadores==3){ jlbPlayer4Nombre.setVisible(false); jlbPlayer4Puntos.setVisible(false); } } } /** * Medodo que cubre la cantidad de jugadores dependiendo los elegidos.Metodo para jugar con dos o mas jugadores */ public void JugarconMasDe1Jugador(){ dado=tiro.nextInt(6); int aux; jlbDado.setText(String.valueOf(dado)); if(jugador==1){ if(dado==1){ player1=0; jlbPlayer1Puntos.setText(String.valueOf(player1)); }else{ player1 +=dado; jlbPlayer1Puntos.setText(String.valueOf(player1)); if(player1>=100){ JOptionPane.showMessageDialog(null, "Felicidades Jugador "+jugador+"\nAcaba de ganar la partida \nFin del juego", "Juego Terminado", JOptionPane.INFORMATION_MESSAGE); jlbFinJuego.setText("jugador "+jugador+" ha ganado"); } } }else{ if(jugador==2){ if(dado==1){ player2=0; jlbPlayer2Puntos.setText(String.valueOf(player2)); }else{ player2 +=dado; jlbPlayer2Puntos.setText(String.valueOf(player2)); if(player2>=100){ JOptionPane.showMessageDialog(null, "Felicidades Jugador "+jugador+"\nAcaba de ganar la partida \nFin del juego", "Juego Terminado", JOptionPane.INFORMATION_MESSAGE); jlbFinJuego.setText("jugador "+jugador+" ha ganado"); } } }else{ if(jugador==3){ if(dado==1){ player3=0; jlbPlayer3Puntos.setText(String.valueOf(player3)); }else{ player3 +=dado; jlbPlayer3Puntos.setText(String.valueOf(player3)); if(player3>=100){ JOptionPane.showMessageDialog(null, "Felicidades Jugador "+jugador+"\nAcaba de ganar la partida \nFin del juego", "Juego Terminado", JOptionPane.INFORMATION_MESSAGE); jlbFinJuego.setText("jugador "+jugador+" ha ganado"); } } }else{ if(jugador==4){ if(dado==1){ player4=0; jlbPlayer4Puntos.setText(String.valueOf(player4)); }else{ player4 +=dado; jlbPlayer4Puntos.setText(String.valueOf(player4)); if(player4>=100){ JOptionPane.showMessageDialog(null, "Felicidades Jugador "+jugador+"\nAcaba de ganar la partida \nFin del juego", "Juego Terminado", JOptionPane.INFORMATION_MESSAGE); jlbFinJuego.setText("jugador "+jugador+" ha ganado"); } } } } } } if(dado==1){ aux=jugador; jugador++; if(jugador>cantidadjugadores){ jugador=1; } JOptionPane.showMessageDialog(null, "Jugador: " +aux +" Acaba de perder sus puntos \nTurno para Jugador "+jugador, "Cambio de turno", JOptionPane.INFORMATION_MESSAGE); jlbPlayer.setText(String.valueOf(jugador)); jlbDado.setText(""); } } /** * Metodo para jugar con un jugador unicamente */ public void Jugarcon1Jugador(){ dado=tiro.nextInt(6); int aux; jlbDado.setText(String.valueOf(dado)); if(jugador==1){ if(dado==1){ player1=0; jlbPlayer1Puntos.setText(String.valueOf(player1)); }else{ player1 +=dado; jlbPlayer1Puntos.setText(String.valueOf(player1)); if(player1>=100){ JOptionPane.showMessageDialog(null, "Felicidades Jugador "+jugador+"\nAcaba de ganar la partida \nFin del juego", "Juego Terminado", JOptionPane.INFORMATION_MESSAGE); jlbFinJuego.setText("jugador "+jugador+" ha ganado"); } } }else{ do { dado=tiro.nextInt(6); player2 +=dado; jlbPlayer2Puntos.setText(String.valueOf(player2)); JOptionPane.showMessageDialog(null, "Maquina continua jugando", "Turno Maquina", JOptionPane.INFORMATION_MESSAGE); if(player2>=100){ JOptionPane.showMessageDialog(null, "Felicidades Jugador "+jugador+"\nAcaba de ganar la partida \nFin del juego", "Juego Terminado", JOptionPane.INFORMATION_MESSAGE); jlbFinJuego.setText("jugador "+jugador+" ha ganado"); } if(dado==1){ player2=0; jlbPlayer2Puntos.setText(String.valueOf(player2)); } } while (dado!=1 || player2>=100); } if(dado==1){ aux=jugador; jugador++; if(jugador>cantidadjugadores){ jugador=1; } JOptionPane.showMessageDialog(null, "Jugador: " +aux +" Acaba de perder sus puntos \nTurno para Jugador "+jugador, "Cambio de turno", JOptionPane.INFORMATION_MESSAGE); jlbPlayer.setText(String.valueOf(jugador)); jlbDado.setText(""); } } }
Mi clase servidor seria esta como implemento los metodos de ese frame a el servidor?
public class SocketServidor{ private int Puerto=5020; private Socket So; private ServerSocket Ss; private DataInputStream Entrada; private DataOutputStream Salida; public SocketServidor(){ try { Ss = new ServerSocket(Puerto); //2 parametro el maximo de conexiones } catch (IOException ex) { Logger.getLogger(SocketServidor.class.getName()).log(Level.SEVERE, null, ex); } } public void EsperarConexion(){ try { So = Ss.accept(); Entrada = new DataInputStream(So.getInputStream()); Salida = new DataOutputStream(So.getOutputStream()); } catch (IOException ex) { Logger.getLogger(SocketServidor.class.getName()).log(Level.SEVERE, null, ex); } } public String IPConectado(){ return So.getInetAddress().toString(); } public String PuertoConectado(){ return String.valueOf(So.getPort()); } public String EsperarDato(){ try { return Entrada.readUTF(); } catch (IOException ex) { return "@CerrarConexion@"; } } public void EnviarDato(String Dato){ try { Salida.writeUTF(Dato); } catch (IOException ex) { Logger.getLogger(SocketServidor.class.getName()).log(Level.SEVERE, null, ex); } } public void CerrarConexion(){ try { So.close(); } catch (IOException ex) { Logger.getLogger(SocketServidor.class.getName()).log(Level.SEVERE, null, ex); } } private Thread ConexionCliente=new Thread() { @Override public void run() { while(true){ EsperarConexion(); while(true){ //recibir datos } } } }; }