예제 #1
0
        private void TurnAtack(Button button, string colorEnemi, int xEnemi, int yEnemi, int xTurn, int yTurn)
        {
            if (FindMtBut(xEnemi, yEnemi).Content != null && (FindMtBut(xEnemi, yEnemi).Content as Ellipse).Stroke.ToString() == colorEnemi && button.Content == null)
            {
                coordinate_sending = tempBut.X.ToString() + tempBut.Y.ToString();
                FindMtBut(xEnemi, yEnemi).Content = null;
                CanselBorder(FindMtBut(0, 0));

                tempEnimyDELET = FindMtBut(xEnemi, yEnemi).Name[1].ToString() + FindMtBut(xEnemi, yEnemi).Name[2].ToString();
                enemi.Remove(enemi.Where(x => x.X == Convert.ToInt32(FindMtBut(xEnemi, yEnemi).Name[1].ToString()) && x.Y == Convert.ToInt32(FindMtBut(xEnemi, yEnemi).Name[2].ToString())).FirstOrDefault());

                obj   = team.Where(x => x.X == tempBut.X && x.Y == tempBut.Y).FirstOrDefault();
                obj.X = Convert.ToInt32(button.Name[1].ToString());
                obj.Y = Convert.ToInt32(button.Name[2].ToString());

                FindMtBut(xTurn, yTurn).Content = FindMtBut(0, 0).Content;

                FindMtBut(0, 0).Content = null;

                tempBut.X = Convert.ToInt32(button.Name[1].ToString());
                tempBut.Y = Convert.ToInt32(button.Name[2].ToString());
                isUseButt = "";
                if (UmovaRamka(1, 1, 2, 2, colorEnemi, '7', '7') ||
                    UmovaRamka(1, -1, 2, -2, colorEnemi, '7', '0') ||
                    UmovaRamka(-1, 1, -2, 2, colorEnemi, '0', '7') ||
                    UmovaRamka(-1, -1, -2, -2, colorEnemi, '0', '0'))
                {
                    button.BorderBrush     = Brushes.Red;
                    button.BorderThickness = new Thickness(3.0);
                    button.Tag             = "use";
                    isUseButt = button.Name;
                    Block("You can attacking enemi", "0", "1");
                }
                else
                {
                    if (whatTeam)
                    {
                        Block("Waite Black turn", "1", "0");
                    }
                    else
                    {
                        Block("Waite White turn", "1", "0");
                    }
                }
            }
        }
예제 #2
0
        private void ShowEnemi(int count, int posX, int posY, Shashka shashkaBE, Shashka shashkaAF, string color)
        {
            Shashka shashka = new Shashka();

            listButtons.Where(j => j.Name == "P" + (shashkaBE.X).ToString() + (shashkaBE.Y).ToString()).FirstOrDefault().Content = null;
            listButtons.Where(j => j.Name == "P" + (shashkaAF.X).ToString() + (shashkaAF.Y).ToString()).FirstOrDefault().Content = new Ellipse()
            {
                Stroke = (Brush)brush_convert.ConvertFrom(color)
            };
            shashka   = enemi.Where(x => x.X == shashkaBE.X && x.Y == shashkaBE.Y).FirstOrDefault();
            shashka.X = shashkaAF.X;
            shashka.Y = shashkaAF.Y;
            if (count == 7)
            {
                listButtons.Where(j => j.Name == "P" + posX.ToString() + posY.ToString()).FirstOrDefault().Content = null;
                listButtons.Where(j => j.Name == "P" + posX.ToString() + posY.ToString()).FirstOrDefault().Tag     = "unuse";
                team.Remove(team.Where(x => x.X == posX && x.Y == posY).FirstOrDefault());
            }
        }
예제 #3
0
        void Turn(Button button, string colorEnemi)
        {
            //перевіряємо чи є шашка на кнопці або чи вибрана яка інша шашка на полі
            if (button.Content is Ellipse || listButtons.Find(x => Umova(x, 0, 0, whatTeam)).BorderBrush == Brushes.Red)
            {
                //перевірка чи це перша шашка або чи це та вже вибрана шашка
                if (isUseButt == button.Name || isUseButt == "" && (button.Content as Ellipse).Stroke.ToString() != colorEnemi)
                {
                    //обираємо шашку якщо вона НЕ вибрана
                    if (button.Tag.ToString() == "unuse")
                    {
                        button.BorderBrush     = Brushes.Red;
                        button.BorderThickness = new Thickness(3.0);
                        button.Tag             = "use";
                        isUseButt = button.Name;
                        tempBut.X = Convert.ToInt32(button.Name[1].ToString());
                        tempBut.Y = Convert.ToInt32(button.Name[2].ToString());
                    }
                    //якщо вибрана то знімаємо рамку
                    else
                    {
                        CanselBorder(button);
                        isUseButt = "";
                    }
                }
                //перевіряємо чи там не має іншої шашки + перевіряємо чи бажаний хід є в зоні обмеження
                else
                {
                    if (Umova(button, 1, 1, whatTeam) && button.Content == null || Umova(button, 1, -1, whatTeam) && button.Content == null)
                    {
                        coordinate_sending = tempBut.X.ToString() + tempBut.Y.ToString();
                        //повертаємо попередній кнопці тег "не використовується" і обнуляємо
                        CanselBorder(listButtons.Where(x => Umova(x, 0, 0, whatTeam)).FirstOrDefault());
                        listButtons.Where(x => Umova(x, 0, 0, whatTeam)).FirstOrDefault().Content = null;

                        obj = team.Where(x => x.X == tempBut.X && x.Y == tempBut.Y).FirstOrDefault();

                        button.Content = obj.form;
                        obj.X          = Convert.ToInt32(button.Name[1].ToString());
                        obj.Y          = Convert.ToInt32(button.Name[2].ToString());
                        tempBut.X      = obj.X;
                        tempBut.Y      = obj.Y;

                        isUseButt = "";
                        if (whatTeam)
                        {
                            Block("Waite Black turn", "1", "0");
                        }
                        else
                        {
                            Block("Waite White turn", "1", "0");
                        }
                    }
                    else
                    {
                        string swTemp = "";
                        swTemp  = (Convert.ToInt32(button.Name[1].ToString()) - tempBut.X).ToString();
                        swTemp += (Convert.ToInt32(button.Name[2].ToString()) - tempBut.Y).ToString();
                        switch (swTemp)
                        {
                        case "22":
                            TurnAtack(button, colorEnemi, 1, 1, 2, 2);
                            break;

                        case "2-2":
                            TurnAtack(button, colorEnemi, 1, -1, 2, -2);
                            break;

                        case "-22":
                            TurnAtack(button, colorEnemi, -1, 1, -2, 2);
                            break;

                        case "-2-2":
                            TurnAtack(button, colorEnemi, -1, -1, -2, -2);
                            break;

                        default:
                            break;
                        }
                        swTemp = "";
                    }
                }
                RefreshXY(team);
                if (team.Count == 0)
                {
                    MessageBox.Show("LOOOSSEERRRR!!!");
                    //   CreateDoska();
                }
                else if (enemi.Count == 0)
                {
                    MessageBox.Show("WInnneeerrr!!");
                    //  CreateDoska();
                }
            }
        }