using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace Chess { public enum Kolor { WHITE, BLACK, NONE } public partial class Pole : UserControl { public Figura figura = new Figura(RodzajFigury.EMPTY); public Kolor kolor = Kolor.WHITE; public Lokalizacja lokalizacja = new Lokalizacja(); public Kolor atakNaPole = Kolor.NONE; public void UstawAtak(Figura figuraAtak) { atakNaPole = figuraAtak.kolor; } public void UsunAtak() { atakNaPole = Kolor.NONE; } public byte GetY => lokalizacja.y; public byte GetX => lokalizacja.x; public bool jestZajete() { return figura.rodzajfigury != RodzajFigury.EMPTY; } public Pole(byte y, byte x) { InitializeComponent(); lokalizacja.y = y; lokalizacja.x = x; Location = new Point(x * Size.Width, y * Size.Height); } public Pole(byte y, byte x, Kolor kolor) : this(y, x) { this.kolor = kolor; } public Color KolorPola() { return kolor != Kolor.WHITE ? Color.DarkOliveGreen : Color.WhiteSmoke; } public void PrzydzialFigur(Figura figura) { this.figura = figura; FiguraObraz.BackgroundImageLayout = ImageLayout.Center; FiguraObraz.BackgroundImage = FiguryObrazy[figura.NazwaObrazu()]; FiguraObraz.Size = new Size(Size.Width / 2, Size.Height / 2); } private void Tile_Load(object sender, EventArgs e) { FiguraObraz.BackColor = KolorPola(); BackColor = KolorPola(); Click += KliknietoNaPole; FiguraObraz.Click += KliknietoNaPole; } private static int click = 0; private static Posuniecie ruchyfigur; public void PossibleMove(bool show) { FiguraObraz.Image = !show ? null : (Image)Properties.Resources.PossibleMove; } private void KliknietoNaPole(object sender, EventArgs e) { if (click == 0 && figura.kolor != Szachownica.KogoTerazTura) { return; } click++; if (click == 1) { ruchyfigur = new Posuniecie(this); _ = ruchyfigur.CzyKrolJestBezpieczny(); ruchyfigur.InterfejsObslugiPoprzednichRuchow(true); } else { _ = ruchyfigur.jestRuchMozliwy(this); click = 0; } } public static Dictionary FiguryObrazy = new Dictionary { { "BBishop",Properties.Resources.Black_Bishop}, { "BKnight",Properties.Resources.Black_Knight }, { "BRook",Properties.Resources.Black_Rook }, { "BKing",Properties.Resources.Black_King }, { "BQueen",Properties.Resources.Black_Queen }, { "BPawn",Properties.Resources.Black_Pawn }, { "WBishop",Properties.Resources.White_Bishop }, { "WKnight",Properties.Resources.WKnight }, { "WRook",Properties.Resources.White_Rook }, { "WKing",Properties.Resources.WKing}, { "WQueen",Properties.Resources.White_Queen }, { "WPawn",Properties.Resources.White_Pawn }, { "EMPTY",null } }; } public struct Lokalizacja { public byte y, x; } }