Project On-line Quiz Game
Design and develop a simple client-server application implementing a simple Quiz game.
1. The users can connect to register to the Game Server to start a quiz game.
2. The server can set up a game in order to accept M players, to be decided at start-time from 1 to 4 players.
3. The client can have a textual interface or a web interface or it can be a java application. The communication between client and server can be implemented with any middleware technology of your choice (sockets, http, RMI, web services, etc..).
4. The game can run in practice mode, in friendly mode or in tournament mode;
5. In tournament mode, when the game starts the server send to all the clients a random question among N quizzes with the 5 possible answers that will be visualized to the users (only one is correct).
a. The first user sending the correct answer will get 1 point.
b. The winning user and the correct answer will be communicated to all the users, along with the current rank.
c. After 10 questions the game ends and the final rank is visualized: a congratulation message is sent to the winner and a consolation message is sent to the others.
6. In the friendly mode, when the game starts the server sends the same set of N questions to all users but the competition is not in real-time: each session with a user/client is managed independently from the others and when all the users have answered all the questions then the final ranking is shown to all
a. Use a timeout to conclude the quiz and print final results
7. In the practice mode the user will receive N questions one after another and there is no timeout and no competition with other users: the own final result will be sent to him after
8. Extend requirement 2 so that the game will start when a timeout will elapse, instead of waiting for M players: this should be configured at start-time via configuration file or command line.
9. Extend the client interface with a GUI or a Java Server Page
10. Manage the case when one client disconnects during the game: how will you manage client reconnection?
11. Consider the tournament mode: how to guarantee fair treatment to all users considering that network delays can penalize some users with respect to others?
For example user A always receives the questions 1 second before the other: how the server could take into account these delays in order to determine which user took actually less time to answer?
After the coding, You should write small report or document on three main sections :
a. Problem analysis, requirements specification;
b. Design and implementation of the proposed solution
c. Definition of test-cases and validation of requirements
And sendall the code (source and compiled)