SHARE
TWEET

IA.java

richigarza Nov 26th, 2012 111 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package ajedrez;
  2.  
  3. import java.util.*;
  4.  
  5. class IA{
  6.  
  7. int valorNecesario = -1;
  8. int x = 0;
  9. int y = 0;
  10. int coorX = 0;
  11. int coorY = 0;
  12. boolean movimiento = false;
  13. Random random = new Random();
  14. int atributoFinal = 0;
  15.  
  16. /*IA(partida){
  17.     this.partida = partida;
  18. }*/
  19.  
  20. //metodo que busca una pieza dentro de la matriz
  21. void getCoordenadas(){
  22.         int i, j;
  23.         int [][]temp = null;
  24.         for(i = 0; i < 8; i++){
  25.                 for(j = 0; j < 8; j++){
  26.                 if((valorNecesario <= 0) && (valorNecesario >= -16)){
  27.                         if(temp[j][i] == valorNecesario){
  28.                         x = i;
  29.                         y = j;
  30.                         this.evaluacion(x, y);
  31.                         valorNecesario = valorNecesario - 1;
  32.                         }
  33.                         else{
  34.                         valorNecesario = valorNecesario - 1;
  35.                         }
  36.                 }}
  37.         }
  38. }
  39.  
  40. void evaluacion(int coordx, int coordy){
  41.         int i, j;
  42.         int [][]temp = null;
  43.         int nuevoAtributo = 0;
  44.         for(i = coordx; i >= 0; i--){
  45.                 for(j = 7; j >= 0; j--){
  46.                         //movimiento = checarColisiones();
  47.                         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)){
  48.                         nuevoAtributo = ganarAtributo(1);
  49.                         this.compararAtributo(nuevoAtributo, j, i);
  50.                         }
  51.                         if(temp[j][i] == 2){
  52.                                 nuevoAtributo = ganarAtributo(2);
  53.                                 this.compararAtributo(nuevoAtributo, j, i);    
  54.                         }
  55.                         if(temp[j][i] == 3){
  56.                                 nuevoAtributo = ganarAtributo(3);
  57.                                 this.compararAtributo(nuevoAtributo, j, i);                                    
  58.                         }
  59.                         if(temp[j][i] == 4){
  60.                                 nuevoAtributo = ganarAtributo(4);
  61.                                 this.compararAtributo(nuevoAtributo, j, i);                                    
  62.                         }
  63.                         if(temp[j][i] == 5){
  64.                                 nuevoAtributo = ganarAtributo(5);
  65.                                 this.compararAtributo(nuevoAtributo, j, i);                                    
  66.                         }
  67.                         if(temp[j][i] == 6){
  68.                                 nuevoAtributo = ganarAtributo(6);
  69.                                 this.compararAtributo(nuevoAtributo, j, i);                                    
  70.                         }
  71.                 }
  72.         }
  73. }
  74.  
  75. void compararAtributo(int puntos, int x, int y){
  76.         if(puntos > atributoFinal){
  77.                 atributoFinal = atributoFinal + puntos;
  78.                 this.destinoX(x);
  79.                 this.destinoY(y);
  80.         }
  81.         if((puntos == atributoFinal) && (puntos > 0) && (atributoFinal > 0)){
  82.                 this.destinoX(x);
  83.                 this.destinoX(y);
  84.         }
  85.         if((puntos == atributoFinal) && (puntos == 0) && (atributoFinal == 0)){
  86.                 this.destinoX(this.coordenadaRandom());
  87.                 this.destinoY(this.coordenadaRandom());
  88.         }
  89.        
  90. }
  91.  
  92. void destinoX(int X){
  93.         coorX = X;
  94. }
  95.  
  96. void destinoY(int Y){
  97.         coorY = Y;
  98. }
  99.  
  100. int getCoordX(){
  101.         return coorX;
  102. }
  103.  
  104. int getCoordY(){
  105.         return coorY;
  106. }
  107.  
  108. /*boolean checarColisiones(){
  109.         return true;
  110. }*/
  111. //en caso de no haber algun movimiento que beneficie a la computadora genera coordenadas random
  112. int coordenadaRandom(){
  113. return random.nextInt(8);
  114. }
  115.  
  116. int ganarAtributo(int a){
  117.         int atributo;
  118.         if(a == 1){
  119.                 atributo = 1;
  120.         }
  121.         if(a == 2){
  122.                 atributo = 2;
  123.         }
  124.         if(a == 3){
  125.                 atributo = 3;
  126.         }
  127.         if(a == 4){
  128.                 atributo = 4;
  129.         }
  130.         if(a == 5){
  131.                 atributo = 5;
  132.         }
  133.         if(a == 6){
  134.                 atributo = 6;
  135.         }
  136.         else{
  137.                 atributo = 0;
  138.         }
  139.         return atributo;
  140. }
  141. }
  142.  
  143. /* En caso de que ningun puntaje sea mayor a 0 se genera un random y que suelte cualquier movimiento sin importar cual sea
  144. int obtieneCoordenadas(int coordx, int coordy){
  145.         mi variable x  = coordx
  146.         mi variable y = coordy
  147. }
  148.  
  149. int generomoviemiento(){
  150.        
  151.         if(mis coordenasSonValidas)
  152.                 generomovimientoaleatorio()
  153.                 if(movimientoaleatoriovalido == true)
  154.                 while(colision != true) //colision se refiere a chocar con los limites del tablero o encontrar una pieza enemiga o aliada
  155.                         sumarpuntajeporcasilla() //las piezas amigas sumaran negatvos al puntage las piezas enemigas sumaran enteros
  156.                 do
  157.         if(puntajeNuevo > puntajeActual){
  158.                 puntajeActual = puntajeNuevo
  159.                 puntajeNuevo = 0;
  160.                 coordenadasFavorables = coordenadasGeneradas}
  161.         else{
  162.                 puntajeNuevo = 0;
  163.                 coordenadasGeneradas = borrar //se igualan a cero o null
  164.                 }
  165.  
  166. regresarCoordenadas();
  167.         regreso coordenadasFavorables()
  168. }
  169.  
  170.  
  171.  
  172.  
  173.   boolean mover( Posicion origen, Posicion destino, int turno){
  174.         if( Posicion.esIgual(origen,destino)) return false;
  175.         if( tablero[destino.x][destino.y] != 0) return false;
  176.         if( (origen.x == destino.x) && (origen.y+turno==destino.y)) return true;
  177.         return false;
  178.   }
  179.  
  180.   boolean atacar( Posicion origen, Posicion destino, int turno){
  181.         if( Posicion.esIgual(origen,destino)) return false;
  182.         if( (tablero[destino.x][destino.y] == 0) ||
  183.              ( ( tablero[destino.x][destino.y] != 0) &&  
  184.                ( (tablero[destino.x][destino.y]/Math.abs(tablero[destino.x][destino.y])) == turno )
  185.                )
  186.             )return false;
  187.                            
  188.         if(  ((origen.x+1 == destino.x) || (origen.x-1 == destino.x) ) &&
  189.            ( origen.y+turno == destino.y)
  190.            )return true;
  191.  
  192.         return false;
  193.   }
  194. */
RAW Paste Data
Top