AI Algorithm Design: Card Game

I am currently working on the implementation of the Spanish card game Briscas or Briscola, http://en.wikipedia.org/wiki/Briscola

In a nutshell, this is a card game in which two teams of two players play against each other (they cannot see each other with their hands, not even team members), only at the beginning of the card are shuffled, then three cards are dealt to each player. Each clockwise rolls one card to try and win this move. Anyone who ever wins turns into points. Then, still clockwise, the player who won the last round draws a card from the top of the deck and the player next to his / her left and so on. You will then continue the rounds until the deck is empty. Each team wins more points.

More details:

Deck Size: 40
Players: 4 (2 teams out of 2)
Cards have a certain meaning. (from 0 to 11)

Question

I know that direct MiniMax will be expensive. What algorithms are commonly used for such card games? Any literature you may indicate will also be helpful.

thanks

+4
source share
1 answer

It depends on how ambitious you want to get, but first you need a fast engine to simulate the game.

Then you need a fast and possibly simple, model player.

This model player will not have time to calculate forward. He can only respond to a predetermined state. So, your first step is to build a fairly good state of the game. The state of the game should include your hand and some statistics about which cards were discarded, and possibly how the players played their hands.

Then you create a player model that acts on the state. Or

A) write one by one, playing in accordance with your heuristic. But remember - there are no heavy calculations yet!

C) write a common player, but do not leave the constants and cutoff values. Use your simulation engine and tournament-specific genetic algorithms to develop good parameters for your values. For bonus points, develop your players in teams of two so that they complement each other well.

C) use even more AI and let the genetic programming system (there are several mature ones. Find one that can do tournaments. You can even implement it yourself, but do not get carried away :) write the entire player for you, using your state as an input.

Next step:

Either you already have a great player and you can consider yourself ready, or want to improve it. If you want to do it better, you're in luck!

Use the Monte Carlo simulation to play a large number of hands, each of your options in a specific situation (there are always three options, if I understand correctly). Let your model player make decisions every time you have a choice, and let your Monte Carlo simulation be randomly shuffled between each time you play a simulation.

You should now have a great card player!

+1
source

All Articles