Consignes pour les projets :

Numérique et sciences informatiques

start up

Projet 13 : Mon beau sapin

Description du mini projet

M. Sommerfeld a besoin d'aide pour décorer son bureau pour Noël. Vous devez programmer une décoration de Noël en Python avec le module Turtle.

Un vote sera organisé pour départager vos travaux.

print("-      *  ")
print("-     ***  ")
print("-    *****  ")
print("-   *******  ")
print("-      |  ")

On peut aussi utiliser un code plus complexe pour réaliser une première création.

sapin noël
def afficher_sapin(taille):
    for i in range(taille):
        espace = " " * (taille - i - 1)
        etoiles = "*" * (2 * i + 1)
        print(espace + etoiles)
    #pose du pied
    pied = " " * (taille - 1) + "|"
    print(pied)

# Utilisation : spécifiez la taille du sapin (nombre de lignes)
taille_sapin = 7
afficher_sapin(taille_sapin)

Cahier des charges

Vous devez utiliser le module Turtle pour votre création.

Turtle est un des modules graphiques disponible pour le langage Python. Il est inspiré de la programmation Logo et permet de déplacer une tortue sur l’écran. Il est alors possible d'effectuer très simplement des dessins constitués de lignes en déplaçant une tortue dans le plan.

Les fonctions disponibles

Les 4 commandes de base

FonctionDescription
forward(n)Avance de n pixels
backward(n)Recule de n pixels
left(r)Pivote vers la gauche de r degrés
right(r)Pivote vers la droite de r degrés

Pour modifier les traits dessinés

FonctionDescription
width(n)Définit la largeur du trait
color(“blue”)Définit la couleur du dessin, ici bleu
bgcolor(“red”)Définit la couleur du fond

Autres fonctions bien utiles

FonctionDescription
up()Lève le crayon pour avancer sans dessiner
down()Baisse le crayon pour dessiner
goto(x,y)Positionne le crayon en (x,y), (0,0) est le centre de l'écran
circle(r,a)Dessine un cercle de rayon r sur un arc d'angle a
speed(vitesse)Définit la vitesse de déplacement ( “slowest”, “slow”, “normal”, “fast”, “fastest”)
write(“texte”)Ecrit le texte là où se trouve le curseur
pos()Renvoie un tuple (x,y) de la position de la tortue

Exemple de dessin d'un carré

Activité de découverte à faire : dessiner un triangle

Créez un programme python qui dessine un triangle :

Vous pouvez aussi utiliser ce tuto pour turtle .

Utiliser de la couleur

En apprenant à manipuler la palette de couleurs dans vos projets, vous pouvez ajouter une dimension visuelle à vos créations informatiques, les rendant plus interactives, attrayantes et informatives pour les utilisateurs.
N'oubliez pas que le choix des couleurs ne se limite pas à l'esthétique, mais joue également un rôle crucial dans la communication visuelle et la facilité d'utilisation de nos applications.

import turtle
turtle.delay(0)
# Listes de couleurs pour chaque thème
rouge = ["red", "dark red", "firebrick", "crimson", "indian red", "maroon", "salmon", "tomato"]
jaune = ["gold", "yellow", "orange", "dark orange", "light yellow", "goldenrod", "khaki"]
bleu = ["blue", "dark blue", "medium blue", "royal blue", "navy", "deep sky blue", "cornflower blue", "steel blue"]
vert = ["green", "dark green", "medium sea green", "lime green", "forest green", "olive", "pale green"]
gris = ["gray", "dark gray", "dim gray", "light gray", "dark slate gray", "slate gray", "silver"]
marron = ["saddle brown", "sienna", "chocolate", "peru", "brown", "rosy brown", "tan"]
rose = ["pink", "light pink", "hot pink", "deep pink"]
violet = ["purple", "dark violet", "medium orchid", "lavender", "thistle"]
orange = ["orange red", "dark orange", "coral", "orange", "tomato"]
blanc = ["white", "snow", "ivory", "linen"]

# Fonction pour dessiner un carré de la couleur spécifiée à la position (x, y)
def dessiner_carre(couleur, x, y):
    turtle.up()
    turtle.goto(x, y)
    turtle.down()
    turtle.color(couleur)
    turtle.begin_fill()
    for _ in range(4):
        turtle.forward(50)
        turtle.right(90)
    turtle.end_fill()

# Dessiner tous les carrés côte à côte sur plusieurs lignes
x_start = -300
y_start = 300

for theme_couleur in [rouge, jaune, bleu, vert, gris, marron, rose, violet, orange, blanc]:
    x = x_start
    y = y_start
    for couleur in theme_couleur:
        dessiner_carre(couleur, x, y)
        x += 70  # Espacement horizontal entre les carrés
        if x >= x_start + 500:  # Pour passer à la ligne suivante
            x = x_start
            y -= 30  # Espacement vertical entre les lignes

    y_start -= 80  # Espacement vertical entre les thèmes de couleurs

turtle.hideturtle()
turtle.done()

Le projet à réaliser

Entraînement 1:

Implémentez une fonction sapin qui permet de dessiner un sapin

def sapin():
    """
    Fonction qui permet de dessiner un sapin
    """
    pass  # pass sert à éviter les erreurs

Entraînement 2:

Implémentez une fonction qui ajoute aléatoirement une décoration ronde au sapin

def deco_1():
    """
        
    """
    pass  # pass sert à éviter les erreurs

Entraînement 3:

Implémentez une fonction qui ajoute une guirlande à votre sapin

def guirlande():
    """
        :
    """
    pass  # je ne sais pas encore

Entraînement 4:

Utilisez les fonctions précédentes pour réaliser un beau sapin de Noël. Vous pouvez réaliser plusieurs appels de fonction pour décorer votre sapin. Pour faire varier les motifs, tu peux changer leur couleur, leur dimension en mettant ces informations en paramètre dans des variables.

sapin noël sapin noël sapin noël
Des exemples

Amélioration

Amélioration 1 :

Ajouter un decor dynamique

Amélioration 2 :

Réaliser une IHM avec tkinker pour encore plus de dynamisme. Vous trouverez un très bon tuto sur cette page ou ici .