CAN201 In Class Test 1 Thursday Session

CAN201 In Class Test 1 Thursday Session 2

Multiplayer Number Guessing Game (UDP Sockets)

Objective This in class test is required to use Python for socket programming. You will create a multiplayer“number guessing” game using UDP sockets programming, with one server and multiple clients(two clients for testing).Task Description You need to implement two simple programs: a server and a client. The server manages the gamelogic, while the clients communicate with the server to participate in the game.Game Rules

Server Behavior

  1. Initialization: The server listens/waits on a specified IP and port.
  2. Client Connection:o When a client connects, the server asks for the client’s name.o After receiving the name, the client is marked as "ready".
  1. Game Start:o The game starts when all connected clients are "ready".1o The server generates a random number (e.g., 1-100).Gameplay:o The server prompts each client in turn to guess the number.o The server checks the guess:
  • If correct, the server announces the winner to all clients and ends the game.
  • If incorrect, the server informs all clients whether the guess is too high ortoo low, and then prompts the next client.o Next turn order: the player who guesses closest gets to guess first in the next turn.
  1. Game End: The game ends when a client guesses correctly. (To make it simpler, no restartis required. That means we only test once.)Client Behavior
  1. Connect to Server: Clients connect to the server using its IP and port of the server.
  2. Submit Name: Clients send their name when prompted by the server.
  3. Gameplay:o Clients wait for their turn to guess. When prompted, the client sends a guess to the server.o The client receives feedback from the server about their guess.
  1. Game End: Clients are notified when the game ends. (To make it simpler, no restart is

required. That means we only test once.)1When 代 写CAN201 In Class Test 1 Thursday Session we test your code, we will start two clients (two clients code should let the server know their

oining) first, and then enter client’s name one by one.Implementation Requirements

  • Language: Python 3.x
  • Sockets: Use socket module, UDP protocol.
  • Error Handling: Implement basic error handling for invalid inputs.Program Execution
  1. Server Execution (in terminal):python server.py --ip <server_ip> --port <port>Example:

python server.py --ip 192.168.0.100 --port 42345

  1. Client Execution (in terminal):python client.py --ip <server_ip> --port <port>

Example:python client.py --ip 192.168.0.100 --port 42345

Submission

Package server.py and client.py into a zip file and submit it to Learningmall’s submission link.

Sample Interaction

Server Output

Server started on 192.168.0.100:42345

Client connected: (192.168.0.101, 54321)

Client connected: (192.168.0.102, 54322)

Received name: Alice

Received name: Bob

All clients are ready. Starting the game.

Random number generated: 42

Prompting Alice to guess.

Received guess 30 from Alice. Too low.

Prompting Bob to guess.

Received guess 50 from Bob. Too high.

Prompting Bob to guess.

Received guess 42 from Bob. Bob wins!

Client Output (Alice)

Connected to server at 192.168.0.100:42345

Enter your name: Alice

Waiting for other players...

Game started!

Your turn to guess.

Enter your guess: 30

Your guess is too low.

Waiting for your turn...

Bob guessed 50. The guess is too high.Waiting for your turn...

Bob guessed 42 and won the game!

Client Output (Bob)

Connected to server at 192.168.0.100:42345

Enter your name: Bob

aiting for other players...

Game started!

Waiting for your turn...Alice guessed 30. The guess is too low.Your turn to guess.

Enter your guess: 50

Your guess is too high.

Your turn to guess.

nter your guess: 42

Congratulations! You guessed the number!

Grading Criteria (Total: 5 points)

  1. Functionality (2 points)o 2 points: Correct implementation of game logic, including generating a random number,prompting clients to guess in turn, evaluating the guess (higher/lower), anbroadcastingresults to all clients.o 1 point: Basic communication between the client and server is established, includingclient connection and name registration.o 0 point: No submission or incorrect submission.

Code Quality and Standards (1 point) o 1 point: Code is well-structured, with appropriate comments, clear variable naming,and logical organization.

o 0.5 points: The submitted program has no major syntax errors and can run correctly.

o 0 point: No submission or incorrect submission.Timely Submission (2 point)

o 2 points: Complete submission of server.py and client.py files during the lab.

o 1 point: Complete submission of server.py and client.py files within 24 hours.

o 0 points: Incomplete or late submission or missing any file.

posted @ 2024-10-25 12:27  hellyou  阅读(3)  评论(0编辑  收藏  举报