想象一下BlackJack游戏… 我创建了一个方法,通过简单的计算来决定电脑是否应该抽牌,并且硬编码了规则。我希望使其更加“智能化”,从而使游戏对于创造者(我)来说更加不可预测。
我可以在这里添加什么呢?如何让我的庄家在不硬编码太多规则的情况下进行抽牌呢?
// 根据玩家的手牌总值计算电脑是否应该抽牌。// 此外,如果玩家达到了BLACKJACK,电脑可能会承担更高的风险。private static Deck dealerDraw(Deck deck, Hand player, Hand player2, Hand dealer){ if(player.getHandTotal() <= BLACKJACK) { // 庄家采取预防措施,只有在手牌总值小于或等于15时才抽牌。 while(dealer.getHandTotal() <= 15 && (dealer.getHandTotal() <= player.getHandTotal() || dealer.getHandTotal() <= player2.getHandTotal())) deck = drawFromDeck(deck, dealer); // 玩家达到了BLACKJACK! // 赢的几率很小或没有, // 庄家冒险,即使总值高也继续抽牌。 if (player.getHandTotal() == BLACKJACK || player2.getHandTotal() == BLACKJACK) while(dealer.getHandTotal() < BLACKJACK && dealer.getHandTotal() != BLACKJACK) deck = drawFromDeck(deck, dealer); } // end if() return deck;} // dealerDraw()
回答:
在你花费大量时间编写Blackjack庄家AI之前,你可能会考虑到,通常情况下,庄家并不能做出任何选择,因为统计上最佳的玩法并不太依赖于玩家的行动。
你可能应该选择一个更有趣的游戏来编写真正的AI。