Читать книгу Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 3: Программирование на Visual C# искусственного интеллекта (продолжение 2) - Валерий Алексеевич Карданов, Дарья Андреевна Самсонова, Наталья Сергеевна Кузьмина - Страница 10

Введение
1.8. Схема запуска игры

Оглавление

Когда начинается игра, приложение очищает (Clear) «руку игрока» (player’s hand) и добавляет две колоды карт следующим образом:


CardHand playerHand = new CardHand ();

playerHand.Clear ();

dealerHand.Clear ();

// deal the face down hole card

dealerHoleCard = shoe.DealCard ();

dealerHoleCard. FaceUp = false;

dealerHand.Add (dealerHoleCard);

// deal the first player card

playerHand.Add(shoe.DealCard ());

// deal the second dealer card (face up)

dealerHand.Add(shoe.DealCard ());

// deal the second player card


playerHand.Add(shoe.DealCard ());

В этом коде, для простоты, не принимается во внимание чередование раздачи карт между игроком и банкомётом. Это будет учтено далее в полной программе игры.

Далее в проекте имеется команда «Hit Me» меню maneMenu1. После выбора этой команды, компьютер выдаёт игроку дополнительную карту, если набранное им количество очков меньше 21, как показано в следующем коде:

void playerHits ()

{

if (playerHand. BlackJackScoreHand () <21)

{

playerHand.Add(shoe.DealCard ());

if (playerHand. BlackJackScoreHand ()> 21)

{

//We write in the original:

pot.DoPlaceBet ();

pot. HouseWins ();

showPot ();

mode = GameMode.PlayerBust;

}

this.Invalidate ();


}

}


Отметим, что метод BlackJackScoreHand каждый раз возвращает счёт «руки игрока» (playerHand). После этого метод Invalidate перерисовывает форму Form1, точнее, перерисовывает карты и обновляет счёт обоих игроков. Аналогично в меню maneMenu1 имеется команда «Себе», по которой банкомёт набирает карты себе (после игрока).

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 3: Программирование на Visual C# искусственного интеллекта (продолжение 2)

Подняться наверх