/// <summary> /// Coloca la pieza de juego en la posición dada /// </summary> /// <param name="bp">Objeto BoardPosition que representa la posición /// en el tablero</param> public void PlaceToken(BoardPosition bp) { // Si la posición no está ocupada entonces colocamos // la ficha, de lo contrario, no hacemos nada if (!bp.Used) { // Guardamos la posición a utilizar Vector3 pos = bp.gameObject.transform.position; // Colocamos la ficha según el tipo de _playerGame que tenemos, // recuerda si _playerGame es 0 entonces colocamos un tache // de lo contrario colocamos un círculo GameObject obj = Instantiate(Cross, pos, Quaternion.identity) as GameObject; // Marcamos la casilla como ocupada bp.Used = true; //Fila 1 if (pos.x < -2f && pos.y > 2f) { valor = 0; } if (pos.x > -2f && pos.x < 2f && pos.y > 2f) { valor = 1; } if (pos.x > 2f && pos.y > 2f) { valor = 2; } //Fila 2 if (pos.x < -2f && pos.y < 2f && pos.y > -2f) { valor = 3; } if (pos.x > -2f && pos.x < 2f && pos.y < 2f && pos.y > -2f) { valor = 4; } if (pos.x > 2f && pos.y < 2f && pos.y > -2f) { valor = 5; } //Fila 3 if (pos.x < -2f && pos.y < -2f) { valor = 6; } if (pos.x > -2f && pos.x < 2f && pos.y < -2f) { valor = 7; } if (pos.x > 2f && pos.y < -2f) { valor = 8; } // Cambiamos la ficha para el siguiente juego _playerGame = 1; canMove++; SavePosition(valor, 0); //Turno de la computadora computadora.GetMinimax(lugar, 1, 0); int best = computadora.BestMove(); if (best == 0) { pos.x = -2.481309f; pos.y = 2.488531f; pos.z = 0f; } if (best == 1) { pos.x = 0.007499248f; pos.y = 2.488531f; pos.z = 0f; } if (best == 2) { pos.x = 2.48025f; pos.y = 2.488531f; pos.z = 0f; } if (best == 3) { pos.x = -2.481309f; pos.y = -0.0002770126f; pos.z = 0f; } if (best == 4) { pos.x = 0.007499248f; pos.y = -0.0002770126f; pos.z = 0f; } if (best == 5) { pos.x = 2.48025f; pos.y = -0.0002770126f; pos.z = 0f; } if (best == 6) { pos.x = -2.481309f; pos.y = -2.424857f; pos.z = 0f; } if (best == 7) { pos.x = 0.007499248f; pos.y = -2.424857f; pos.z = 0f; } if (best == 8) { pos.x = 2.48025f; pos.y = -2.424857f; pos.z = 0f; } GameObject obj2 = Instantiate(Circle, pos, Quaternion.identity) as GameObject; valor = best; // Cambiamos la ficha para el siguiente juego _playerGame = 0; SavePosition(valor, 1); } }