public void ClickCell(int x, int y) { switch (game_model.GetStatusApplication()) { case StatusApplication.game: if (game_model.GetStatusPlayer() == StatusPlayer.human) { if (game_model.HumanStep(x, y) == true) //если человек сходил { game_model.NextPlayer(); if (game_model.SearchAnyMove()) //есть ходы? { switch (game_model.GetStatusPlayer()) //да { case StatusPlayer.human: // надо ли есть? if (game_model.SearchEatingAndWriteToMove()) { game_model.SetStatusGame(StatusGame.waitEat); } return; case StatusPlayer.bot: //включили таймер form_view.timer.Enabled = true; return; } } else { //нет: конец игры if (game_model.GetStatusGame() != StatusGame.gameOver) { game_model.SetStatusGame(StatusGame.gameOver); if (game_model.GetColor() == Color.white) { GameEnd(); MessageBox.Show("Game over. Black won"); } else if (game_model.GetColor() == Color.black) { GameEnd(); MessageBox.Show("Game over. White won"); } return; } return; } } } break; case StatusApplication.constructor: if (form_view.IsCheckedButtonAdd()) //если выбраны настройки для шашки и не выбран Delete { if ((x + y) % 2 == 1) { Color col = form_view.GetChosenColor(); if (form_view.count[(int)col] < 12 || col == game_model.GetColOfCh(x, y)) { form_view.count[(int)game_model.GetColOfCh(x, y)] += game_model.DeleteChecker(x, y); //удаляй старую шашку } if (form_view.count[(int)col] < 12) { form_view.count[(int)col] += game_model.CreateChecker(new Checker(col, form_view.GetChosenFigure(), x, y)); //вставляй новую } } } else if (form_view.IsCheckedButtonDelete()) //если выбрана кнопка delete - удаляй шашку. { form_view.count[(int)game_model.GetColOfCh(x, y)] += game_model.DeleteChecker(x, y); } if (form_view.count[0] > 0 && form_view.count[1] > 0) { form_view.SetButtonPlayEnabled(true); } else { form_view.SetButtonPlayEnabled(false); } break; //default: MessageBox.Show("Error, status != game or constructor, status == "+ game_model.GetStatusApplication().ToString()); break; } }