|
@@ -0,0 +1,68 @@ |
|
|
|
|
|
import turtle |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Robot: |
|
|
|
|
|
def __init__(self): |
|
|
|
|
|
self.direction = "nord" |
|
|
|
|
|
self.x = 0 |
|
|
|
|
|
self.y = 0 |
|
|
|
|
|
|
|
|
|
|
|
def avance(self): |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
def tourne_gauche(self): |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
def tourne_droite(self): |
|
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Simulation: |
|
|
|
|
|
def __init__(self): |
|
|
|
|
|
self.robot = Robot() |
|
|
|
|
|
|
|
|
|
|
|
def démarre(self): |
|
|
|
|
|
turtle.goto(0, 0) |
|
|
|
|
|
turtle.setheading(90) |
|
|
|
|
|
turtle.pendown() |
|
|
|
|
|
|
|
|
|
|
|
turtle.listen() |
|
|
|
|
|
|
|
|
|
|
|
self.connecte_touches() |
|
|
|
|
|
turtle.mainloop() |
|
|
|
|
|
|
|
|
|
|
|
def connecte_touches(self): |
|
|
|
|
|
turtle.onkey(self.avance_robot, "Up") |
|
|
|
|
|
turtle.onkey(self.tourne_robot_gauche, "Left") |
|
|
|
|
|
turtle.onkey(self.tourne_robot_droite, "Right") |
|
|
|
|
|
turtle.onkey(self.quitte, "q") |
|
|
|
|
|
|
|
|
|
|
|
def quitte(self): |
|
|
|
|
|
turtle.bye() |
|
|
|
|
|
|
|
|
|
|
|
def avance_robot(self): |
|
|
|
|
|
self.robot.avance() |
|
|
|
|
|
self.affiche_robot() |
|
|
|
|
|
|
|
|
|
|
|
def tourne_robot_droite(self): |
|
|
|
|
|
self.robot.tourne_droite() |
|
|
|
|
|
self.affiche_robot() |
|
|
|
|
|
|
|
|
|
|
|
def tourne_robot_gauche(self): |
|
|
|
|
|
self.robot.tourne_gauche() |
|
|
|
|
|
self.affiche_robot() |
|
|
|
|
|
|
|
|
|
|
|
def affiche_robot(self): |
|
|
|
|
|
turtle.goto(self.robot.x * 10, self.robot.y * 10) |
|
|
|
|
|
heading = {"nord": 90, "est": 0, "sud": 270, "ouest": 180}[self.robot.direction] |
|
|
|
|
|
turtle.setheading(heading) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
|
|
|
|
simulation = Simulation() |
|
|
|
|
|
simulation.démarre() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
main() |