Artificial Intelligence - University of Connecticut

Download Report

Transcript Artificial Intelligence - University of Connecticut

Texas Hold’em Poker
Simulation Project
Organized by M^JIK Game Developers
Members Include:
Monarch
^
James
Ikhan
Kwang
Graham
Devin
Task Division
•
There are 4 Major Divisions within this
project.
1. Graphical\User Interface
•
Monarch, Ikhan and James
2. Artificial Intelligence
•
Kwang and Devin
3. Networking
•
Graham
4. Integration
•
All of us, but the go-to man will be Ikhon
Artificial Intelligence:
The Real World Premise
Kwang Kim
What is Texas Hold’em Poker?
•
•
•
•
Texas Hold’em is a form of poker where all
players get two hole cards, which only the
player knows.
All the players then use up to 5 community
cards to make their best five card hand.
The player with the best hand wins the pot.
We will now go over the rules of how this
game works.
The Rules of the Game
•
•
•
•
•
•
The two players to the left of the dealer post a predetermined
forced bet which are called the blinds. Antes may also be used
but is optional.
The dealer shuffles a deck of 52 cards.
Each player is then dealt two cards face down, which are called
the hole cards.
A round of betting begins with the player to the left of the person
who posted the blind. In limit poker, the amount that a player can
bet or raise is fixed.
After this first betting round ends, the dealer discards a card from
the top of the deck, and then puts three cards face up on the
table. These cards are called the flop. The flop is communal
cards that any player can use in combination with their hole cards
to form a poker hand.
Once the flop is dealt, there is a round of betting starting with the
player to the immediate left of the dealer.
The Rules of the Game (Cont’d)
•
•
•
•
•
After the betting is over, another card is burnt by the dealer and
then the dealer puts one more card on the table. This card is
called the turn. Players use this fourth card to form a five card
poker hand.
Another round of betting happens just like after the flop came out.
However, this time the size of the fixed bet/raise is doubled.
Once the betting round is finished, the dealer burns another card
and places a final card face up on the table. This last card is
called the river. Players still in the pot can now use any five of the
cards on the table with their hole cards if they wish, to form the
best five card poker hand.
There is one final round of betting, with the size of the bet is the
same as after the turn card came out.
Once the betting is concluded, remaining players in the game
reveal their hands, by flipping up their hole cards. The player to
the left of the last player to call is the first one to flip up their hand.
This is called the showdown. The player with the best hand wins
the pot.
Mechanics of Each Hand
• This game consists of simple rules that are
followed during each round of the game.
• We will use these rules and implement
them into the program.
• One of the most important aspects in
understand this game is understanding the
mechanics of each hand and how they
rank.
Hand Ranking
Royal Flush - An Ace-High straight of one suit.
Straight Flush - A straight of entirely one suit.
Four-of-a-Kind (Quads) - Four cards of the same rank.
Full House (Full Boat, Boat) - Three-of-a-kind and a pair. The example
below would be called "Queens over Aces" or "Queens full of Aces".
Flush - Five cards of the same suit.
Hand Ranking (Cont’d)
Straight (Run) - Five cards of sequential rank. Note that in hold 'em, Aces
can be high or low.
Three-of-a-Kind (Trips, Set) - Three cards of the same rank.
Two Pair - Two cards of the same rank and another two cards of the same
rank. The example below would be called "Jacks and Twos".
One Pair - Two cards of the same rank.
High Card - When you don't have any of the above, your highest card
determines your hand. The example below would be "King High" or "High
card King".
Implementation and Goals of
Artificial Intelligence
Devin Gaines
Implementation and Goals of AI
• Simply, we’re taking real-world poker
constraints and forming a rule-based
gaming system
• This will include various parts of the
program such as:
– Users
– Possible Hands
– Statistical Odds of Winning
– Randomization
The Explanation of our Goal
•
•
Our goal is to make the computer play the most profitable game
possible.
Theoretically, this seems simple. There are at maximum three
options at every given point.
– A player can fold, check/call, bet/raise.
•
•
Hypothetically, we can just make the computer compute the most
profitable play in any given situation, then execute it. However, this
is wrong.
Poker is a game of incomplete information, which is because each
player doesn’t know any of the other players hole cards. Hence, a
player can only use information such as:
1. The strength of his/her own hand.
2. What he thinks other players have based upon their actions
(betting/raising etc..).
3. The communal cards on the board.
•
Our AI will only concentrate on instances (1), (3), since it’s
theoretically impossible to make the computer do (2).
Implementation of AI
Using C\C++
• Program platform that will be used is Visual
Studio C++
• Fail-safe algorithms will be used, meaning if
errors occur, we will make an attempt to
prompted the user with the least harm to the
running of the program.
• Also, along with character interaction, we’ll make
it possible to adjust statistical likelihood based
on the amount of hands played and won by each
player.
– So for example, you have Jared and Jane playing. They play 10 hands and Jane
is down half the money she started with. The chances for her to bet aggressively
would be lower than when she would if she had have started.
User Interactivity
• The amount of players needed for this game can
be 2-10 pending on users choice.
• The way users will be able to interact through
the menu is the point-click method.
• User will have a choice in what type of player
they would like to go against. There will be
certain pre-made character archetypes that will
presented.
– Examples include someone who is aggressive, meek,
logical, etc.
Player Interactivity
• This program will possibly have interaction
between characters at the table.
– Confidence Meter – Users will be able to input how
confidence they are in a hand. This confidence rating
mixed with the outcome of winning a game will
provide a likelihood of whether the computer will fold
or not.
– Bluff – A complex concept, but this could also
increase the likelihood of the computer simulation
folding or decreasing a bet on a given hand.
Networking
Graham Gimbert
Premise of Networking
•Necessary for multiplayer
•Simple design (User Friendly)
•Three main capabilities
–Create server process
–Join server process
–Chat functionality
Multiplayer
-More players = More screens
-Multiplayer requires more computers
-Otherwise, cheating is too easy
-Allows for chat functionality between
players
Design
• Simple, clean interface
• Two options
– Create Server
– Join Server
• Will also consist of Buddy-list type
functionality
• In-game chat is a simple chat window, with
“/” command functionality
• Out of game chat will be performed in
individual windows
Create Server
- Creates a single player game
- Variable number of AI players from the
start
- If a player joins, and the table is full,
remaining AI players will leave until the
table is full of human players
Join Server
- Allows a user to join a game in progress
- Cannot join a game that is full of human
players
- Otherwise, anyone can join any server
process type game at anytime
User Interface/Graphics
James Cefaratti/Monarch Shah/
Ikhan McClarty
Plans
• Possible title menu at the start with some
settings and a way to get the game going.
– Will be use software like OpenGl or Allegro
(We’re debating on using 3D graphics
depending on the difficulty)
• Making cards in 3D doesn’t seem very
hard since they are just rectangles.
Graphical Mechanics
• There would be blinds that would switch
back and forth between the computer and
user (small and large blind).
• This could be indicated with a token.
• The circles shouldn’t be too hard to model
in OpenGL or Allegro.
Graphical Mechanics (Cont’d)
• The flop, turn, and river will appear in the
open on the table.
• The players cards will be setup almost like
on television.
• In certain cases the opponents cards will
appear on the left (all in, showing a hand
at the end if the User/AI doesn’t fold)
Hand Statistics
• At the end of each hand, we’ll show a
quick summary of the hand that offers
some statistics to help the player out.
Main Screen Of Poker Software:
Main Screen will have three option:
1.) Help – will explain all the rules
2.) Demo: will have sample demonstration of Holdem’ Poker
3.) Play Poker: will take you to next step & so you can go ahead &
start playing poker
By Clicking on Play Poker Option you will be taken to registration Window:
Two Option
1.) Sign – In
User Name, Password, etc..
2.) Not A User Sign – Up
Enter Name & Password
After Registering You will Be taken To Window which has Two
option of Table Type:
1.) Single Player Table:
Play against Computer to improve your skill
2.) Multi player Table:
Play against computer or your friends
Three Kind of Different Poker games we’ll be focusing on:
•
Limit Texas Hold'em (there is a specified betting limit in
each game and on each round of betting)
•
Pot Limit Texas Hold'em (a player can bet what is in the
pot)
•
No Limit Texas Hold'em (a player can bet all of their chips
at any time)
Table Will Look Something Like This
Play money &
Player’s Name
Cards
Every Table:
Ten Sits
By Clicking on “SIT” button you’ll be able to sit down and play
Each Sit will have Player’s Name and Amount of Play Money he/she
has.
Menu On the Table: Different
You want to Sit out a Hand
Exit
Go to the Main Lobby
Action By every Player During the Hand
For Example:
During a game – Swift55 folds
osho33 folds
QuixoticX folds
SFred Calls $ etc..
Blind Menu
1.) Post Big Blind
2.) Post Small Blind
3.) Sit Out
4.) Buy a Button
5.) Wait For Big Blind
•
Dealer Button
•
Player's Card
& Stack Of Chips
Different Kind Of Card Design
Player’s Hand History
Notepad if someone wants to take notes
Three Betting Rounds:
1.) Before The Flop
2.) Before The Turn
3.) Before the River
After the River there is a Showdown
Tools That Will Be Used
• Photoshop CS2
– In House Software
– Experience using Photoshop
– Use of layers and other advanced editing
tools
Questions & Answers
?/