Casino
Blackjack (Group 53)
User Interface
Version 1.0
User Interface
Casino Blackjack verison 1.01 can be broken down into four basic screens/interfaces:
- Initial login interface - (The first
screen the user sees)
- Create a new virtual player interface - (A
new user must create a virtual player before he can log in)
- Virtual casino environment interface - (Seen
by the user after he logs in successfully as a virtual player)
- Gameplay interface - (Allows a player
to play at a table. The user's gameplay options change dynamically)
A rough draft and explanation of these interfaces is shown below.
1.) Initial
login interface:

- This is the first screen the user sees.
- He/she can "login" (if they've already created
their own virtual player), or "create a new virtual player".
- The panel on the right hand side should be occupied with decorative graphics.

2.) Create
New Virtual Player interface:

- This screen is quite self explanatory.
- If a user enters and submits a player ID which already exists, or his password
does not meet length requirements (between five and ten characters), the appropriate
error message(s) will appear in red, just below the submit button. The user
can then try again.
- Otherwise - if the user successfully creates a new virtual player -
he is automatically loged into the virtual casino environment.

3.) Virtual
Casino interface:

- In version 1.01 there is really only one real option - "join
a table automatically".
- In later versions, it would be nice to give the player some choice as
to which table he joins.
- "Learn blackjack rules" will let the user view
the complete rules.
- Notice that three other button exists, but will be disabled.

4.1) Gameplay
interface - not user's turn - user just joined table:

- Once the server has assigned a virtual player to a table, the user sees
the gameplay screen.
- When this happens, if the round is already underway (and it probably
is), the user will have to sit out the first round - i.e. he will occupy
the box, but will have 0 hands and a bet of $0
- When it is not the players turn he's only options are to "leave
table" or to chat.
- The Chat feature is used by typing into the text box in
the bottom panel - once the user hits enter, everyone at the table can see
your message.
- The right-hand side panel will show who's playing at your table and allow
you to send a particular player a private message (once you've selected their
name on the list).
- In later verisons, this panel may also show the user players at other
tables. Such a feat would be quite ambitious.
4.2) Gameplay interface - collect
bets phase:

- Every round, except when the user first joins the table, the user
must bet.
- His game options are:
- add money to his bet (by clicking the chip buttons) - until his bet
reaches the maximum bet, or his bankroll becomes $0.
- reset the bet back to the minimum bet (for that table).
- submit his bet
- Once the user has submit his bet these options disappear. Alternatively;
when the timer runs out (shown as countdown), whatever bet he has will be
submitted automatically.
- Since the interface only lets the user enter a bet between the min &
max bets for that table, a user must play every round.
- If he/she needs a toilet break etc. he should leave the table - or risk
losing money.
- In version 1.01, the collect bets phase lasts 10 seconds; until the timer
hits 0.
- In later version, the server should allow the game to start sooner if
all players have bet.
- Waiting 10 each round for betting is particularly annoying if you're
the only player at the table.
4.3) Gameplay interface - user's
turn:

- When it's the user's turn, he is presented with a set of options. Depending
on the values of his cards and the dealer's cards, these options may include
a combination of:
- hit,
- stay,
- split,
- double,
- insurance.
- In the example above the player can either "hit"
or "stay".
- All other options (i.e. buttons) will be disabled and
made invisible.
- The user will keep taking turns until he decides to stay (on his last hand),
or goes bust (on his last hand).
- Note that, if a player splits, he will have two hands, and plays one
hand after the other.
- If the user fails to make a decision before a timer runs out (and is therefore
delaying the game for other players), the server will make him stay, and then
move onto the next player.
- In version 1.01, this timer will be invisible to the user.

--4.4) Illustration of JPanel Layout:

- This image illustrates the use of three seperate JPanels in the single JFrame.
- The whole application - all the major interfaces (intial login screen, virtual
casino screen etc.) - should all appear within the same same window (JFrame)
and be comprised of three panels in this same configuration.
- This master frame should be designed as 800x600 pixels in size
(to suit the lowest screen resolution).
- A small seperate window should be used for any popup messages.
