site2wouf.fr : Algorithme — Séquence 11

Je peux résister à tout, sauf à la tentation.

Oscar Wilde (sur Mon tshirt!)

Partager :

Facebook X (Twitter) LinkedIn Email WhatsApp

Le module turtle est un ensemble d'outils permettant de dessiner à l'aide d'instructions simples.

Code Python traduit en HTML:
from turtle import *

forward(100)
right(90)
forward(100)
left(90)
forward(200)

tortue_1.0.0.py

Principales fonctions du module turtle

La boucle for avec Turtle

Dès qu'une même séquence d'instructions se répète, une boucle évite les répétitions. La boucle for est idéale quand on sait à l'avance combien de fois on répète :

Code Python traduit en HTML : Code Python traduit en HTML:
from turtle import *
for i in range(4):
    forward(100)
    right(90)

carre.py

for i in range(4): — le bloc indenté est répété 4 fois (valeurs de i : 0, 1, 2, 3).

Avec quelques instructions de plus, on peut créer une spirale :

Code Python traduit en HTML:
from turtle import *
for i in range(100):
    forward(100-i)
    right(90)

spirale.py

Projets avancés

Pour les plus rapides, voici deux projets complets :

Un échiquier :

Code Python traduit en HTML:
#L'échiquier version 1.0.0
#par wouf 11/2018
from turtle import *


# Les variables globales :________________________________________________________________

nombre_colonnes=8 
nombre_lignes=8
cote_en_pixels=40 


# Les fonctions : _______________________________________________________________________
def dessin_carre(x,couleur="aucune" ): #cette fonction est documenté en dessous entre les triples cotes:
    """ x est le coté du carré en pixel
Option : la couleur de remplissage est facultative...""" 
    
    les_couleurs=("blue" ,"red" ,"green" ,"yellow" ,"brown" ,"black" ,"white" ,"pink" ,"orange" ,"purple" ,"grey" )
    #cette liste est une variable locale, non connue à l'exterieur de la fonction dessin_carre()
    
    if couleur not in les_couleurs: #si la couleur est "aucune"  ou une couleur non existante...
        couleur="white" 
    fillcolor(couleur)
    begin_fill()    
    for c in range(4):
        forward(x)
        right(90)
    end_fill()
    
# Les paramètres pour turtle : __________________________________________________________
    
speed("fastest" )#vitesse maximum
shape("blank" ) #pour ne pas voir le curseur
title("Echiquier de Wouf" )  #Titre de la fenêtre

# Dessin de l echiquier ________________________________________________________________
for i in range(nombre_colonnes): 
    for j in range(nombre_lignes): #avez vous remarqué les 2 boucles imbriquées ?
        #positionnement :
        up()
        goto(i*cote_en_pixels-320,j*cote_en_pixels-220) #où placer la tortue avant de faire la case (i,j) ?
        down()
        
        if (i+j)%2==0:
            #Si la case est paire
            #(X%Y est le reste de la division
            #euclidienne de X par Y)
            #On apllique la couleur foncée (remplissage)
            
            dessin_carre(cote_en_pixels,"brown" )
            
        else: #Sinon on a une case paire de couleur claire
            dessin_carre(cote_en_pixels,"grey" )



echiquier.py

Un feu tricolore interactif :

Code Python traduit en HTML:
#Le feu tricolore version 1.0.0
#par wouf 11/2018
#Utilisez les touches r(rouge) o(orange) et v(vert) pour changer la couleur du feu
from turtle import *

# Les paramètres pour turtle : __________________________________________________________
    
speed("fastest" )#vitesse maximum
shape("blank" ) #pour ne pas voir le curseur
title("Feu tricolore de Wouf" )  #Titre de la fenêtre

def rouge(): #Le feu est rouge
    up()
    goto(50,-50)
    down()
    color("red" )
    dot(80)
    up()
    goto(50,-150)
    down()
    color("black" )
    dot(80)
    up()
    goto(50,-250)
    down()
    dot(80)

def orange(): #Le feu est orange
    up()
    goto(50,-50)
    down()
    color("black" )
    dot(80)
    up()
    goto(50,-150)
    down()
    color("orange" )
    dot(80)
    up()
    goto(50,-250)
    down()
    color("black" )
    dot(80)
 
def vert(): #Le feu est vert
    up()
    goto(50,-50)
    down()
    color("black" )
    dot(80)
    up()
    goto(50,-150)
    down()
    color("black" )
    dot(80)
    up()
    goto(50,-250)
    down()
    color("green" )
    dot(80)

    
#Dessin du feu : _______________________________________________________________

fillcolor("brown" )
begin_fill()
forward(100)
right(90)
forward(400)
right(90)
forward(100)
right(90)
forward(400)
right(90)
end_fill()
up()
goto(50,-50)
down()
dot(80)
up()
goto(50,-150)
down()
dot(80)
up()
goto(50,-250)
down()
dot(80)

# la tortue écoute les entrées au clavier (listen) et associe :
#à la touche r la fonction rouge()
#à la touche o la fonction orange()
#à la touche v la fonction vert()

if __name__ == "__main__" :
    listen()
    onkeypress(rouge,"r" )
    onkeypress(orange,"o" )
    onkeypress(vert,"v" )
    
    mainloop()

feu_tricolore

Vos missions (faire des programmes séparés)

Chaque mission est évaluée !

Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.

Attendus de fin de cycle

Connaissances et compétences associées

Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - Notions d'algorithme et de programme. - Notion de variable informatique. - Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.

Exemples de situations, d'activités et de ressources pour l'élève

Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.

Repères de progressivité:

En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.

Liens utiles

Téléchargements