P. 1
Diapositivas Juego Ajedrez

Diapositivas Juego Ajedrez

|Views: 1.313|Likes:
Publicado porLuis Alberto

More info:

Published by: Luis Alberto on Feb 04, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

01/27/2015

pdf

text

original

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.

JAQUE

JAQUE MATE (Sin movimiento)

SOFTWARE

Lenguaje:
◦ C++ 6 Builder

Algoritmo:
◦ Minimax
(añadiendo poda ALFA y BETA)

Estructura de Datos:
◦ Árboles, Bitwase y Listas

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)

Este es solamente el primer nivel del árbol .......

16 16 matriz x 64 byte = 1024 byte

SOFTWARE

Bitwase
8 X 4 X 2 X 1 X 8 X 4 X 2 X 1 X

4 bits = 1 casilla

4 bits = 1 casilla

8 bits = 1 byte

v

2 casillas

....... 1 Matriz = 32 byte = 64 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).

MALA DECISIÓN !!!
...

...

180 160

260 280 250 300

200

180 160

SOFTWARE
MinMax(GamePosition game) {

return MaxMove(game);
}

DepthLimitReached() .- Es el limite del nivel en el que va recorrer la profundidad.

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; Value(Move m) .-Le devuelve el alpha = Value(move); } valor de ese movimiento o el //Ignore remaining moves if(beta > alpha) return best_move;

GenerateMoves(Game g).- Se manda el ultimo movimiento o tablero para que me de otro movimiento.

costo del movimiento.

} return best_move;
} }

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

El turno del jugador

Son todos los movimientos que se hicieron en el juego (todas las jugadas)

Son todas las piezas comidas en el partido

GRACIAS POR SU ATENCION !!!

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->