Beispiel #1
0
 public void УстановитьСостояниеИгровогоПоля(XOObject value)
 {
     foreach (var btn in Controls.Find(value.ID, true))
     {
         btn.Tag = value;
         (btn as Button).SetImage(value.Ход.ToString());
     }
 }
Beispiel #2
0
        void btn_Click(object sender, EventArgs e)
        {
            try
            {
                _NewGame = true;
                XOObject btn = (sender as XOObject);
                _PreviousStep = _NextStep;
                if (!btn.Tag.ToString().Equals("0"))
                {
                    // _Service.ShowMessage("Недопустимый ход!");
                    return;
                }

                if (_NextStep == 1)
                {
                    btn.TextToImage("x");
                    _NextStep = 0;
                }
                else
                {
                    btn.TextToImage("o");
                    _NextStep = 1;
                }
                btn.Tag = 1;
                SetChange(btn);

                string rez = Victory.Winner(GetAllText());
                if (!string.IsNullOrEmpty(rez))
                {
                    _Service.ShowMassege(rez);

                    this.SetAllTag("0");
                    this.SetAllText("");

                    if (_NextStep == 1)
                    {
                        SetGemers("X", "0");
                    }
                    else
                    {
                        SetGemers("0", "X");
                    }

                    _NewGame = false;
                    //  SWSound.Start();
                }
            }
            catch (Exception ex)
            {
                _Service.ShowError(ex.Message);
            }
        }
Beispiel #3
0
        public void SetChange(XOObject value)
        {
            var btn = ButtonGrid.FindName(value.Name);

            if (btn is Button)
            {
                if ((btn as Button).Content.Equals(value.Name))
                {
                    (btn as Button).Content    = value.Text;
                    (btn as Button).Tag        = value.Tag;
                    (btn as Button).Background = value.Background;
                }
            }
        }
Beispiel #4
0
        public void УстановитьСостояниеИгровогоПоляПоУмолчанию(XOObject value)
        {
            XOObject btn1 = new XOObject()
            {
                ID = button1.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn1);

            XOObject btn2 = new XOObject()
            {
                ID = button2.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn2);

            XOObject btn3 = new XOObject()
            {
                ID = button3.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn3);

            XOObject btn4 = new XOObject()
            {
                ID = button4.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn4);

            XOObject btn5 = new XOObject()
            {
                ID = button5.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn5);

            XOObject btn6 = new XOObject()
            {
                ID = button6.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn6);

            XOObject btn7 = new XOObject()
            {
                ID = button7.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn7);

            XOObject btn8 = new XOObject()
            {
                ID = button8.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn8);

            XOObject btn9 = new XOObject()
            {
                ID = button9.Name, Ход = value.Ход, ХодСделан = value.ХодСделан
            };

            УстановитьСостояниеИгровогоПоля(btn9);
        }
Beispiel #5
0
        /// <summary>
        /// Метод определяет 'результативность' хода пользователя
        /// </summary>
        /// <param name="sender"></param>
        private void СделатьХод(XOObject sender)
        {
            try
            {
                Mode mode = Mode.easy;
                if (!this._Game.ПолучитьРежимСложностиИгры())
                {
                    ;
                }
                mode = Mode.hard;

                _NewGame = true;

                _PreviousStep = _NextStep;

                if (sender.ХодСделан)
                {
                    return;
                }

                if (_NextStep == СостояниеХода.X)
                {
                    sender.Ход = СостояниеХода.X;
                    _NextStep  = СостояниеХода.O;
                }
                else
                {
                    sender.Ход = СостояниеХода.O;
                    _NextStep  = СостояниеХода.X;
                }

                sender.ХодСделан = true;
                _Game.УстановитьСостояниеИгровогоПоля(sender);

                IVictory victory = new VictoryStrategy(mode);

                СостояниеХода?rez = victory.Победа(this._Game.ПолучитьСостояниеИгровогоПоля());

                if (rez == null)
                {
                    return;
                }

                if (rez == СостояниеХода.NULL)
                {
                    DataBaseLogic.GetInstance().SetConnectDB("Requests_Database.sqlite").AddResultInTable(1, 1);
                    _Service.ShowMessage("Draw, Try again!");
                }

                if (rez == СостояниеХода.X)
                {
                    DataBaseLogic.GetInstance().SetConnectDB("Requests_Database.sqlite").AddResultInTable(1, 0);
                    _Service.ShowMessage("The crosses won!");
                }

                if (rez == СостояниеХода.O)
                {
                    DataBaseLogic.GetInstance().SetConnectDB("Requests_Database.sqlite").AddResultInTable(0, 1);
                    _Service.ShowMessage("Zeroes won!");
                }

                УстановитьПараметрыПоУмолчанию(null, EventArgs.Empty);

                _NewGame = false;
            }
            catch (Exception ex)
            {
                _Service.ShowError(ex.Message);
            }
        }