Besoin d'aide projet NsI
zo0512
-
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Mon projet de crée une Rue avec des maisons (nombres d'étages aléatoire, couleur aléatoire et style de fenêtre et toit différents)
J'ai un problème, mes maisons sont à l'envers et je n'arrive pas à les remettre à l'endroit...
Second problème je n'arrive pas à laisser aléatoirement le programme choisir entre les deux type de toit...
Je dois rendre ce projet avant ce soir si vous pouvez m'aider ...
Voici mon code :
from random import *
size(800,600)
background(197,223,255) #couleur de l'arrière plan, ici bleu clair
#----- Rue ----------
def traceRue(nbMaison,posX,posY,r):
translate(posX,posY)
scale(r)
sol(nbMaison)
for i in range(nbMaison):
immeuble(i*180+posX)
scale(1/r)
translate(-posX,-posY)
#----- Sol ----------
def sol(nbMaison):
stroke(0,0,0)
line(0,375,200*nbMaison,375)
#----- Immeuble -----------
def immeuble(x):
"""
x : abscisse du centre de l'étage
"""
#Nombre d'étages ( aléatoire )
nb_etages = randint(1,3)
#Couleurs des éléments (aléatoire)
couleur_facade = couleur_aleatoire()
couleur_porte = couleur_aleatoire()
#Dessin du RDC
rdc(x, couleur_facade, couleur_porte)
#Dessin des étages
niveau = 1
while niveau <= nb_etages:
etage(x, couleur_facade, niveau)
niveau = niveau + 1
#Dessin du toit
toit(x, niveau)
#------------- RDC, Etage et Toit -------------
def rdc(x, c_facade, c_porte):
"""
Paramètres
x : (int) abscisse du côté droit
c_facade : couleur de la façade
c_porte : couleur de la porte
"""
#Dessine la façade
facade(x,c_facade,0)
#Construit la liste des éléments (1 pour la porte)
liste_num_elt = [1,2,2]
shuffle(liste_num_elt) #melange
#
for i in range(0,3):
if liste_num_elt[i]==1: #dessiner une porte
if(randint(0,2)<1):
porte1(x+10+i*40,c_porte)
else:
porte2(x+10+i*40,c_porte)
else: #dessiner une fenetre
fenetre(x+10+i*40,0)
#Couleur façade et porte
c_facade = couleur_aleatoire()
c_porte = couleur_aleatoire()
def etage(x,couleur,y):
fill(couleur)
rect(x,y*60,140,60)
def toit(x,y):
triangle(x,y*60,x+70,y*60+60,x+140,y*60)
def toit2(x,y):
rect(x-20,y*60,180,10)
# ----Facade avec : couleur + 3 elts d'étages----
def facade(x, couleur, niveau):
"""
Paramètres:
x: abscisse du côté droit de la façade
couleur: couleur de la façade
niveau: num niveau
"""
#-------- éléments ------------
def porte1(x,couleur):
"""
Paramètres :
x est l'abscisse du centre de la porte
couleur : couleur de la porte
"""
fill(255)
rect(x,0,30,50)
def porte2(x,couleur):
"""
Paramètres :
x est l'abscisse du centre de la porte
couleur : couleur de la porte
"""
fill(255)
ellipse(x+15,-40,30,30)
rect(x,0,30,-40)
def fenetre(x,y):
"""30x30pixels"""
fill(255)
rect(x,y,30,30)
def porteFenetre(x,y):
"""30 pixels de largeur, 50 pixels de hauteur, 1 ou 2 par étages"""
fill(255)
rect(x,y,30,50)
def toitModele1(x,y):
"""modèle pointu"""
fill(255)
triangle()
def toitModele2():
"""modèle terrasse"""
fill(255)
rect(x,y,140,20)
#------- Couleur aléatoire -------
def couleur_aleatoire():
return color(randint(0,255),randint(0,255),randint(0,255))
#----- Appel de la fonction ------
traceRue(3,100,200,1)
Mon projet de crée une Rue avec des maisons (nombres d'étages aléatoire, couleur aléatoire et style de fenêtre et toit différents)
J'ai un problème, mes maisons sont à l'envers et je n'arrive pas à les remettre à l'endroit...
Second problème je n'arrive pas à laisser aléatoirement le programme choisir entre les deux type de toit...
Je dois rendre ce projet avant ce soir si vous pouvez m'aider ...
Voici mon code :
from random import *
size(800,600)
background(197,223,255) #couleur de l'arrière plan, ici bleu clair
#----- Rue ----------
def traceRue(nbMaison,posX,posY,r):
translate(posX,posY)
scale(r)
sol(nbMaison)
for i in range(nbMaison):
immeuble(i*180+posX)
scale(1/r)
translate(-posX,-posY)
#----- Sol ----------
def sol(nbMaison):
stroke(0,0,0)
line(0,375,200*nbMaison,375)
#----- Immeuble -----------
def immeuble(x):
"""
x : abscisse du centre de l'étage
"""
#Nombre d'étages ( aléatoire )
nb_etages = randint(1,3)
#Couleurs des éléments (aléatoire)
couleur_facade = couleur_aleatoire()
couleur_porte = couleur_aleatoire()
#Dessin du RDC
rdc(x, couleur_facade, couleur_porte)
#Dessin des étages
niveau = 1
while niveau <= nb_etages:
etage(x, couleur_facade, niveau)
niveau = niveau + 1
#Dessin du toit
toit(x, niveau)
#------------- RDC, Etage et Toit -------------
def rdc(x, c_facade, c_porte):
"""
Paramètres
x : (int) abscisse du côté droit
c_facade : couleur de la façade
c_porte : couleur de la porte
"""
#Dessine la façade
facade(x,c_facade,0)
#Construit la liste des éléments (1 pour la porte)
liste_num_elt = [1,2,2]
shuffle(liste_num_elt) #melange
#
for i in range(0,3):
if liste_num_elt[i]==1: #dessiner une porte
if(randint(0,2)<1):
porte1(x+10+i*40,c_porte)
else:
porte2(x+10+i*40,c_porte)
else: #dessiner une fenetre
fenetre(x+10+i*40,0)
#Couleur façade et porte
c_facade = couleur_aleatoire()
c_porte = couleur_aleatoire()
def etage(x,couleur,y):
fill(couleur)
rect(x,y*60,140,60)
def toit(x,y):
triangle(x,y*60,x+70,y*60+60,x+140,y*60)
def toit2(x,y):
rect(x-20,y*60,180,10)
# ----Facade avec : couleur + 3 elts d'étages----
def facade(x, couleur, niveau):
"""
Paramètres:
x: abscisse du côté droit de la façade
couleur: couleur de la façade
niveau: num niveau
"""
#-------- éléments ------------
def porte1(x,couleur):
"""
Paramètres :
x est l'abscisse du centre de la porte
couleur : couleur de la porte
"""
fill(255)
rect(x,0,30,50)
def porte2(x,couleur):
"""
Paramètres :
x est l'abscisse du centre de la porte
couleur : couleur de la porte
"""
fill(255)
ellipse(x+15,-40,30,30)
rect(x,0,30,-40)
def fenetre(x,y):
"""30x30pixels"""
fill(255)
rect(x,y,30,30)
def porteFenetre(x,y):
"""30 pixels de largeur, 50 pixels de hauteur, 1 ou 2 par étages"""
fill(255)
rect(x,y,30,50)
def toitModele1(x,y):
"""modèle pointu"""
fill(255)
triangle()
def toitModele2():
"""modèle terrasse"""
fill(255)
rect(x,y,140,20)
#------- Couleur aléatoire -------
def couleur_aleatoire():
return color(randint(0,255),randint(0,255),randint(0,255))
#----- Appel de la fonction ------
traceRue(3,100,200,1)
A voir également:
- Besoin d'aide projet NsI
- Filigrane projet - Guide
- Gant projet - Télécharger - Gestion de projets
- Musique projet x - Forum Musique / Radio / Clip
- Différence entre pmo et chef de projet ✓ - Forum Programmation
- Wbs projet - Télécharger - Gestion de projets
2 réponses
Bonjour z0512,
L'indentation étant importante en Python, merci de re poster ton code avec les balises
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci :
L'indentation étant importante en Python, merci de re poster ton code avec les balises
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci :
def test(): print('test') test()