C# как проверить, являются ли шахматные фигуры контактными?
например,у меня есть только две фигуры ' Paw и слон,мне нужно проверить, что две фигуры расположены на одной линии, это означает, что слон может ударить пешку, а затем, когда я нажимаю на кнопку Check, мне нужно, чтобы все диагональные ящики, доступные для слона, были окрашены в красный цвет.
Что я уже пробовал:
private void Form1_Paint(object sender, PaintEventArgs e) { for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { if((i+j) % 2 != 0) gf.FillRectangle(Brushes.Black, (j + 1) * 50, (i+1)*50, 50, 50); } Label lb = new Label(); lb.Text = Convert.ToChar('A' + i).ToString(); lb.Font = new Font("Tahoma", 18); lb.Location = new Point(50 * (i + 1), 450); lb.Width = 50; lb.Height = 26; this.Controls.Add(lb); } for (int i = 8; i > 0; i--) { Label lab = new Label(); lab.Text = i.ToString(); lab.Font = new Font("Tahoma", 18); lab.Location = new Point(0, 50 *(9- i)); lab.Width = 50; lab.Height = 26; this.Controls.Add(lab); } } private void Create_Click_1(object sender, EventArgs e) { if (comboBox1.SelectedItem == "bishop") { string position = textBox1.Text; string first_letter = position[0].ToString().ToUpper(); int x = (int)(first_letter[0] - 64); int y = int.Parse(position[1].ToString()); gf.DrawImage(Properties.Resources.bishop, x * 50, (8 - y + 1) * 50, 50, 50); } else if(comboBox1.SelectedItem == "pawn") { string position = textBox1.Text; string first_letter = position[0].ToString().ToUpper(); int x = (int)(first_letter[0] - 64); int y = int.Parse(position[1].ToString()); gf.DrawImage(Properties.Resources.pawn, x * 50, (8 - y + 1) * 50, 40, 50); } } private void button2_Click(object sender, EventArgs e) { //This is my Check button,How can i check it? what should i write here? }
Richard MacCutchan
Вы все еще делаете это неправильно. Узнайте, как создавать правильные классы и использовать наследование и общие методы. Пока вы не научитесь писать правильный код C#, вы не добьетесь никакого прогресса в этом.