Java代写 | Java GUI Practice Project C: PayDay GUI

BlueJ代写,Java作业代写,本次要求使用BlueJ开发一个Java GUI窗体程序。Java程序的GUI的基本形式是单个窗口多个面板,这个Java GUI小游戏将可以支持两个player。

1. Specification

Build a GUI for a PayDay application. The domain or model tasks are described in Appendix A. The situations to be handled are listed in Appendix B.

The basic form of the GUI is a single window multiple panels. The general appearance and behaviour of the panels are described below; for more details about the system behaviour, see the task descriptions. As a general principle, your GUI should provide some form of feedback for every button press; the user should never have to guess whether the command succeeded or not. Assume that no typing errors are made; a user may enter an incorrect value such as a wrong session id, but that is not a typing error.

1.1    Main Window

The main window has two panels: the board panel & the control panel:

  • The board panel handles the player icons’ movement around the PayDay board – no changes are required for this panel.
  • The control panel has 2 panels: the roll panel & the boss panel:
  • The roll panel displays the jackpot amount and the dice rolls for the player and computer. The user clicks on the Play button to start a game.
  • The boss panel has 2 panels: the display panel & the system panel:
  • The display panel displays balances for the computer and player. The user clicks on the Change Player Name button and to change the player’s name. The system will display a separate window to allow the user to change a player’s name.
  • The system panel has 3 buttons, List Bills, Exit and Show. Exit closes the application, show calls for debugging purposes.

1.3    List Bill Window – HD task

The list of bills owed by each player are displayed in a separate window, including the amount and description.

The skeleton provides no code for this task. Changes will need to be made to the model for this task. This task is very difficult, do not attempt it until the base assignment has been completed.


2.    Implementation

Skeleton code for the system can be downloaded from UTSOnline. Use the MVC and Observer code patterns where appropriate. The GUI classes must be in a separate package from the model classes, as in the skeleton code.


3.   Appendix A: Domain task descriptions

Mini PayDay is a small simplified version of the board game PayDay. The board has 14 squares, 3 Chance squares (Sweepstakes, Lottery & Casino), 3 Mail squares, 4 Expense squares (Pay Rent, Fun Day, Buy Groceries & Pay School Fees), 2 Income Squares (Receive Dividend & Income Tax Rebate), a generic Square (Rest Day) and a PayDay square.

Here is the layout of the board:

There are 2 players; a manual player and the computer, each player starts with $1000 and rolls the dice moving from left to right, top to bottom.

Every time a player passes or lands on PayDay, they receive wages of $1000, pay any bills and pay interest on loans (at 10%). A player can take out loans in increments of $1000, if they do not have enough money.  A player can pay off loans in increments of $1000, if they have enough money.

When a Player lands on a Chance square (SweepStakes, Lottery & Casino), the Player rolls the dice:

SweepStakes – the player wins $100* the dice roll

Lottery – the player wins $20*the dice roll

Casino – this is a special type of Chance square – the player rolls the dice, if the dice roll is odd the player wins $500. If the dice roll is even, the player loses $500 (the amount is placed in the jackpot kitty).

When a player lands on a Mail square, the system randomly picks a MailCard;

There are 5 possible MailCards:

Bill – Land rates bill due $2500

Ad – Get 20% off Foxtel

Bill – Telephone bill due $1200

PostCard – Nanna is having fun in Greece

Bill – Electricity bill due $ 900

If the Player receives a Bill, the bill is held and needs to be paid on PayDay. Any other MailCard is considered junk mail and is discarded.

When a Player lands on an Expense Square (Pay Rent, Fun Day, Buy Groceries & Pay School Fees), the player must pay the expense amount immediately.

Pay Rent – the player pays $600

Fun Day – the player pays $200

Buy Groceries – the player pays $300

Pay School Fees – the player pays $500

The amount paid by the player is placed in the jackpot kitty.

When a player lands on an Income Square (Receive Dividend & Income Tax Rebate), the player receives the income amount.

Receive Dividend – the player receives $400

Income Tax Rebate – the player receives $200

When a player lands on Rest Day (the generic Square), no action is taken.

When a player lands on the PayDay square, the player receive wages of $1000, pays any bills accumulated in the pay period (the bills are then discarded) and pays interest on any loans.

If the player does not have enough money, they must take out a loan (in increments of $1000).

If a Player has enough money, they must payoff any loans (in increments of $1000).

The player then moves to the Start position (position 0).

The game ends after 2 rounds have been played.

The tasks are described below; in each task description, the success or normal case is described first, then any special or error cases.

1. Add Player

A user must enter a name for the manual player. The player balance, loan amount and the board position of the player are held by the system.

2. Play

The dice is rolled and the player moves the designated number of spaces to the new space. Any required action is executed; any penalty or bonus is applied to the player’s balance and/or the jackpot balance.


If the player rolls a 6, they win the amount of money accumulated in the jackpot.

The jackpot amount is reset to 0. Jackpot is not won if player rolls a 6 on a Chance roll.

4. List Bills – HD Task

From time to time, the players want to know what bills they will need to pay on PayDay, and what bills the other players need to pay.


Appendix B: Situations to handle

  1. Change Player Name.

The system shows label changes on Control panel & Display panel

  1. Play

Win Jackpot

Pass PayDay

Game Over

Correct balances

  1. List Bills

Correct order and layout

Please note: In this layout I used confirm.setPreferredSize(new Dimension(400, 100)); to set the size of JTextArea confirm, otherwise the text area will resize with the text displayed.



本网站支持淘宝 支付宝 微信支付  paypal等等交易。如果不放心可以用淘宝交易!

E-mail: [email protected]  微信:dmxyzl003 工作时间:全年无休-早上8点到凌晨3点