Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
2113 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  aide pour projet BAC : faire un circuit avec turtle

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide pour projet BAC : faire un circuit avec turtle

n°2256083
eyhe
Posté le 17-04-2015 à 19:18:16  profilanswer
 

Bonjour !
Je suis actuellement en terminale scientifique et c'est ma première année de cour d'ISN ... on est une promo assez importante et le prof est totalement débordé !
Du coup je suis perdue pour mon projet de fin d'année ...
 
Le but étant de créer un circuit qui fonctionnerait avec le module turtle
voila ce que j'ai fait avec ce module :  

 

Code :
  1. from turtle import *
  2. import time
  3. #~ debut = time.time() #Temps
  4. #~ S=0
  5. #==============image de fond===============
  6. import tkinter
  7. #~ import PIL.Image, PIL.ImageTk  #Permet d'ouvrir une image en jpg/png ...
  8. #~ img_PIL = PIL.Image.open("dessin.png" )
  9. mafen = Screen()
  10. marta = RawTurtle(mafen)
  11. canevas = getcanvas()
  12. #~ imgTK = PIL.ImageTk.PhotoImage(img_PIL)
  13. #~ canevas.create_image(0,0, image=imgTK,tags="carte" )
  14. #~ jaune = PhotoImage(file = "j2.gif" ) #si l'image avait été en gif ...
  15. banniere=canevas.create_rectangle(-320,-320,320,-250,outline="black",fill="grey",tags="banniere" )
  16. #~ canevas.itemconfig(banniere,text="Temps : " + str(S) #S sera la variable qui gere le temps
  17. #==============Sortie de Piste===============
  18. données_tk = [(78, 88), (84, 78), (91, 68), (99, 59), (108, 51), (119, 45), (129, 40), (141, 36), (153, 34), (165, 33), (177, 34), (189, 36), (200, 40), (211, 44), (221, 51), (231, 58), (240, 66), (246, 75), (253, 84), (259, 93), (265, 102), (272, 110), (280, 118), (289, 124), (299, 128), (310, 130), (322, 130), (333, 127), (343, 123), (353, 118), (363, 111), (372, 104), (381, 97), (389, 90), (399, 83), (408, 77), (418, 72), (429, 68), (441, 67), (452, 67), (463, 70), (473, 77), (481, 85), (487, 96), (490, 107), (491, 119), (489, 131), (486, 142), (480, 152), (473, 162), (465, 170), (456, 178), (446, 185), (435, 190), (424, 195), (413, 199), (402, 203), (379, 211), (368, 214), (357, 219), (346, 223), (335, 228), (325, 234), (315, 241), (306, 249), (298, 258), (292, 268), (287, 278), (284, 290), (283, 302), (285, 314), (289, 325), (297, 337), (305, 344), (314, 349), (328, 354), (338, 356), (348, 356), (358, 355), (368, 353), (386, 346), (404, 336), (413, 331), (421, 325), (429, 318), (444, 305), (460, 292), (468, 286), (476, 280), (484, 274), (493, 269), (511, 260), (530, 255), (540, 254), (550, 254), (560, 256), (570, 259), (583, 265), (594, 275), (603, 286), (609, 299), (613, 312), (615, 327), (614, 341), (611, 355), (606, 368), (598, 381), (589, 392), (579, 402), (568, 411), (555, 418), (542, 424), (529, 429), (513, 433), (496, 436), (480, 437), (463, 437), (447, 436), (430, 435), (414, 432), (397, 430), (364, 425), (348, 423), (331, 421), (315, 420), (298, 419), (282, 420), (265, 421), (249, 425), (232, 429), (216, 434), (199, 439), (183, 444), (167, 449), (150, 453), (133, 456), (116, 457), (99, 457), (82, 454), (66, 448), (51, 440), (38, 429), (28, 415), (21, 399), (19, 383), (21, 366), (27, 351), (35, 336), (47, 324), (60, 314), (74, 305), (90, 299), (109, 293), (128, 289), (147, 284), (165, 276), (177, 269), (188, 259), (196, 247), (200, 233), (200, 223), (197, 210), (189, 199), (179, 191), (168, 185), (151, 179), (126, 174), (109, 169), (93, 161), (84, 152), (77, 142), (72, 127), (72, 111), (75, 96),(78, 88)]
  19. données = []
  20. x0 = 640//2
  21. y0 = 480//2
  22. for d in données_tk :
  23. données = données + [(d[0]-x0, y0-d[1])]
  24. def distance(A,B) : # carré de la distance
  25. D = (A[0]-B[0])**2+(A[1]-B[1])**2
  26. return D
  27. def hors_circuit(marge) :
  28. resultat = True  # à priori on est hors circuit
  29. P = marta.position()
  30. for D in données :
  31.  if distance(P,D) < marge :
  32.   resultat = False # matra est près d'un point de contrôle, donc n'est pas hors circuit
  33. return resultat
  34. marta.goto( données[0] ) # place marta sur un point du circuit
  35. #==============Tortue===============
  36. marta.shape("turtle" )
  37. def gauche() :
  38. marta.left(5)
  39. mafen.delay(10)
  40. def droite() :
  41. marta.right(5)
  42. mafen.delay(10)
  43. def ralentis() :
  44. global pas
  45. if pas > 0 : pas  = pas-0.5
  46. def accelere() :
  47. global pas
  48. if pas < 8 : pas  = pas+0.5
  49. pas = 1
  50. def demarre() :
  51. global actif
  52. actif = True
  53. while actif :
  54.  print ("c'est bon" )  #marta est bien dans le circuit
  55.  mafen.delay(50)
  56.  marta.forward(pas)
  57.  print(marta.position())
  58. def stop() :
  59. global actif
  60. actif = False
  61. print("arret demandé" )
  62. if hors_circuit(10) :  #marta est hors circuit : stop --> perdu
  63. actif = False
  64. print("perdu" )
  65. def quitte() :
  66. mafen.bye()
  67. mafen.onkey(gauche, "Left" )
  68. mafen.onkey(droite, "Right" )
  69. mafen.onkey(ralentis, "Down" )
  70. mafen.onkey(accelere, "Up" )
  71. mafen.onkey(demarre, "Return" )
  72. mafen.onkey(stop, "Escape" )
  73. mafen.onkey(quitte, "Q" )
  74. mafen.onkey(quitte, "q" )
  75. #~ fin = time.time()
  76. #~ print ("temps d'exécution : ",round (fin-debut,0),"s" )
  77. mafen.listen()
  78. mafen.mainloop()


 
 
 
J'en suis la ! le problème c'est que je n'arrive pas a programmer le fait que lorsque la tortue s'éloigne trop du circuit on ait perdu ....
(j'aurais aussi voulu mettre un chrono qui s'arrête quand on perd ou qu'on arrive au bout du circuit : d'où le bandeau... mais bon il faudrait déjà qu'il fonctionne correctement)
 
Bref voila si quelqu'un a la patience de m'aider un peu ça serait sympa :)


Message édité par eyhe le 06-05-2015 à 15:34:01
mood
Publicité
Posté le 17-04-2015 à 19:18:16  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  aide pour projet BAC : faire un circuit avec turtle

 

Sujets relatifs
Aide Fichier.bat info Regroupage info fichier texteAide pour créer un puzzle
aide pour un travail en bashBesoin d'aide Algorithmes VBA
Besoin d'aide en programmation c++[présentation projet] JePolitique, site de débats, votre avis?
aide pour mon boulotprojet Conway's Game of Life en langage C
[SQL] Aide requête avec enregistrement facultatifAide sur Javascript pour un pdf intéractif
Plus de sujets relatifs à : aide pour projet BAC : faire un circuit avec turtle


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR