Créer un pavage de cube Turtle

-
Bonjour,

Je suis débutant en programmation et j'ai pour mission de créer un pavage de cubes, cubes formés par 3 losanges de couleurs différentes, j'ai créé une fonction "cube" qui me crée un cube avec les coordonées en paramètres + la longueur des arrêtes, mais je n'ai pas réussis à ajouter un paramètre couleurs dans lequel je rentre un tuple de couleurs et mon cube est alors formé de 3 couleurs différentes?

Voici mon code :

""""""""""""""""""""""""""""""""""""""""
import turtle
#coin haut gauche - 361 305

def cube(abscisse_centre, ordonnee_centre, longueur_arete):
    turtle.up()
    turtle.goto(abscisse_centre, ordonnee_centre)
    turtle.down()

    for i in range(3):  # à chaque itération, trace un losange
        angle = 120
        turtle.begin_fill()
        for j in range(4):  # à chaque itération, trace un segment
            turtle.forward(longueur_arete)
            turtle.left(angle)
            angle = 180 - angle
        turtle.right(120)
        turtle.end_fill()
    turtle.hideturtle()
    turtle.done()

""""""""""""""""""""""""""""""""""""""""

J'ai essayé en ajoutant un paramètre couleur et en exécutant la fonction tel que le dernier paramètre était ('red', 'blue', 'green') avec un turtle.color(colors[n]), n += 1 mais ça ne marche pas :(



Configuration: Windows / Chrome 77.0.3865.90
Afficher la suite 

2 réponses

Commenter la réponse de Chris 94
0
Merci
Bonsoir.

Je ne connais pas du tout turtle, mais si tu ouvres un terminal python, que tu importes turtle et qu'ensuite tu entres
help(turtle.begin_fill)


Tu aurais vu ceci.

Help on function begin_fill in module turtle:

begin_fill()
Called just before drawing a shape to be filled.

No argument.

Example:
>>> color("black", "red")
>>> begin_fill()
>>> circle(60)
>>> end_fill()
(END)


La réponse était là :D

Donc, ton code pourrait simplement devenir.

import turtle
#coin haut gauche - 361 305

def cube(abscisse_centre, ordonnee_centre, longueur_arete, colors):
    turtle.up()
    turtle.goto(abscisse_centre, ordonnee_centre)
    turtle.down()

    for i in range(3):  # à chaque itération, trace un losange
        angle = 120
        turtle.color(colors[i])
        turtle.begin_fill()
        for j in range(4):  # à chaque itération, trace un segment
            turtle.forward(longueur_arete)
            turtle.left(angle)
            angle = 180 - angle
        turtle.right(120)
        turtle.end_fill()
    turtle.hideturtle()
    turtle.done()

cube(100, 100, 40, ('red', 'yellow', 'blue'))
Merci beaucoup pour ton aide!
Bonne soirée!!
Commenter la réponse de khrug