Developing a Java Swing GUI game "Klask"

Job ID: 33707782

Budget: $30 – $250 USD

The task is to implement a working two player game of Klask based on the advanced
GameArena classes provided for this project. In addition to drawing Balls and Rectangles, the latest version of the GameArena classes include support for Lines, Text, mouse input, additional key presses, layering of objects and arbitrary colours. This is available via Joe’s GitHub repository at https://github.com/finneyj/GameArena.
Your final Klask simulation should:
- Display a simple top down view of a Klask table, similar to that shown above.
- Allow the user to play a two-player game of Klask against another human player e.g.,
through keyboard input. There is no need for a computer opponent, although this
would be awesome.
- Allow players to move their gaming piece in a user friendly manner, but only within
their half of the board.
- Place the ball in an appropriate serving position at the start of the game (i.e., in a
serving corner for one of the players), and for each round, ensuring that the player
who just lost a point serves the ball from one of their corners.
- Display the movement of the yellow ball around the table accurately, including
simulating friction and ensuring the ball bounces off cushions and magnets.
- Display the movement of the magnets around the table accurately, including accurate movement towards the player game pieces when they are in range of the magnets.
- Implement the basic rules of the two-player Klask, with players scoring points for:
hitting the yellow ball into the other player’s goal, the other player gaining two or
more magnets on their game piece, and the other player moving their game piece into their own goal.
- Display the score each round, display the end of game result (i.e., winning player), and provide an option for users to play again.
You should be able to develop the game based on the rules provided above, however the rules of the game, including a video of Klask in action, can also be found here:
https://klask.com.au/#howtoplay

Some sample code to determine the direction and speed after two balls (e.g., the yellow ball and a magnet) collide is provided at the end of this Klask project specification (see Ball Deflection Algorithm). You are free to use/refactor this code into your project.