首页 > > 详细

代做INFO1112 A2: Trivia.NET 2025代写Python语言

项目预算:   开发周期:  发布时间:   要求地区:

INFO1112 A2: Trivia.NET

Computing 1B OS and Network Platforms

S2 2025

Due: Sunday the 26th October 2025, 11:59pm AEST

This assignment is worth 15% of your final result

Do you want to improve your understanding of networking? Or want to compete against your friends to see who knows the most INFO1112 content? Or are you too lazy to answer questions yourself and would prefer lightning fast, code-generated answers? Or do you want to just let a LLM take the wheel?

In Trivia.NET, you can do all of these while learning how networking, sockets and requests work in Python! Once you’ve written a functioning client and server, you can then play against your friends, or cheat with AI, if that’s what you prefer.

Important Information

Please read the following information before reading the remainder of the specifications!

As with any other assigment, this assignment has, a semi-substantial amount of self-learning. Don’t freak out! This is a good opportunity to learn something novel, not a way for us to intentionally make things harder for you!

You will have to learn about how to use the Ollama API, using requests, parsing mathematical equations, and more, even though these topics are not taught in the course’s lectures/tutorials. These topics will not necessarily be the core of the assignment (as networking is), but are still crucial parts.

We understood from Assignment 1 that, for some students, there were was a dearth of sufficient resources to properly comprehend the content, especially seeing how it would translate in Python. The teaching team has, and will, continue to make the effort to provide additional resources (see the Recommendations section), but to some extent you need to be prepared to try and discover things  yourselves. At first this might be challenging, but it is a very worthwhile process and a process you  really should accustom yourself with prior to getting into the industry, as learning new things—especially without extensive guidance—is not uncommon in the industry.

We have decided to go in this (self-learning) direction for two reasons:

1. Theoretical (and consequently boring) assignments are not uncommon in universities. We want to make an assignment that is enjoyable and fun for you even if at the cost of adding additional learning and complexity

2. We want you to learn relevant and practical skills that you can use professionally and in your personal projects

Note: As was the case in Assignment 1, any information in assumptions, marked by ‘Assume:’, will not be tested in the test cases, and you can safely assume. Anything that violates these assumptions will not be tested in the staff test cases.

Trivia.NET

Trivia.NET is a network-based, timed trivia game, like Kahoot, where multiple players compete against each other. The networking component consists of a client-server model, with the server generating/ sending questions and tracking scores of each player and clients sending the server answers to those questions.

Your implementation will consist of two main parts:

A server implementation (server.py): Hosts trivia games. Manages connected players,

generates trivia questions, checks the correctness of answers, calculates player scores and informs the players of the final standings when a game is finished

• A client implementation (client.py): Join a server to participate in a game of trivia. The client receives questions from the server, presents them to the player, and sends answers back to the server.

Three modes of interaction are supported:

1.  Manual (you): Input your answers manually

2. Automatic (auto): Answers questions using code

3. AI (ai): Answers questions using an LLM

The name of this assignment was inspired by C# and .NET related frameworks.

Formatting

Configuration files (for the server and client) and data sent between the server and client will use JSON.

JSON represents data with key-value pairs, just as Python dictionaries do. It is widely used for configuration files and API requests due to its intuitive nature, simplicity and support in many libraries.

The following points explain how to read and interpret the value placeholders in the JSON in this PDF:

•  : The type corresponds to a Python type

Examples:  means the value must be an integer (int) in Python, and  means the value must be a string (str) in Python

Assume: All strings are non-empty

•  : The postfix ? indicates that the value can either the type specified (type) or None Examples:  means that the value must be either an integer (int) or None.

•   | : This means the value can either be type1 or type2 Examples:  |  means the value can either be an int or a float

•  []: A (homogeneous) list of type type. In Python, this corresponds to the typehint list[type]

Examples: list[int] means a list of integers, for example,  [1, 2, 3, 4]

•  literal1 | literal2 | ... | literal n: The values can be any and only one of the literal values

Examples: If the placeholder is "hello" | "world", that means it can only be "hello" or "world", and cannot be anything else

Important: If ever, a JSON (string) value contains placeholder parentheses with a specific name of a config key in the server, you are to substitute that value in.

You will see this in examples of messages across the specifications.

To do this, use str.format with keywords arguments, as shown below:

message = "{a} + {b} = {c}"

values = {"a": 5, "b": 10, "c": 15}

result = message.format(**values)

print(result)

# Output:

# 5 + 10 = 15

# This is equivalent to

result = message.format(a=5, b=10, c=15)

print(result)

There are some exceptions to this rule, noted below:

• "question_word"

• "points_noun_singular"

• "points_noun_plural"

• Any value in "question_formats"

• Any keys whose values do not support formatting (i.e. not strings)

This means that the values for these keys cannot contain placeholder parentheses.




软件开发、广告设计客服
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 9951568
© 2021 www.rj363.com
软件定制开发网!