public void УстановитьСостояниеИгровогоПоля(XOObject value) { foreach (var btn in Controls.Find(value.ID, true)) { btn.Tag = value; (btn as Button).SetImage(value.Ход.ToString()); } }
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); } }
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; } } }
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); }
/// <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); } }