Python Tortue Récursivité De L'Arbre
Je suis supposer pour écrire un programme à l'aide de python de la tortue qui crée un arbre avec des niveaux. Ci-dessous sont quelques-I/O est si vous voyez ce que c'est supposé faire.
Mon programme fonctionne pour le premier cas, mais les tirages trop nombreux pour le deuxième cas. Les stipulations de ce programme sont:
- doit être récursive
- pouvez utiliser seulement à la suite de la tortue fonctions:
turtle.forward(100) <-- turtle goes forward 100 steps turtle.right(90) <-- turtle turns right 90 degrees turtle.penup() <-- turtle lifts its pen up off of the paper turtle.forward(100) <-- turtle goes forward 100 steps turtle.pendown() <-- turtle puts its pen down on the paper turtle.pencolor("red") <-- turtle uses red pen turtle.circle(100) <-- turtle draws circle of radius 100 turtle.pencolor("blue") <-- turtle changes to blue pen (most other common colors work too!) turtle.forward(50) <-- turtle moves forward 50 steps turtle.xcor() <-- turtle returns its current x-coordinate turtle.ycor() <-- turtle returns its current y-coordinate
Mon Programme:
import turtle
def tree(length,n):
""" paints a branch of a tree with 2 smaller branches, like an Y"""
if length < (length/n):
return # escape the function
turtle.forward(length) # paint the thik branch of the tree
turtle.left(45) # rotate left for smaller "fork" branch
tree(length * 0.5,length/n) # create a smaller branch with 1/2 the lenght of the parent branch
turtle.right(90) # rotoate right for smaller "fork" branch
tree(length * 0.5,length/n) # create second smaller branch
turtle.left(45) # rotate back to original heading
turtle.backward(length) # move back to original position
return # leave the function, continue with calling program
Je n'avais aucune idée que la tortue a été construit en python. Vous n'avez absolument a fait ma journée.
Heureux que j'ai pu 🙂
Heureux que j'ai pu 🙂
OriginalL'auteur user1681664 | 2012-10-09
Vous devez vous connecter pour publier un commentaire.
Je pense qu'il y a deux problèmes.
Tout d'abord, pour les appels récursifs, le deuxième paramètre doit être n-1 au lieu de la longueur/n. Si vous êtes de dessin de niveau n, le prochain appel sera tirage de niveau n-1, ne sont pas au niveau de la longueur/n.
Le deuxième problème est l'évasion condition. Avec le premier changement, le dessin se termine lorsqu'il n'y a pas plus de niveaux à gauche pour dessiner, ou n==1.
Ça sonne comme des devoirs, donc je ne vais pas poster le code exact,.
OriginalL'auteur Jeremiah