diapositivas juego ajedrez
TRANSCRIPT
AJEDREZ
LOS ELEMENTOS
Dos jugadores.
Tablero color intercalado(8x8).
Piezas:
- Rey
:: 1
- Reina
:: 1
- Alfiles
:: 2
- Caballos
:: 2
- Torres ::
2
- Peón :: 8
MOVIMIENTO DE LAS PIEZAS
REY◦ El Rey se mueve en cualquier dirección, una casilla cada vez.
◦ Es decir, que puede moverse a cualquiera de las casillas
contiguas a la que ocupe, siempre que no haya en ella una pieza
propia.
MOVIMIENTO DE LAS PIEZAS
REINA◦ La Reina, que también se denomina corrientemente "Dama",
puede moverse, lo mismo que el Rey, en las columnas, filas o
diagonales, es decir, vertical, horizontal o diagonalmente.
La Reina tiene la
mayor potencia
en comparación
al resto de las
demás piezas.
MOVIMIENTO DE LAS PIEZAS
ALFIL◦ Lo mismo que la Reina, el Alfil puede moverse y capturar
diagonalmente.
◦ A diferencia de la Reina y la Torre, no puede moverse ni en filas
ni en columnas.
En sus movimientos, el Alfil
tiene las mismas
limitaciones que la Reina y
la Torre, es decir, puede
ser bloqueado por piezas
propias o enemigas,
pudiendo capturar estas
últimas.
MOVIMIENTO DE LAS PIEZAS
CABALLO◦ Cada Caballo se mueve con la combinación de una y dos casillas:
a) Una casilla hacia arriba o hacia abajo, y después dos a la derecha o a la
izquierda.
b) Una casilla hacia la derecha o hacia la izquierda, y dos para arriba o para
abajo.
El Caballo puede ser
descrito como el clown, el
mal muchacho o el arma
secreta del ajedrez.
MOVIMIENTO DE LAS PIEZAS
TORRE◦ La Torre puede moverse horizontalmente (en fila) o
verticalmente (en columna).
La Torre no puede
moverse en
diagonal, no
siendo, por tanto,
tan fuerte como la
Reina.
MOVIMIENTO DE LAS PIEZAS
PEON◦ El Peón tiene un número considerable de diferencias con
relación a las otras piezas.
◦ El Peón sólo puede moverse en una dirección: Adelante.
COMO GANAR Se gana mediante el ataque al Rey enemigo, de tal manera que el
adversario sea incapaz de evitar la captura de su Rey.
Cuando un Rey está amenazado de captura, se dice que está en "jaque".
Cuando el jaque es de tal naturaleza que no existe defensa, se dice entonces que se ha dado "jaque mate", y el juego está terminado.
JAQUEJAQUE MATE
(Sin movimiento)
SOFTWARE
Lenguaje:
◦ C++ 6 Builder
Algoritmo:
◦ Minimax
Estructura de Datos:
◦ Árboles, Bitwase y Listas
(añadiendo poda ALFA y BETA)
SOFTWARE
Representación del Tablero:
Cada casilla toma el valor de la pieza que ocupa.
0 = vacío
1 = peón
2 = caballo
3 = alfil
4 = torre
5 = reina
6 = rey
SOFTWARE
La matriz ocupa mucha memoria.
1 movimiento = 1 matriz (64 byte)
16
. . . . . . .
16 matriz x 64 byte = 1024 byte
Este es solamente
el primer nivel del árbol
SOFTWARE
Bitwase
X X X X X X X X
1 12 24 48 8
8 bits = 1 byte
4 bits = 1 casilla 4 bits = 1 casilla
. . . . . . .v
1 Matriz = 32 byte = 64 casillas
2 casillas 2 casillas
SOFTWARE
ALGORITMO
◦ MINIMAX (añadiendo poda ALFA y BETA)
Ventaja
Esta optimiza la búsqueda en el árbol.
No gasta procesamiento (Rápido).
Desventaja
No recorre el árbol completo (No busca el mejor movimiento).
. . .
. . .
180 160 260 280 250 300 160180200
MALA DECISIÓN !!!
SOFTWAREMinMax(GamePosition game) {
return MaxMove(game);
}
MaxMove(GamePosition game) {
if(GameEnded(game) || DepthLimitReached()) {
return EvalGameState(game,MAX);
} else {
best_move = {};
moves = GenerateMoves(game);
ForEach moves {
move = MinMove(ApplyMove(game) , alpha, beta );
if(Value(move) > Value(best_move)) {
best_move = move;
alpha = Value(move);
}
//Ignore remaining moves
if(beta > alpha)
return best_move;
}
return best_move;
}
}
DepthLimitReached() .- Es el limite
del nivel en el que va recorrer la
profundidad.
GenerateMoves(Game g).- Se manda
el ultimo movimiento o tablero
para que me de otro
movimiento.
Value(Move m) .-Le devuelve el
valor de ese movimiento o el
costo del movimiento.
SOFTWARE MinMove(GamePosition game) {
if(GameEnded(game) || DepthLimitReached()) {
return EvalGameState(game,MIN);
} else {
best_move = {};
moves = GenerateMoves(game);
ForEach moves {
move = MaxMove(ApplyMove(game) , alpha, beta );
if(Value(move) > Value(best_move)) {
best_move = move;
beta = Value(move);
}
//Ignore remaining moves
if(beta < alpha)
return best_move;
}
return best_move;
}
}
SOFTWARE
SOFTWARE
Son todos los
movimientos que
se hicieron
en el juego
(todas las jugadas)
Son todas las
piezas comidas
en el partido
El turno del jugador
GRACIAS POR SU ATENCION !!!