Un jeu de dés avec turtle (séance 2)

Bilan : on a (déjà) appris introduit…

  • les tests, une boucle while, les entrées/sorties en console,  les types (int, string), la notion de blocs et l’indentation, la concaténation de deux chaînes de caractères (string), l’utilisation des fonctions randint et choice de la bibliothèque random… avec notre premier programme « bataille navale »,
  • On est passé à la bibliothèque turtle, et défini des fonctions et beaucoup parlé d’arguments mais aussi de variables et de leur portée… en traçant des dés, mais ce n’était que l’étape 1 !

Étape 2 : encore des dés, mais 42 😉

Continuons dans cette voie, avec tout d’abord une modification de nos fonctions pour obtenir ceci (combien de dés ?) :

Je propose pour cela de modifier la fonction trace_de en trace_de_v2 pour qu’elle accepte maintenant cinq arguments :

def trace_de_v2(x,y,cote,couleur,chiffre):
    carre(x-cote//2,y+cote//2,cote,"white")
    if chiffre%2==1 :
        carre(x-cote//10,y+cote//10,cote//5,couleur)
    # ... etc ...

où :

  • x est l’abscisse du centre du dé à tracer,
  • y est l’ordonnée du centre du dé à tracer,
  • cote est la longueur du dé à tracer,
  • couleur est la couleur des carrés internes,
  • chiffre, et ben … le chiffre affiché par le dé, comme avant !

Explications :

cm 2019-09-11 NSI re-explications fonctions trace_de_v2 avec Nicolas_1

On pourra alors obtenir ces splendides carrés grâce au code suivant, où l’on a implémenté un tirage aléatoire des couleurs, qu’on expliquera. Il y a d’ailleurs plus de couleurs qu’au moment de la création du gif animé ci-dessus.

from turtle import *
from random import choice

def carre(x,y,longueur,couleur):
    up()
    goto(x,y)
    down()
    fillcolor(couleur)
    begin_fill()
    for i in range(4):
        forward(longueur)
        right(90)
    end_fill()

def trace_de_v2(x,y,cote,couleur,chiffre):
    carre(x-cote//2,y+cote//2,cote,"white")
    if chiffre%2==1 :
        carre(x-cote//10,y+cote//10,cote//5,couleur)
    # ... etc ... à compléter bien entendu

def test_trace_de_v2() :
    speed("fastest")
    clear()
    colors=["yellow","pink","red","green","blue","magenta","cyan","purple",
            "black","orange","beige","grey","brown"]
    for hauteur in range(180,-200,-60):
        for chose in range(1,7):
            print(hauteur,chose)
            trace_de_v2(chose*60-180,hauteur,50,choice(colors),chose)

test_trace_de_v2()

Il faut

  • compléter la fonction trace_de_v2 pour qu’elle trace tous les dés,
  • comprendre comment agit la fonction test_trace_de_v2()

Jeudi prochain dernière séance sur ce thème « fonctions, arguments et variables, boucles for » bref, pourquoi encore des dés ?

3 réflexions au sujet de « Un jeu de dés avec turtle (séance 2) »

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.