Autor Tema: no se como hacer los movimientos de las fichas en el juego de damas  (Leído 200 veces)

carlos23

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Hola buenas como puedo hacer los movimientos de las fichas y que también se muevan las imágenes en java , estoy utilizando Intellij idea 

package Main;

import Clases.Jugadores;
import Clases.Tablero;
import Clases.posTablero;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class Tabla {
    private JPanel Principal;
    private JPanel Tb1;
    private  JPanel TB;
    private JButton btnIniciar;
    private JButton btnBorrar;
    private static JFrame myFrame;
    private Tablero Board;
    private Jugadores jugador1;
    private Jugadores jugador2;
    private boolean turno;
    private boolean seleccionada;
    private posTablero desde;
    private posTablero hasta;
    private int idFichaActiva;

    private posTablero getPosicionSeleccionada(int fila, int columna){
        posTablero pT= new posTablero();

        if((fila>=0)&&(fila<=79)){
            pT.setFila(0);
        }else if((fila>=80)&&(fila<=159)){
            pT.setFila(1);
        }else if((fila>=160)&&(fila<=239)){
            pT.setFila(2);
        }else if((fila>=240)&&(fila<=319)){
            pT.setFila(3);
        }else if((fila>=320)&&(fila<=399)){
            pT.setFila(4);
        }else if((fila>=400)&&(fila<=479)){
            pT.setFila(5);
        }else if((fila>=480)&&(fila<=559)){
            pT.setFila(6);
        }else if((fila>=560)&&(fila<=639)){
            pT.setFila(7);
        }

        if((columna>=0)&&(columna<=79)){
            pT.setColumna(0);
        }else if((columna>=80)&&(columna<=159)){
            pT.setColumna(1);
        }else if((columna>=160)&&(columna<=239)){
            pT.setColumna(2);
        }else if((columna>=240)&&(columna<=319)){
            pT.setColumna(3);
        }else if((columna>=320)&&(columna<=399)){
            pT.setColumna(4);
        }else if((columna>=400)&&(columna<=479)){
            pT.setColumna(5);
        }else if((columna>=480)&&(columna<=559)){
            pT.setColumna(6);
        }else if((columna>=560)&&(columna<=639)){
            pT.setColumna(7);
        }

        return pT;
    }

    public Tabla() {

        Tablero Board = new Tablero(8, 8);
        Board.paintBoard(TB, new Point(0, 0));
        Board.paintBoard(TB, new Point(0,0));
        jugador1 = new Jugadores(true);
        jugador2 = new Jugadores(false);
        turno = false;
        seleccionada = false;

        //paintFichas(jugador1,Board);
        //paintFichas(jugador2,Board);

        TB.repaint();

        btnIniciar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Tablero Board = new Tablero(8, 8);
                Board.paintBoard(TB, new Point(0, 0));
                Board.paintBoard(TB, new Point(0,0));
                Board.paintBoard(TB, new Point(0,0));
                jugador1 = new Jugadores(true);
                jugador2 = new Jugadores(false);
                paintFichas(jugador1,Board);
                paintFichas(jugador2,Board);
                TB.repaint();
            }
        });

        btnBorrar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Tablero Board = new Tablero(8, 8);
                TB.removeAll();
                TB.repaint();

            }
        });

        TB.addMouseListener(new MouseAdapter() {
            public int d1x =0;
            public int d1y =0;
            public int d2x =0;
            public int d2y =0;
            int i;
            @Override
            public void mouseClicked(MouseEvent e) {
                super.mouseClicked(e);
                int a = e.getX();
                int b = e.getY();
                int[][] op1;
                int[][] op2;

                posTablero pt = getPosicionSeleccionada(e.getY(),e.getX());

                if (seleccionada){
                    hasta = pt;

                    // Aqui va la validacion y el procedimiento de mover
                    d1x=(Integer.parseInt(String.valueOf(pt.getFila()))+1);
                    d1y=(Integer.parseInt(String.valueOf(pt.getColumna()))-1);
                    d2x=(Integer.parseInt(String.valueOf(pt.getFila()))+1);
                    d2y=(Integer.parseInt(String.valueOf(pt.getColumna()))+1);

                }else{
                    seleccionada = true;
                    desde = pt;
                    if (Board.getLogicBoard(desde.getFila(),desde.getColumna())==1){
                        boolean encontro = false;
                        do{
                            if (jugador1.getPeon(i).getPosicion() == desde){
                                idFichaActiva = jugador1.getPeon(i).getID();
                                encontro = true;
                            }
                            i++;
                        }while((i<12)&&(!encontro));



                    }

                }
            }
            /*
            @Override
            public void mouseReleased(MouseEvent e) {
                super.mouseReleased(e);
                int a = e.getX();
                int b = e.getY();
                posTablero pt = getPosicionSeleccionada(e.getY(),e.getX());
                int desx =Integer.parseInt(String.valueOf(pt.getFila()));
                int desy=Integer.parseInt(String.valueOf(pt.getColumna()));

                if((desx==d1x && desy==d2x) ||(desx==d2x && desy==d2y)){

                    JOptionPane.showMessageDialog(null,"si sirve");
                          // pt.getFila() + ", " +
                          //          pt.getColumna());
                }
            }
            */
        });

////////////////////////////////////////////////////////
    }

    private void paintFichas(Jugadores jugadores, Tablero tablero){
        int col,row;
        int i=0;
        if(jugadores.getJugadorN()){

            for(col = 0; col<8; col++) {
                if (col % 2 != 0) {
                    tablero.getFichaTablero(0, col).setBackgroundImage(
                            jugadores.getPeon(i).getNombreImagen(), 80, 80);
                    jugadores.getPeon(i).setPosicion(new posTablero(0,col));
                    jugadores.getPeon(i).setID(i);
                    tablero.setLogicBoard(0,col,1);
                    i++;
                }
            }

            for(col = 0; col<8; col++) {
                if (col % 2 == 0) {
                    tablero.getFichaTablero(1, col).setBackgroundImage(
                            jugadores.getPeon(i).getNombreImagen(), 80, 80);
                    jugadores.getPeon(i).setPosicion(new posTablero(0,col));
                    jugadores.getPeon(i).setID(i);
                    i++;
                }
            }

            for(col = 0; col<8; col++) {
                if (col % 2 != 0)  {
                    tablero.getFichaTablero(2, col).setBackgroundImage(
                            jugadores.getPeon(i).getNombreImagen(), 80, 80);
                    jugadores.getPeon(i).setPosicion(new posTablero(0,col));
                    i++;
                }
            }

        }
        else{
            for(col = 0; col<8; col++) {
                if ((col % 2 == 0) && (col % 2 != 1)) {
                    tablero.getFichaTablero(5, col).setBackgroundImage(
                            jugadores.getPeon(col).getNombreImagen(), 80, 80);
                }
                if ((col % 2 == 1) && (col % 2 != 0)) {
                    tablero.getFichaTablero(6, col).setBackgroundImage(
                            jugadores.getPeon(col).getNombreImagen(), 80, 80);
                }
                if ((col % 2 == 0) && (col % 2 != 1)) {
                    tablero.getFichaTablero(7, col).setBackgroundImage(
                            jugadores.getPeon(col).getNombreImagen(), 80, 80);
                }
            }
        }
    }

    public static void main(String[] args) {
        JFrame n1 = new JFrame("Tabla");
        n1.setContentPane(new Tabla().Principal);
        n1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        n1.pack();
        n1.setLocationRelativeTo(null);
        n1.setVisible(true);
    }

}

 

Esto es un laboratorio de ideas...
Aprender a programar

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".