昨天做了个面试题:
class Car():
def __init__(self,x = 0, y = 0 , d="N"):
# x 横坐标
# y 纵坐标
# d 方向
self.x = x
self.y = y
self.d = d
self.rotary_table = ["N","E","S","W"]
self.index = self.rotary_table.index(self.d)
print("self.index ->",self.index)
print("init",self.x,self.y,self.d)
def left(self):
print("run left")
self.index = self.index - 1
if self.index < 0 :
self.index = self.index + 4
if self.index > 3 :
self.index = self.index - 4
self.d = self.rotary_table[self.index]
def right(self):
print("run right")
self.index = self.index + 1
if self.index < 0 :
self.index = self.index + 4
if self.index > 3 :
self.index = self.index - 4
self.d = self.rotary_table[self.index]
def forward(self):
print("run forward")
if self.index == 0:
self.y = self.y + 1
elif self.index == 1:
self.x = self.x + 1
elif self.index == 2:
self.y = self.y - 1
elif self.index == 3:
self.x = self.x - 1
pass
def run(self,line):
for cmd in line:
if cmd == "L":
self.left()
elif cmd == "R":
self.right()
elif cmd == "M":
self.forward()
print(self.x,self.y,self.d)
print("--------------------------")
print(self.x,self.y,self.d)
if __name__ == "__main__":
car = Car(x=3,y=3,d="E")
car.run("MMRMMRMRRM")