I have a game implemented in java, to roll a dice and pass the points and if it rolls 1 the points remain at zero and if the turn passes the points are saved and whoever reaches 100 wins currently I only have two frames but I What happens is that I don't add the client and server classes to the code already done, but I don't know how to make the game methods that are in the frame handle them to the server. Can someone help me?
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("");
}
}
}
My server class would be this, how do I implement the methods of that frame to the server?
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
}
}
}
};
}
You can try to create a final variable of type JFrame in the SocketServer class , and when instantiating the new SocketServer you pass the reference from the jFrameAgalludo to the new SocketServer instance , in this way the SocketServer class would have access to all the methods and variables public files that you created in the jFrameAgalludo class .
So, when creating the SocketServidor instance in the jFrameAgalludo class, you simply add the reference to it: