public Form1() { // wykonanie kilku niezbędnych na początku operacji InitializeComponent(); podpiszSzachownice(); RysujSiatke(bialy, czarny); kompletujPiony(); Bierka.przeliczWszystieRuchy(); odswiezLabelKolejka(); }
// jedna funkcja uzywana przy obu roszadach - bo po kazdej trzeba przegenerowac ruchy i zmienic kolejke private void zrobResztePoRoszadzie() { WyczyscPanele(); foreach (Bierka bi in Gra.bierkiBiale.Union(Gra.bierkiCzarne)) { ustawBierke(bi); } odswiezLabelKolejka(); Bierka.przeliczWszystieRuchy(); Gra.kolejka = Enums.czyjaKolej.Komputer; wykonajRuchPC(); WyczyscPanele(); Bierka.przeliczWszystieRuchy(); // moze niepotrzebne foreach (Bierka bi in Gra.bierkiBiale.Union(Gra.bierkiCzarne)) { ustawBierke(bi); } odswiezLabelKolejka(); }
public static void wczytajGre() { string linijka = string.Empty; Gra.bierkiBiale.Clear(); Gra.bierkiCzarne.Clear(); OpenFileDialog okienko = new OpenFileDialog(); okienko.Filter = "Stany gry BasicBlue(chess)|*.chess"; if (okienko.ShowDialog() == DialogResult.OK) { MessageBox.Show("Wybrano plik: " + okienko.FileName); } System.IO.StreamReader file = new System.IO.StreamReader(okienko.FileName); // odczyt i przetwarzanie każdej linii pliku osobno while ((linijka = file.ReadLine()) != null) { string[] tab = linijka.Split(';'); if (tab.Length == 5) { string typBierki = tab[1]; string kolor = tab[0]; int x = int.Parse(tab[2]); int y = int.Parse(tab[3]); string ruch = tab[4]; Enums.Kolor_pionków k = Enums.Kolor_pionków.Biale; bool bylRuch = false; if (ruch == "True") { bylRuch = true; } if (kolor == "Czarne") { k = Enums.Kolor_pionków.Czarne; } else if (kolor == "Biale") { k = Enums.Kolor_pionków.Biale; } if (typBierki == "Pionek") { if (k == Enums.Kolor_pionków.Biale) { Gra.bierkiBiale.Add(new Pionek(k, x, y, bylRuch)); } else { Gra.bierkiCzarne.Add(new Pionek(k, x, y, bylRuch)); } } else if (typBierki == "Wieza") { if (k == Enums.Kolor_pionków.Biale) { Gra.bierkiBiale.Add(new Wieza(k, x, y, bylRuch)); } else { Gra.bierkiCzarne.Add(new Wieza(k, x, y, bylRuch)); } } else if (typBierki == "Skoczek") { if (k == Enums.Kolor_pionków.Biale) { Gra.bierkiBiale.Add(new Skoczek(k, x, y, bylRuch)); } else { Gra.bierkiCzarne.Add(new Skoczek(k, x, y, bylRuch)); } } else if (typBierki == "Goniec") { if (k == Enums.Kolor_pionków.Biale) { Gra.bierkiBiale.Add(new Goniec(k, x, y, bylRuch)); } else { Gra.bierkiCzarne.Add(new Goniec(k, x, y, bylRuch)); } } else if (typBierki == "Hetman") { if (k == Enums.Kolor_pionków.Biale) { Gra.bierkiBiale.Add(new Hetman(k, x, y, bylRuch)); } else { Gra.bierkiCzarne.Add(new Hetman(k, x, y, bylRuch)); } } else if (typBierki == "Krol") { if (k == Enums.Kolor_pionków.Biale) { Gra.bierkiBiale.Add(new Krol(k, x, y, bylRuch)); } else { Gra.bierkiCzarne.Add(new Krol(k, x, y, bylRuch)); } } } else if (linijka.Contains("1.")) { Gra.pgnString = linijka; } } file.Close(); Bierka.przeliczWszystieRuchy(); Gra.kolejka = Enums.czyjaKolej.Osoba; }
private void panel_Click(object sender, EventArgs e) { if (Gra.kolejka == Enums.czyjaKolej.Osoba) { TableLayoutPanelCellPosition pos = Tools.GetCellPosotion(tableLayoutPanel1); Bierka b = Bierka.getBierkaByPos(pos.Column, pos.Row, Gra.bierkiBiale, Gra.bierkiCzarne); if (wybrana == null && b != null && b.kolor == Enums.Kolor_pionków.Czarne) { return; } if (wybrana != null && b == null) { if (!wybrana.przesun(pos.Column, pos.Row, true)) { MessageBox.Show("ruch niedozwolony"); } else { WyczyscPanele(); foreach (Bierka bi in Gra.bierkiBiale.Union(Gra.bierkiCzarne)) { ustawBierke(bi); } Gra.kolejka = Enums.czyjaKolej.Komputer; odswiezLabelKolejka(); Bierka.przeliczWszystieRuchy(); wykonajRuchPC(); WyczyscPanele(); // Bierka.przeliczWszystieRuchy(); // moze niepotrzebne foreach (Bierka bi in Gra.bierkiBiale.Union(Gra.bierkiCzarne)) { ustawBierke(bi); } odswiezLabelKolejka(); } } else if (wybrana != null && b != null && wybrana.kolor != b.kolor) // bicie { if (!wybrana.zbij(b)) { MessageBox.Show("bicie niedozwolone"); } else { WyczyscPanele(); foreach (Bierka bi in Gra.bierkiBiale.Union(Gra.bierkiCzarne)) { ustawBierke(bi); } Gra.kolejka = Enums.czyjaKolej.Komputer; odswiezLabelKolejka(); Bierka.przeliczWszystieRuchy(); wykonajRuchPC(); WyczyscPanele(); Bierka.przeliczWszystieRuchy(); // moze niepotrzebne foreach (Bierka bi in Gra.bierkiBiale.Union(Gra.bierkiCzarne)) { ustawBierke(bi); } odswiezLabelKolejka(); } } else { wybrana = b; } if (b == null) { label3.Text = "Puste pole " + pos.Column + " " + pos.Row; } else { label3.Text = b.ToString() + " kolor: " + b.kolor + "(X,Y)=(" + b.pozycjaX + "," + b.pozycjaY + ")"; //b.generujMozliweRuchy(); Bierka.przeliczWszystieRuchy(); label4.Text = "możliwe ruchy: " + b.mozliweRuchy.Count() + Environment.NewLine + "możliwe bicia: " + b.mozliweBicia.Count(); } } txtPgn.Text = Gra.pgnString; sprawdzMozliwoscRoszady(); }