Вы находитесь на странице: 1из 24

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Ajedrezz
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
enum piezas { vacio, peonB, torreB, caballoB, alfilB, reinaB, reyB, peonN, torreN, caballoN, alfilN, reinaN,
reyN}
piezas[,] trebejo = new piezas[8, 8];
bool turno = true;
int origenX, origenY, destinoX, destinoY;
byte[,] tablero = new byte[8, 8];
Brush cuadron = Brushes.Black , cuadrob = Brushes.White, color_piezas = Brushes.Red;
string[] figuras = { "", "", "", "", "", "", "", "", "", "", "", "", "" };
public void mover_peon()
{
//peonB
if (trebejo[origenX, origenY] == piezas.peonB)
{
if ((destinoY == (origenY + 2) && destinoX == origenX && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(origenX == destinoX && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX + 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] >
piezas.reyB))
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.peonB;
pictureBox1.Refresh();
}
}
//peonN
if (trebejo[origenX, origenY] == piezas.peonN)
{
if ((destinoY == (origenY - 2) && destinoX == origenX && trebejo[destinoX, destinoY] ==
piezas.vacio) ||

(origenX == destinoX && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==


piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] <
piezas.peonN))
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.peonN;
pictureBox1.Refresh();
}
}
}
public void mover_torre()
{
//torreB
Boolean pieza_encontrada = false;
if (trebejo[origenX, origenY] == piezas.torreB)
{
//derecha
if (destinoX > origenX && destinoY == origenY)
{
for (int x = (origenX + 1); x < destinoX; x++)
{
if (trebejo[x, destinoY] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreB;
pictureBox1.Refresh();
}
}
//izquierda
else
{
if (destinoX < origenX && destinoY == origenY)
{
for (int x = (origenX - 1); x > destinoX; x--)
{
if (trebejo[x, destinoY] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)

{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreB;
pictureBox1.Refresh();
}
}
//Abajo
else
{
if (destinoY > origenY && destinoX == origenX)
{
for (int y = (origenY + 1); y < destinoY; y++)
{
if (trebejo[destinoX, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreB;
pictureBox1.Refresh();
}
}
//Arriba
else
{
if (destinoY < origenY && destinoX == origenX)
{
for (int y = (origenY - 1); y > destinoY; y--)
{
if (trebejo[destinoX, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreB;
pictureBox1.Refresh();
}
}
}
}
}
}

//torreN
else
{
if (trebejo[origenX, origenY] == piezas.torreN)
{
//derecha
if (destinoX > origenX && destinoY == origenY)
{
for (int x = (origenX + 1); x < destinoX; x++)
{
if (trebejo[x, destinoY] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreN;
pictureBox1.Refresh();
}
}
//izquierda
else
{
if (destinoX < origenX && destinoY == origenY)
{
for (int x = (origenX - 1); x > destinoX; x--)
{
if (trebejo[x, destinoY] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreN;
pictureBox1.Refresh();
}
}
//Abajo
else
{
if (destinoY > origenY && destinoX == origenX)
{
for (int y = (origenY + 1); y < destinoY; y++)
{
if (trebejo[destinoX, y] != piezas.vacio)

{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreN;
pictureBox1.Refresh();
}
}
//Arriba
else
{
if (destinoY < origenY && destinoX == origenX)
{
for (int y = (origenY - 1); y > destinoY; y--)
{
if (trebejo[destinoX, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.torreN;
pictureBox1.Refresh();
}
}
}
}
}
}
}
}
public void mover_caballo()
{
//caballoB
if (trebejo[origenX, origenY] == piezas.caballoB)
{
if ((destinoX == (origenX + 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||

(destinoX == (origenX - 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] ==


piezas.vacio) ||
(destinoX == (origenX + 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX - 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX + 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX + 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX - 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX - 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] >
piezas.reyB))
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.caballoB;
pictureBox1.Refresh();
}
}
////caballoN
else
{
if (trebejo[origenX, origenY] == piezas.caballoN)
{
if ((destinoX == (origenX + 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||

(destinoX == (origenX + 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] <


piezas.peonN) ||
(destinoX == (origenX - 1) && destinoY == (origenY + 2) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 2) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX + 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX + 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX - 2) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX - 2) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] <
piezas.peonN))
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.caballoN;
pictureBox1.Refresh();
}
}
}
}
public void mover_alfil()
{
//alfilB
Boolean pieza_encontrada = false;
if (trebejo[origenX, origenY] == piezas.alfilB)
{
//derecha arriba
if (destinoX > origenX && destinoY < origenY && (destinoX - origenX == origenY - destinoY))
{
for (int x = (origenX + 1), y = (origenY - 1); x > destinoX; x++, y--)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.alfilB;
pictureBox1.Refresh();
}
}
//derecha abajo
else
{

if (destinoX > origenX && destinoY > origenY && (destinoX - origenX == destinoY - origenY))
{
for (int x = (origenX + 1), y = (origenY + 1); x > destinoX; x++, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.alfilB;
pictureBox1.Refresh();
}
}
//izquierda arriba
else
{
if (destinoX < origenX && destinoY < origenY && (origenX - destinoX == origenY - destinoY))
{
for (int x = (origenX - 1), y = (origenY - 1); x > destinoX; x--, y--)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.alfilB;
pictureBox1.Refresh();
}
}
//izquierda abajo
else
{
if (destinoX < origenX && destinoY > origenY && (origenX - destinoX == destinoY - origenY))
{
for (int x = (origenX - 1), y = (origenY + 1); x > destinoX; x--, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}

if ((trebejo[destinoX, destinoY] == piezas.vacio ||


trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.alfilB;
pictureBox1.Refresh();
}
}
}
}
}
}
//alfilN
else
{
if (trebejo[origenX, origenY] == piezas.alfilN)
{
//derecha arriba
if (destinoX > origenX && destinoY < origenY && (destinoX - origenX == origenY - destinoY))
{
for (int x = (origenX + 1), y = (origenY - 1); x > destinoX; x++, y--)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.alfilN;
pictureBox1.Refresh();
}
}
//derecha abajo
else
{
if (destinoX > origenX && destinoY > origenY && (destinoX - origenX == destinoY - origenY))
{
for (int x = (origenX + 1), y = (origenY + 1); x > destinoX; x++, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;

trebejo[destinoX, destinoY] = piezas.alfilN;


pictureBox1.Refresh();
}
}
//izquierda arriba
else
{
if (destinoX < origenX && destinoY < origenY && (origenX - destinoX == origenY - destinoY))
{
for (int x = (origenX - 1), y = (origenY - 1); x > destinoX; x--, y--)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.alfilN;
pictureBox1.Refresh();
}
}
//izquierda abajo
else
{
if (destinoX < origenX && destinoY > origenY && (origenX - destinoX == destinoY origenY))
{
for (int x = (origenX - 1), y = (origenY + 1); x > destinoX; x--, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.alfilN;
pictureBox1.Refresh();
}
}
}
}
}
}
}

}
public void mover_rey()
{
//reyB
if (trebejo[origenX, origenY] == piezas.reyB)
{
if ((destinoX == (origenX - 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX ) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX ) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||

(destinoX == (origenX - 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] >


piezas.reyB) ||
(destinoX == (origenX ) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX + 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX + 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX ) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] >
piezas.reyB) ||
(destinoX == (origenX - 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] >
piezas.reyB))
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reyB;
pictureBox1.Refresh();
}
}
//reyN
else
{
if (trebejo[origenX, origenY] == piezas.reyN)
{

if ((destinoX == (origenX - 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==


piezas.vacio) ||
(destinoX == (origenX ) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX ) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||
(destinoX == (origenX - 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] ==
piezas.vacio) ||

(destinoX == (origenX - 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] <


piezas.peonN) ||
(destinoX == (origenX ) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX + 1) && destinoY == (origenY + 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX + 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX + 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX ) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX - 1) && destinoY == (origenY - 1) && trebejo[destinoX, destinoY] <
piezas.peonN) ||
(destinoX == (origenX - 1) && destinoY == (origenY ) && trebejo[destinoX, destinoY] <
piezas.peonN))
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reyN;
pictureBox1.Refresh();
}
}
}
}
public void mover_reina()
{
//reinaB
Boolean pieza_encontrada = false;
if (trebejo[origenX, origenY] == piezas.reinaB)
{
//derecha arriba
if (destinoX > origenX && destinoY < origenY && (destinoX - origenX == origenY - destinoY))
{
for (int x = (origenX + 1), y = (origenY - 1); x > destinoX; x++, y--)

{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaB;
pictureBox1.Refresh();
}
}
//derecha abajo
else
{
if (destinoX > origenX && destinoY > origenY && (destinoX - origenX == destinoY - origenY))
{
for (int x = (origenX + 1), y = (origenY + 1); x > destinoX; x++, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaB;
pictureBox1.Refresh();
}
}
//izquierda arriba
else
{
if (destinoX < origenX && destinoY < origenY && (origenX - destinoX == origenY - destinoY))
{
for (int x = (origenX - 1), y = (origenY - 1); x > destinoX; x--, y--)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;

trebejo[destinoX, destinoY] = piezas.reinaB;


pictureBox1.Refresh();
}
}
//izquierda abajo
else
{
if (destinoX < origenX && destinoY > origenY && (origenX - destinoX == destinoY - origenY))
{
for (int x = (origenX - 1), y = (origenY + 1); x > destinoX; x--, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaB;
pictureBox1.Refresh();
}
}
else
{
//derecha
if (destinoX > origenX && destinoY == origenY)
{
for (int x = (origenX + 1); x < destinoX; x++)
{
if (trebejo[x, destinoY] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaB;
pictureBox1.Refresh();
}
}
//izquierda
else
{
if (destinoX < origenX && destinoY == origenY)
{
for (int x = (origenX - 1); x > destinoX; x--)
{

if (trebejo[x, destinoY] != piezas.vacio)


{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaB;
pictureBox1.Refresh();
}
}
//Abajo
else
{
if (destinoY > origenY && destinoX == origenX)
{
for (int y = (origenY + 1); y < destinoY; y++)
{
if (trebejo[destinoX, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaB;
pictureBox1.Refresh();
}
}
//Arriba
else
{
if (destinoY < origenY && destinoX == origenX)
{
for (int y = (origenY - 1); y > destinoY; y--)
{
if (trebejo[destinoX, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;

trebejo[destinoX, destinoY] = piezas.reinaB;


pictureBox1.Refresh();
}
}
}
}
}
}
}
}
}
}
//alfilN
else
{
if (trebejo[origenX, origenY] == piezas.reinaN)
{
//derecha arriba
if (destinoX > origenX && destinoY < origenY && (destinoX - origenX == origenY - destinoY))
{
for (int x = (origenX + 1), y = (origenY - 1); x > destinoX; x++, y--)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaN;
pictureBox1.Refresh();
}
}
//derecha abajo
else
{
if (destinoX > origenX && destinoY > origenY && (destinoX - origenX == destinoY - origenY))
{
for (int x = (origenX + 1), y = (origenY + 1); x > destinoX; x++, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;

trebejo[destinoX, destinoY] = piezas.reinaN;


pictureBox1.Refresh();
}
}
//izquierda arriba
else
{
if (destinoX < origenX && destinoY < origenY && (origenX - destinoX == origenY - destinoY))
{
for (int x = (origenX - 1), y = (origenY - 1); x > destinoX; x--, y--)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaN;
pictureBox1.Refresh();
}
}
//izquierda abajo
else
{
if (destinoX < origenX && destinoY > origenY && (origenX - destinoX == destinoY origenY))
{
for (int x = (origenX - 1), y = (origenY + 1); x > destinoX; x--, y++)
{
if (trebejo[x, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] < piezas.peonN) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaN;
pictureBox1.Refresh();
}
}
else
{
//derecha
if (destinoX > origenX && destinoY == origenY)

{
for (int x = (origenX + 1); x < destinoX; x++)
{
if (trebejo[x, destinoY] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaN;
pictureBox1.Refresh();
}
}
//izquierda
else
{
if (destinoX < origenX && destinoY == origenY)
{
for (int x = (origenX - 1); x > destinoX; x--)
{
if (trebejo[x, destinoY] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaN;
pictureBox1.Refresh();
}
}
//Abajo
else
{
if (destinoY > origenY && destinoX == origenX)
{
for (int y = (origenY + 1); y < destinoY; y++)
{
if (trebejo[destinoX, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)

{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaN;
pictureBox1.Refresh();
}
}
//Arriba
else
{
if (destinoY < origenY && destinoX == origenX)
{
for (int y = (origenY - 1); y > destinoY; y--)
{
if (trebejo[destinoX, y] != piezas.vacio)
{
pieza_encontrada = true;
break;
}
}
if ((trebejo[destinoX, destinoY] == piezas.vacio ||
trebejo[destinoX, destinoY] > piezas.reyB) && pieza_encontrada == false)
{
trebejo[origenX, origenY] = piezas.vacio;
trebejo[destinoX, destinoY] = piezas.reinaN;
pictureBox1.Refresh();
}
}
}
}
}
}
}
}
}
}
}
}

public void guardar_partida()


{
SaveFileDialog guardar = new SaveFileDialog();
guardar.ShowDialog();
StreamWriter archivo = new StreamWriter(guardar.FileName + ".txt");
foreach (object lista in listBox1.Items)
{
archivo.WriteLine(lista.ToString());
}
archivo.Close();
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{

Graphics graficos = e.Graphics;


for (int y = 0; y < tablero.GetLength(1); y++)
{
for (int x = 0; x < tablero.GetLength(0); x++)
{
if (tablero[x, y] == 0)
{
graficos.FillRectangle(cuadron, x * 60, y * 60, 60, 60);
}
else
{
if (tablero[x, y] == 1)
{
graficos.FillRectangle(cuadrob, x * 60, y * 60, 60, 60);
}
}
if(trebejo[x,y] != piezas.vacio)
{
graficos.DrawString(figuras[(int)trebejo[x,y]],new Font("Arial Unicode MS", 30), color_piezas,
(x*60),(y*60));
}
}
}
}
private void nuevoToolStripMenuItem_Click(object sender, EventArgs e)
{
bool cuadro = false;
for (int y = 0; y < tablero.GetLength(1); y++)
{
cuadro =! cuadro;
for (int x = 0; x < tablero.GetLength(0); x++)
{
tablero[x, y] = Convert.ToByte(cuadro);
cuadro =! cuadro;
}
}
//PIEZAS
trebejo[0, 0] = piezas.torreB;
trebejo[1, 0] = piezas.caballoB;
trebejo[2, 0] = piezas.alfilB;
trebejo[3, 0] = piezas.reyB;
trebejo[4, 0] = piezas.reinaB;
trebejo[5, 0] = piezas.alfilB;
trebejo[6, 0] = piezas.caballoB;
trebejo[7, 0] = piezas.torreB;
for (int z = 0; z < 8; z++)
{
trebejo[z, 1] = piezas.peonB;
trebejo[z, 6] = piezas.peonN;
}
trebejo[0, 7] = piezas.torreN;
trebejo[1, 7] = piezas.caballoN;
trebejo[2, 7] = piezas.alfilN;

trebejo[3, 7] = piezas.reyN;
trebejo[4, 7] = piezas.reinaN;
trebejo[5, 7] = piezas.alfilN;
trebejo[6, 7] = piezas.caballoN;
trebejo[7, 7] = piezas.torreN;
pictureBox1.Refresh();
}
private void AquaToolStripMenuItem_Click(object sender, EventArgs e)
{
color_piezas = Brushes.Lime;
cuadron = Brushes.BlueViolet;
cuadrob = Brushes.White;
pictureBox1.Refresh();
}
private void ForestGreenToolStripMenuItem_Click(object sender, EventArgs e)
{
color_piezas = Brushes.Black;
cuadron = Brushes.Gray;
cuadrob = Brushes.Orange;
pictureBox1.Refresh();
}
private void skyBlue_Click(object sender, EventArgs e)
{
color_piezas = Brushes.Blue;
cuadron = Brushes.Red;
cuadrob = Brushes.White;
pictureBox1.Refresh();
}
private void darkCyan_Click(object sender, EventArgs e)
{
color_piezas = Brushes.Black;
cuadron = Brushes.Green;
cuadrob = Brushes.Gray;
pictureBox1.Refresh();

}
private void indianRed_Click(object sender, EventArgs e)
{
color_piezas = Brushes.White;
cuadron = Brushes.Purple;
cuadrob = Brushes.Pink;
pictureBox1.Refresh();
}
private void pictureBox1_Click(object sender, EventArgs e)
{

}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
ejeX.Text = (e.X/60).ToString();
ejeY.Text = (e.Y/60).ToString();
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (turno == true)
{
origenX = Convert.ToInt32(ejeX.ToString());
origenY = Convert.ToInt32(ejeY.ToString());
posicion.Text = "Pieza tocada";
turno = false;
}
else
{
destinoX = Convert.ToInt32(ejeX.ToString());
destinoY = Convert.ToInt32(ejeY.ToString());
turno = true;
posicion.Text = "Pieza dejada";
//peonB
if (trebejo[origenX, origenY] == piezas.peonB)
{
mover_peon();
}
//peonN
if (trebejo[origenX, origenY] == piezas.peonN)
{
mover_peon();
}
//torreB
if (trebejo[origenX, origenY] == piezas.torreB)
{
mover_torre();
}
//torreN
if (trebejo[origenX, origenY] == piezas.torreN)
{
mover_torre();
}
//caballoB
if (trebejo[origenX, origenY] == piezas.caballoB)
{
mover_caballo();
}
//caballoN
if (trebejo[origenX, origenY] == piezas.caballoN)
{
mover_caballo();

}
//alfilB
if (trebejo[origenX, origenY] == piezas.alfilB)
{
mover_alfil();
}
//alfilB
if (trebejo[origenX, origenY] == piezas.alfilN)
{
mover_alfil();
}
//reyB
if (trebejo[origenX, origenY] == piezas.reyB)
{
mover_rey();
}
//reyN
if (trebejo[origenX, origenY] == piezas.reyN)
{
mover_rey();
}
//reinaB
if (trebejo[origenX, origenY] == piezas.reyB)
{
mover_reina();
}
//reinaN
if (trebejo[origenX, origenY] == piezas.reyN)
{
mover_reina();
}
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (turno == true)
{
origenX = Convert.ToInt32(listBox1.ToString());
origenY = Convert.ToInt32(listBox1.ToString());
}
}
private void guardarPartidaToolStripMenuItem_Click(object sender, EventArgs e)
{
guardar_partida();
}
private void pequeoToolStripMenuItem_Click(object sender, EventArgs e)
{
this.pictureBox1.Size = new System.Drawing.Size(240, 240);
//tablero = 30;
this.WindowState = FormWindowState.Normal;
pictureBox1.Refresh();

}
private void medianoToolStripMenuItem_Click(object sender, EventArgs e)
{
this.pictureBox1.Size = new System.Drawing.Size(480, 480);
//tablero = 60;
this.WindowState = FormWindowState.Normal;
pictureBox1.Refresh();
}
private void grandeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.pictureBox1.Size = new System.Drawing.Size(720, 720);
// tablero = 90;
this.WindowState = FormWindowState.Normal;
pictureBox1.Refresh();
}
}
}

Вам также может понравиться