private void StepGame(Int32 index) { BekeritField field = Fields[index]; // field.Player = Model.Players.NoPlayer; if (_model.Player == Model.Players.PlayerBlue && field.IsLocked == false && field.PlayerColor == Model.Players.NoPlayer) { if (_model.GameSteps == 1) { field.Player = Model.Players.PlayerBlue; field.PlayerColor = Model.Players.PlayerBlue; field.IsLocked = true; _model.Step(field.X, field.Y); NotGray(); RefreshTable(); EnableSave = true; } else { field.PlayerColor = Model.Players.PlayerBlue; field.Player = Model.Players.PlayerBlue; field.IsLocked = true; _model.Step(field.X, field.Y); CheckAvailablePlaces(field.X, field.Y, index); EnableSave = false; } } else if (_model.Player == Model.Players.PlayerRed && field.IsLocked == false && field.PlayerColor == Model.Players.NoPlayer) { if (_model.GameSteps == 1) { field.Player = Model.Players.PlayerRed; field.PlayerColor = Model.Players.PlayerRed; field.IsLocked = true; _model.Step(field.X, field.Y); NotGray(); RefreshTable(); EnableSave = true; } else { field.Player = Model.Players.PlayerRed; field.PlayerColor = Model.Players.PlayerRed; field.IsLocked = true; _model.Step(field.X, field.Y); CheckAvailablePlaces(field.X, field.Y, index); EnableSave = false; } } _model.CheckGameOver(); }
private void CheckAvailablePlaces(Int32 x, Int32 y, Int32 index) { BekeritField field = Fields[index]; Boolean[] Places; Places = new Boolean[4]; for (int i = 0; i < 4; i++) { Places[i] = false; } foreach (BekeritField mezo in Fields) // inicializálni kell a mezőket is { if (mezo.IsLocked == false) { mezo.PlayerColor = Model.Players.Gray; } } if (field.X + 1 < _model._size && _model.Table.IsLocked(x + 1, y) == false) { BekeritField tmp = Fields[(field.X + 1) * _model._size + field.Y]; tmp.PlayerColor = Model.Players.NoPlayer; Places[0] = true; } if (field.X - 1 >= 0 && _model.Table.IsLocked(x - 1, y) == false) { BekeritField tmp = Fields[(field.X - 1) * _model._size + field.Y]; tmp.PlayerColor = Model.Players.NoPlayer; Places[1] = true; } if (field.Y + 1 < _model._size && _model.Table.IsLocked(x, y + 1) == false) { BekeritField tmp = Fields[field.X * _model._size + (field.Y + 1)]; tmp.PlayerColor = Model.Players.NoPlayer; Places[2] = true; } if (field.Y - 1 >= 0 && _model.Table.IsLocked(x, y - 1) == false) { BekeritField tmp = Fields[field.X * _model._size + (field.Y - 1)]; tmp.PlayerColor = Model.Players.NoPlayer; Places[3] = true; } if (!Places.Any(z => z)) { field.Player = Model.Players.NoPlayer; field.PlayerColor = Model.Players.Gray; field.IsLocked = true; _model.Table.SetValue(field.X, field.Y, 6); if (_model.Player == Model.Players.PlayerBlue) { _model.GameStepsDown(); } if (_model.Player == Model.Players.PlayerRed) { _model.GameStepsUp(); } MessageBox.Show("Ide nem tudsz rakni!"); _model.PlayerPointsLower(_model.Player); NotGray(); } }