Point locationHelper; //Немного ненужная переменная, для метода ниже, в процессе разработки может быть исключена, нужна для временного хранения позиции последней карты колоды public void TurnReaction(int id) //В классе контроллера, этот метод (точнее метод конкретного экземпляра) будет добавлен к обработчикам события смены хода, и принимать будет в себя переменную с ИДшником игрока, чей черед ходить { //Controller.CountAllScores(); if (_id == id) //Важная строчка - проверяем, совпадает ли ИД текущего экземпляра класса с ИД того игрока, чей черед ходить { while (PlayerCounter <= 16) //Глупенькая логика - пока число очков будет не больше 16, берем новые карты { //Thread.Sleep(1500); //чтобы все не было мгновенно locationHelper = currentMassiv.Last().Location; // if (Controller.CurrentDeck.Count != 0) { currentMassiv.Add(Controller.CurrentDeck.Last()); currentMassiv.Last().Location = new Point(locationHelper.X + 20, locationHelper.Y + 20); currentMassiv.Last().ShowBack(); } Controller.CardWasTaken(Id); Controller.CurrentDeck.Remove(Controller.CurrentDeck.Last()); Controller.CountAllScores(); //Добавить карту на стол (нужен код) } if (PlayerCounter > 21) { //Код оповещения } if (PlayerCounter == 21) { } //Thread.Sleep(1000); Controller.NextTurn(id + 1); } }
private void pictureBox1_Click(object sender, EventArgs e) //обработчик кнопки "Хватит" (красная) { Controller.NextTurn(2); //Метод NextTurn вызывает событие, принимающее идентификатор следующего игрока, в данном случае он равен 2, тк как этот обработчик способен вызвать только игрок-человек, а так как игроку-человеку мы назначаем ИД равный 1, то следующим будет виртуальный игрок и ИД равным 2 }