Projet Python
Bonjour, je recherches de l'aide pour un projet sur Python :
Mon but actuel est de faire tourner un rectangle sur lui même (inversé la longueur et la largeur) et pouvoir ainsi le faire se déplacé de cette façon. Mon programme actuel est celui-ci :
# -- coding: cp1252 --
from Tkinter import *
#Coordonées rectangle
#Fonction clavier
def clavier(event):
global coords
touche = event.keysym
if touche == "Up":
coords = (coords[0], coords[1] - 10)
elif touche == "Down":
coords = (coords[0], coords[1] + 10)
elif touche == "Right":
coords = (coords[0] + 10, coords[1])
elif touche == "Left":
coords = (coords[0] -10, coords[1])
#Rotation du rectangle
#Attribution des coordonées au rectangle
canvas.coords(rectangle, coords[0], coords[1], coords[0]+70, coords[1]+25)
#Création de la fenêtre
fenetre = Tk()
fenetre.title("projet")
fenetre.minsize(900, 900)
#Création du canvas
canvas=Canvas(fenetre,width=900,height=800,bg="white")
#Création zone de départ et d'arrivée
canvas.create_rectangle(0,0,100,100,fil="black")
canvas.create_rectangle(800,700,900,800,fil="black")
#Reconnaissance touche
canvas.bind("<Key>", clavier)
#Création du rectangle
coords = (0, 0)
rectangle = canvas.create_rectangle(0,0,70,25,fill="red")
canvas.focus_set()
canvas.pack()
fenetre.mainloop()
Ce qui me permet d'avoir un rectangle qui se déplace dans un zone de dessin.
Merci d'avance à tout ceux qui pourront/essayeront de m'aider.
PS : Chaque petit pas peu énormément m'aider voir me débloquer, donc si vous avez une idée même pour un petit truc hésitez pas !
Pour ceux que ça intéresse j'ai finalement réussi à tourner mon rectangle et à bloquer la sortie du carré sur les bords, j'ai également insérer une sorte de labyrinthe qui est censé forcer l'utilisation du pivot mais pour l'instant tout passe au travers, c'est un nouveau mystère à résoudre si quelqu'un est partant pour m'aider !
# -- coding: cp1252 --
from Tkinter import *
#Coordonées rectangle
#Fonction clavier
def clavier(event):
global coords,switch
touche = event.keysym
if touche == "Up" and canvas.coords(rectangle)[1]>0:
coords = (coords[0], coords[1] - 10)
elif touche == "Down" and canvas.coords(rectangle)[3]<800:
coords = (coords[0], coords[1] + 10)
elif touche == "Right" and canvas.coords(rectangle)[2]<900:
coords = (coords[0] + 10, coords[1])
elif touche == "Left" and canvas.coords(rectangle)[0]>0:
coords = (coords[0] -10, coords[1])
#Rotation du rectangle
elif touche== "p":
if switch=="h":
switch="v"
else:
switch="h"
#Attribution des coordonées au rectangle
if switch=="h":
canvas.coords(rectangle, coords[0], coords[1], coords[0]+70, coords[1]+25)
else:
canvas.coords(rectangle, coords[0], coords[1], coords[0]+25, coords[1]+70)
print canvas.coords(rectangle)
#Création de la fenêtre
fenetre = Tk()
fenetre.title("projet")
fenetre.minsize(900, 900)
#Création du canvas
canvas=Canvas(fenetre,width=900,height=800,bg="white")
#Création zone de départ et d'arrivée
canvas.create_rectangle(0,0,100,100,fil="darkblue")
canvas.create_rectangle(0,700,100,800,fil="darkred")
#Création obstacle
canvas.create_rectangle(0,111,850,101,fil="black")
canvas.create_rectangle(50,211,900,201,fil="black")
canvas.create_rectangle(0,311,850,301,fil="black")
canvas.create_rectangle(50,411,900,401,fil="black")
canvas.create_rectangle(0,511,850,501,fil="black")
canvas.create_rectangle(50,611,900,601,fil="black")
canvas.create_rectangle(0,701,800,691,fil="black")
canvas.create_rectangle(420,161,430,151,fil="black")
canvas.create_rectangle(420,261,430,251,fil="black")
canvas.create_rectangle(420,361,430,351,fil="black")
canvas.create_rectangle(420,461,430,451,fil="black")
canvas.create_rectangle(420,561,430,551,fil="black")
canvas.create_rectangle(420,661,430,651,fil="black")
canvas.create_rectangle(420,761,430,751,fil="black")
#Reconnaissance touche
canvas.bind("<Key>", clavier)
#Création du rectangle
coords = (0, 0)
rectangle = canvas.create_rectangle(0,0,70,25,fill="darkgreen")
#variable rotation (h=horizontal et v = vertical)
switch="h"
canvas.focus_set()
canvas.pack()
fenetre.mainloop()
Tu pourrais héberger ça ailleurs pour qu'on ait l'indentation ? (genre pastebin)
Je suis pas sûr de bien comprendre ce que tu veux faire mais je regarderai ça jeudi quand j'aurai plus de temps.
@remiweb: Heu je connais pas trop pastebin mais je peux regarder, par contre pas trop le temps aujourd'hui donc je verrai ça demain au mieux, en attendant j'ai aussi poster sur Openclassroom :
http://openclassrooms.com/forum/sujet/recherche-d-aide-projet-python?page=1#message-88633262
Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.
En accédant à ce site, tu acceptes nos conditions d'utilisation.