Como jugador aficionado de ajedrez (con 1000 puntos de ELO :D) he creado con C# .NET y Visual Studio un ajedrez para 2 jugadores.
Cuando un peón llega a la última línea posible se permite elegir coronar la pieza por una Torre, Caballo, Alfil o Reina:
Cuando los espacios entre torre y rey están vacíos se permite realizar el enroque, tal como se puede ver en las siguientes imágenes: