Lecture 18 — Exercises¶
Solutions to the problems below must be sent to Submitty for automatic scoring. A separate file must be submitted for each problem.
Starting from the
Point2d.pyfile you download from the Course Materials section of the Submitty Website, please do the following:Write a new
Point2dmethod calledscale()that takes as an input argument aPoint2dobject (self) and a numerical value (int or float) and multiples both thexandyattributes by this value.Write a new
Point2dmethod calleddominates()that two takes twoPoint2dobjects and returnsTrueif and only if the x coordinate of the first object is greater than that of the second object and the y coordinate of the first object is greater than that of the second object.The code to test these functions is commented out in the main code area. Please remove this commenting, test your code, and submit your resulting
Point2d.pyfile. Call itPoint2d_q1.py.
Copy your resulting file from the first question to a new file, perhaps called
Point2d_q2.py.Write and test the implementation of method
__str__()which returns a string created from the values of aPoint2dobject. For our purposes this is mostly used to create a string that can be printed. Make sure you have this working before you proceed to the other parts of this exercise because they depend on it.Write the implementation of the subtraction method
__sub__()for thePoint2dobject. Uncomment the code in the main area and test this in Wing IDE 101.Write the implementation of the method
__mul__()which is like thescale()function you wrote for part 1, but it creates a newPoint2dobject.Write the implementation of the method
__eq__()which returnsTrueif and only if the twoPoint2dobjects have exactly the samexandyvalues.
For each of these you should look at the commented out main code in the
Point2d.pyfile you were provided to see how these methods should be used. Uncomment this code, test your methods, and upload to Submitty when you are done.Open the file
pokemon.pyyou download from the Course Materials section of the Submitty Website. This file initially contains just the testing code. Write the definition for thePokemonclass with all necessary methods, so that all tests run successfully:The initializer which takes four input parameters: the object itself (
self), the name of the Pokemon (string), the board size (2-tuple of integers, corresponding to the row and column), and the initial position of the pokemon (also a 2-tuple of integers). If no initial position is specified when creating a Pokemon object, \((0, 0)\) should be implied.The function to move the pokemon to the next cell in one of the directions (“N”, “E”, “S”, or “W”). The pokemon should not go off the board.
The function to represent a
Pokemonobject as a string, e.g., ifpmonis aPokemonobject,str(pmon)would return something likeCelebi is at row 4, column 6..