Академический Документы
Профессиональный Документы
Культура Документы
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) ||
{
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) ||
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;
}
}
}
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) ||
{
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;
{
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();
}
}
}
}
}
}
}
}
}
}
}
}
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();
}
}
}