Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ajedrez;
- import java.util.*;
- class IA{
- int valorNecesario = -1;
- int x = 0;
- int y = 0;
- int coorX = 0;
- int coorY = 0;
- boolean movimiento = false;
- Random random = new Random();
- int atributoFinal = 0;
- /*IA(partida){
- this.partida = partida;
- }*/
- //metodo que busca una pieza dentro de la matriz
- void getCoordenadas(){
- int i, j;
- int [][]temp = null;
- for(i = 0; i < 8; i++){
- for(j = 0; j < 8; j++){
- if((valorNecesario <= 0) && (valorNecesario >= -16)){
- if(temp[j][i] == valorNecesario){
- x = i;
- y = j;
- this.evaluacion(x, y);
- valorNecesario = valorNecesario - 1;
- }
- else{
- valorNecesario = valorNecesario - 1;
- }
- }}
- }
- }
- void evaluacion(int coordx, int coordy){
- int i, j;
- int [][]temp = null;
- int nuevoAtributo = 0;
- for(i = coordx; i >= 0; i--){
- for(j = 7; j >= 0; j--){
- //movimiento = checarColisiones();
- if((temp[j][i] == 1)||(temp[j][i] == 2)||(temp[j][i] == 3)||(temp[j][i] == 4)||(temp[j][i] == 5)||(temp[j][i] == 6)||(temp[j][i] == 7)||(temp[j][i] == 8)){
- nuevoAtributo = ganarAtributo(1);
- this.compararAtributo(nuevoAtributo, j, i);
- }
- if(temp[j][i] == 2){
- nuevoAtributo = ganarAtributo(2);
- this.compararAtributo(nuevoAtributo, j, i);
- }
- if(temp[j][i] == 3){
- nuevoAtributo = ganarAtributo(3);
- this.compararAtributo(nuevoAtributo, j, i);
- }
- if(temp[j][i] == 4){
- nuevoAtributo = ganarAtributo(4);
- this.compararAtributo(nuevoAtributo, j, i);
- }
- if(temp[j][i] == 5){
- nuevoAtributo = ganarAtributo(5);
- this.compararAtributo(nuevoAtributo, j, i);
- }
- if(temp[j][i] == 6){
- nuevoAtributo = ganarAtributo(6);
- this.compararAtributo(nuevoAtributo, j, i);
- }
- }
- }
- }
- void compararAtributo(int puntos, int x, int y){
- if(puntos > atributoFinal){
- atributoFinal = atributoFinal + puntos;
- this.destinoX(x);
- this.destinoY(y);
- }
- if((puntos == atributoFinal) && (puntos > 0) && (atributoFinal > 0)){
- this.destinoX(x);
- this.destinoX(y);
- }
- if((puntos == atributoFinal) && (puntos == 0) && (atributoFinal == 0)){
- this.destinoX(this.coordenadaRandom());
- this.destinoY(this.coordenadaRandom());
- }
- }
- void destinoX(int X){
- coorX = X;
- }
- void destinoY(int Y){
- coorY = Y;
- }
- int getCoordX(){
- return coorX;
- }
- int getCoordY(){
- return coorY;
- }
- /*boolean checarColisiones(){
- return true;
- }*/
- //en caso de no haber algun movimiento que beneficie a la computadora genera coordenadas random
- int coordenadaRandom(){
- return random.nextInt(8);
- }
- int ganarAtributo(int a){
- int atributo;
- if(a == 1){
- atributo = 1;
- }
- if(a == 2){
- atributo = 2;
- }
- if(a == 3){
- atributo = 3;
- }
- if(a == 4){
- atributo = 4;
- }
- if(a == 5){
- atributo = 5;
- }
- if(a == 6){
- atributo = 6;
- }
- else{
- atributo = 0;
- }
- return atributo;
- }
- }
- /* En caso de que ningun puntaje sea mayor a 0 se genera un random y que suelte cualquier movimiento sin importar cual sea
- int obtieneCoordenadas(int coordx, int coordy){
- mi variable x = coordx
- mi variable y = coordy
- }
- int generomoviemiento(){
- if(mis coordenasSonValidas)
- generomovimientoaleatorio()
- if(movimientoaleatoriovalido == true)
- while(colision != true) //colision se refiere a chocar con los limites del tablero o encontrar una pieza enemiga o aliada
- sumarpuntajeporcasilla() //las piezas amigas sumaran negatvos al puntage las piezas enemigas sumaran enteros
- do
- if(puntajeNuevo > puntajeActual){
- puntajeActual = puntajeNuevo
- puntajeNuevo = 0;
- coordenadasFavorables = coordenadasGeneradas}
- else{
- puntajeNuevo = 0;
- coordenadasGeneradas = borrar //se igualan a cero o null
- }
- regresarCoordenadas();
- regreso coordenadasFavorables()
- }
- boolean mover( Posicion origen, Posicion destino, int turno){
- if( Posicion.esIgual(origen,destino)) return false;
- if( tablero[destino.x][destino.y] != 0) return false;
- if( (origen.x == destino.x) && (origen.y+turno==destino.y)) return true;
- return false;
- }
- boolean atacar( Posicion origen, Posicion destino, int turno){
- if( Posicion.esIgual(origen,destino)) return false;
- if( (tablero[destino.x][destino.y] == 0) ||
- ( ( tablero[destino.x][destino.y] != 0) &&
- ( (tablero[destino.x][destino.y]/Math.abs(tablero[destino.x][destino.y])) == turno )
- )
- )return false;
- if( ((origen.x+1 == destino.x) || (origen.x-1 == destino.x) ) &&
- ( origen.y+turno == destino.y)
- )return true;
- return false;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement