Reputation: 4185
I have no experience with object oriented programming. I've program mostly in C so this tends to be a little confusing. Basically I just want to make sure I am doing it correctly. Also, is this a working example of inheritance?
Okay, so I have initialized a 20x20 grid world and set each element to None.
class World:
def __init__(self):
self.arr = [[None for x in range(20)] for y in range(20)]
Now I need to place an object into a specified element given the x,y coordinates. This is a method of the World class.
def add_attack_robot(self, team, x, y, direction):
self.arr[x][y] = AttackRobot() <---- **Is this correct?**
Here is the AttackRobot class:
class AttackRobot(Robot):
def __init__(self,team,x,y,direction):
Robot.__init__(self,team,x,y,direction)
Upvotes: 0
Views: 332
Reputation: 141888
Creating the list of lists seems sound. Try it yourself in an interpreter (this about the best advice a new Python programmer can take):
>>> [[None for x in range(20)] for y in range(20)]
[[None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None], [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]]
When you try to instantiate your AttackRobot
s, you'll see this:
TypeError: __init__() takes exactly 5 arguments (1 given)
Pass in valid values for team
, x
, y
, and direction
(self
is implicit) and you should be set!
E.g:
self.arr[x][y] = AttackRobot(team, x, y, direction)
Upvotes: 1