1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
import turtle # importer la bibio turtle
import time
import sys
from collections import deque
wn = turtle.Screen() # définir la fenetre de travail
wn.bgcolor("deep sky blue") # définir la couleur d'arrière-plan
wn.title("trouver une cible sur une carte")
wn.setup(1300,700) # configurer les dimensions de la fenêtre
#hideturtle(wn)
# une classe pour la carte
class carte(turtle.Turtle): # définir une classe pour la carte
def __init__(self):
turtle.Turtle.__init__(self)
self.shape("square") # la forme d'une unité d'obstacle
self.color("white") # colour of the turtle
self.penup() # soulevez le stylo pour qu'il ne laisse pas de trace
self.speed(0)
# la class pour la cible
class Green(turtle.Turtle):
def __init__(self):
turtle.Turtle.__init__(self)
self.shape("circle")
self.color("green")
self.penup()
self.speed(0)
class Blue(turtle.Turtle):
def __init__(self):
turtle.Turtle.__init__(self)
self.shape("square")
self.color("blue")
self.penup()
self.speed(0)
# this is the class for the yellow or turtle
class Red(turtle.Turtle):
def __init__(self):
turtle.Turtle.__init__(self)
self.shape("circle")
self.color("red")
self.penup()
self.speed(0)
class Yellow(turtle.Turtle):
def __init__(self):
turtle.Turtle.__init__(self)
self.shape("square")
self.color("yellow")
self.penup()
self.speed(0)
grid = [
"++++++++++++++++++++++++++++++++++++++++++++++++++++",
"+s +++++++++++++ ++++++++++ +",
"++++++++++ +++++++++++++ ++++++++++ +",
"++++++++++ +++++++++++++ ++++++++++ +",
"++++++++++ +++++++++++++ +",
"++++++++++ +++++++++++++ ++++++++++++++",
"++++++++++ ++++++++++++++",
"++++++++++ +++++++++++++++++++ ++++++++++++++",
"++++++++++ +++++++++++++++++++ ++++++++++++++",
"++++++++++ +++++++++++++++++++ ++++++++++++++",
"++++++++++ +++++++++++++++++++ ++++++++++++++",
"++++++++++ +++++++++++++++++++ ++++++++++++++",
"+ +++++++++++++++++++ +",
"+ +++++++++++++++++++ +",
"+ +++++++++++++++++++ +",
"+ ++++++++++++++++++++++++++++++++ +",
"+ ++++++++++++++++++++++++++++++++ +",
"+ ++++++++++++++++++++++++++++++++ +++++++++++ +",
"+ ++++++++++++++++++++++++++++++++ +++++++++++ +",
"+ ++++++++++++++++++++++ e+",
"+ ++++++++++++++++++++++ +",
"+ +++++++++++ +",
"+ +++++++++++ +",
"+ +",
"++++++++++++++++++++++++++++++++++++++++++++++++++++",
]
def setup_carte(grid): # définir une fonction appelée setup_carte
global start_x, start_y, end_x, end_y # les variables globales pour les emplacements de début et de fin
for y in range(len(grid)): # lire dans la carte ligne par ligne
for x in range(len(grid[y])): # lire chaque cellule dans la ligne
character = grid[y][x] # attribuer la variable "character" à l'emplacement x et y de la grille
screen_x = -588 + (x * 24) # déplacer vers l'emplacement x sur l'écran à -588
screen_y = 288 - (y * 24) # déplacer vers l'emplacement y de l'écran à partir de 288
if character == "+":
carte.goto(screen_x, screen_y) # déplacer le stylo à l'emplacement x et y
carte.stamp() # sauvgarder les obstacles sur la carte
walls.append((screen_x, screen_y)) # ajouter des coordonnées à la liste (tableaux) des murs
if character == " " or character == "e":
path.append((screen_x, screen_y)) # ajouter " " et e à la liste des chemins
if character == "e":
green.color("purple")
green.goto(screen_x, screen_y)
end_x, end_y = screen_x,screen_y # affecter des variables d'emplacements finaux à end_x et end_y
green.stamp()
green.color("green")
if character == "s":
start_x, start_y = screen_x, screen_y # affecter des variables d'emplacements de départ à start_x et start_y
red.goto(screen_x, screen_y)
def endProgram():
#wn.exitonclick()
sys.exit()
# setup classes
carte = carte()
red = Red()
#blue = Blue()
green = Green()
#yellow = Yellow()
# définir lists (tableaux)
walls = []
path = []
# main
setup_carte(grid)
time.sleep(10) |
Partager