/// <summary> /// A játékos kiválaszt egy mezőt a táblán, és meghívódik rá a következő lépés. Csak a felületen történő kattintásra hívódik meg /// </summary> /// <param name="id"></param> public void FieldChosen(int id) { if (nextIsCPU) { return; } TicTacToeElement element = Elements[id]; if (!element.IsEnabled) { return; } NextStep(element); }
/// <summary> /// Lép egyet a kiválasztott elemmel a következő játékos /// </summary> /// <param name="element"></param> private void NextStep(TicTacToeElement element) { if (!Player) { element.Text = "X"; element.Color = "Red"; } else { element.Text = "O"; element.Color = "Green"; } ChangePlayer(); element.IsEnabled = false; int player = Player ? 2 : 1; _model.UpdateTable(element.X, element.Y, player); #region Evaluations on screen for testing fieldValues.Clear(); foreach (TicTacToeElement _element in Elements) { if (_model.CanPlace(_element.X, _element.Y)) { if (_model.ValueTableValue(_element.X, _element.Y) == "0") { if (ShowEvaluate) { _element.Text = ""; } } else { if (ShowEvaluate) { _element.Text = _model.ValueTableValue(_element.X, _element.Y); } fieldValues.Add(new Tuple <int, int, int>(_element.X, _element.Y, int.Parse(_model.ValueTableValue(_element.X, _element.Y)))); } } } #endregion bool end = _model.IsGameOver(); if (end) { if (GameEnded != null) { GameEnded(this, new WinEventArgs(PlayerToString(Player))); return; } } if (PC && Player) { nextIsCPU = true; CPUStep(); } else if (PC && !Player) { nextIsCPU = false; } else if (CC) { nextIsCPU = true; CPUStep(); } }