这是一篇关于完成规格表的assessment代写

 

Introduction

Aims

  • To adequately analyse the complexity of various operations / algorithms.
  • To be able to use readily available Stack, Queue, Set, and SortedList ADTs to solve problems efficiently.
  • To continue practising the implementation of correct, high quality and well-documented code.

Important

  • Much of this assessment assumes some knowledge of Object Oriented Programming basics, as would have been covered in FIT1045. If you are taking FIT2085 or are generally behind on this, slides are available in the Week 5/6 sections on moodle.
  • Use the names provided for internal and external methods, as we will use them in our testing harnesses.
  • Provide appropriate documentation for each file, class, function, and method you define or modify. More on this can be found in the general constraints.
  • For the entirety of the assessment, you may NOT use python inbuilt lists or the ArrayR class explicitly. This is of course unless a particular task says otherwise. The purpose of this assessment is to grade your ability to use the ADTs discussed in the unit, and so we don’t want you leaning too hard on arrays/lists.
  • For all constants described in this sheet, design your code in such a way that it is very easy to change these constants and still have the project work. For example,how hard would it be to change the maximum team size from 6 to 12? You should make it so that this is a one line change.
  • Tasks are really not separated by length or difficulty. Please read all tasks before deciding how your team should split the work.
  • Any mention of “Randomness” should use the random_gen.py file given to you.

Choosing a random number is done with RandomGen.randint, and checking something happens with a 30% chance is done with RandomGen.random_chance(0.3)

  • All methods mentioned in the spec, unless otherwise specified, require you to write 3 documented unit tests in the relevant file in the `tests` directory. These should have docstrings, be reasonable tests to have, and also reasonably different.
  • Methods which are marked as “user facing” should have checks to ensure that incorrect or invalid input for any arguments is handled with preconditions. For example, a function price_of_apples(num_apples) should check that num_apples is a number, and a non-negative one at that.Submission, Format, and Expectations

This assignment is a group assignment. Your group should complete the Group Work Agreement before commencing work on this assignment. Your group will need to divide the work and submit the assignment together. The assignment will require you to submit all Python files that are detailed in each task. The naming convention for each file is given in the tasks.

Once you have all the files completed, please zip them together and name the zip file in the following format:

<groupname>_assignment2.zip

For Example – A2_Group_100_assignment2.zip

And upload to both Gradescope and Moodle. Please do not include the .git or MACOSX folders in your submission, just make a new folder, and copy across your task’s python files.

General Constraints and Assumptions

-The assignment will provide you with liberties on how to code your solution. However,please, make sure to go through the assessment rubric to see how you will be graded and certain concepts that need to be covered in your solution.

-When a pre-condition is violated, the function should raise an Exception (in our case, a ValueError unless specified otherwise). Every argument that has a pre-condition should be validated to ensure it meets the pre-condition.

-Preconditions must be checked in abstract methods if possible.

-The docstring for each method should contain both the best- and worst-case complexity of the method. You are allowed to include a catchall in your class header (IE all functions, unless stated otherwise, have best/worst case complexity of O(1))

-Functions that require user input should be manually tested with some appropriate cases. This doesn’t need to be put anywhere as part of your submission but helps ensure correctness when it is marked.

-Please DO NOT modify any of the given methods in any of the ADT files. You may also not add any additional methods to the ADT unless a particular task states otherwise.

Background

We’ve heard that you want to be the very best

Like no one ever was

To get a HD is your real quest

To study is your cause

Will you read through the entire document

Making lots of notes

Teach yourself ADT concepts

And the power that they hold?Calling all Pokemon trainers! The adventure of your lifetime begins here. We challenge you

to an adventure across our sunny island to catch Pikachu and friends. Well, not really, but how cool would that be! We are tasked with developing a battle simulator for everyone to fight their favourite Pokemon and we need your help to code it all in Python! So, stay with us,read through the document carefully and help us design the best command line Pokemon battle simulator ever!

This game is for two players. It involves the creation of a team of different kinds of Pokemon in order to battle the team against another player until a victor is produced. There are various types of battle modes, and each player can only select up to 6 Pokemon in their team.

However, for your sanity, we have limited the types of Pokemon. These are discussed in detail below.

Pokemon Types and Stats

Note: All pokemon stats given in the assignment should always be constrained to integers (hence why floor division is often used). The only exception here is intermediate calculations,like when multiplying type effectiveness by status effectiveness (once using the result of this calculation for effective attack however, this result should again be constrained to an integer with int())

Before handling the pokemon stats, one thing that should be discussed is a Pokemon’s “effective attack”. In the Pokemon games, Pokemon have types, which determine how effective some moves are against others. In our case, the types of each pokemon (attacking and defending) determine the multiplier applied to the attacking stat. This is called the effective attack.