chess/PieceSelection.cs

75 lines
2.5 KiB
C#
Raw Permalink Normal View History

2024-06-24 13:01:12 +02:00
using System;
using System.Windows.Forms;
namespace Chess
{
public partial class WybranieFigury : Form
{
private WybranieFigury()
{
InitializeComponent();
LeftArrow.Click += ButtonClick;
RightArrow.Click += ButtonClick;
ApplyButton.Click += ButtonClick;
}
private readonly Pole clickedTile;
private int position = 0;
private readonly string[] keys = { "BQueen", "BBishop", "BRook", "BKnight" };
private readonly Kolor waitingPlayer;
public static bool waiting { get; private set; } = false;
public WybranieFigury(Pole clickedTile) : this()
{
waiting = true;
waitingPlayer = Szachownica.KogoTerazTura == Kolor.WHITE ? Kolor.BLACK : Kolor.WHITE;
Szachownica.KogoTerazTura = Kolor.NONE;
this.clickedTile = clickedTile;
if (clickedTile.GetY == 0)
{
for (int i = 0; i < keys.Length; i++)
{
keys[i] = keys[i].Remove(0, 1);
keys[i] = 'W' + keys[i];
}
}
Preview.Image = Pole.FiguryObrazy[keys[position]];
}
public void ButtonClick(object sender, EventArgs e)
{
switch (((Button)sender).Name)
{
case "RightArrow": position++; break;
case "LeftArrow": position--; break;
default: Close(); break;
}
if (position < 0)
{
position = keys.Length - 1;
}
if (position > keys.Length - 1)
{
position = 0;
}
Preview.Image = Pole.FiguryObrazy[keys[position]];
}
protected override void OnClosed(EventArgs e)
{
waiting = false;
clickedTile.figura = new Figura(keys[position], clickedTile);
Szachownica.KogoTerazTura = waitingPlayer;
Figura.ZaaktualizujWszystkieAtaki();
Posuniecie Search = new Posuniecie();
if (Search.SyndromOblezonejTwierdzy())
{
Szachownica.Window.GameState.Text = "CHECK";
Szachownica.Window.GameState.ForeColor = System.Drawing.Color.Firebrick;
Szachownica.Window.GameState.Visible = true;
}
_ = Search.Mat();
base.OnClosed(e);
}
}
}