This repository has been archived on 2019-08-08. You can view files and clone it, but cannot push or open issues or pull requests.
s1-tp/S1/TP 5/carres.py

121 lines
2.5 KiB
Python

# PREUD'HOMME BONTOUX Geoffrey - PeiP 12 - 2014/2015
# TP n°5 donné le 10/10/2014 - Dessiner avec des carrés
# http://www.fil.univ-lille1.fr/~wegrzyno/portail/Info/Doc/HTML/tp_itcond_tortue.html
from turtle import *
# Instructions pour simplifier le code
def suivant():
"""
Suspend l'éxecution du script, attend la pression de l'utilisateur sur la
touche <Entrée> puis efface l'écran de turtle.
"""
input("Appuyez sur <Entrée> pour continuer")
clearscreen()
# [Question 1] Réalisez une procédure nommée carre
def carre(c):
"""
Dessine un carré de coté 'c' depuis l'état courant de la tortue.
CU : c entier strictement positif
"""
assert(type(c) is int and c > 0), "c doit être un entier strictement positif"
pendown()
for i in range(0, 4):
forward(c)
left(90)
print("Test de carre()")
carre(50)
# La tortue est revenue à son point de départ
suivant()
# [Question 2] Dix carrés alignés
ESPACEMENT = 5
COTE = 50
NOMBRE = 10
origine = -(ESPACEMENT + COTE)*NOMBRE//2
print("Dix carrés alignés")
penup()
goto(origine, 0)
for i in range(0, NOMBRE):
carre(COTE)
penup()
forward(COTE + ESPACEMENT)
# goto(xcor() + COTE + ESPACEMENT, ycor()) # Alternative
suivant()
# [Question 3] Un carré de cent carrés
print("Un carré de cent carrés")
penup()
goto(origine, origine)
for y in range(0, NOMBRE):
for x in range(0, NOMBRE):
carre(COTE)
penup()
forward(COTE + ESPACEMENT)
# goto(xcor() + COTE + ESPACEMENT, ycor()) # Alternative
goto(origine, origine + (COTE + ESPACEMENT) * (y + 1))
# Alternative
# forward(-(COTE + ESPACEMENT)*NOMBRE) # Retour à gauche
# left(90)
# forward(COTE + ESPACEMENT) # Montée
# right(90)
suivant()
# [Question 4] Cinquante carrés emboîtés
print("Cinquante carrés emboîtés")
NOMBRE_4 = 50
INTERVALLE = 10
origine_4 = -(NOMBRE_4*INTERVALLE)//2
penup()
goto(origine_4, origine_4)
for j in range(0, NOMBRE_4):
carre( (j + 1) * INTERVALLE)
suivant()
# [Question 5] Réalisez une procédure carre_tournant
def carre_tournant(n):
"""
Dessine 'n' carrés de coté 100 pivotant autour de la position courante de
la tortue.
CU : n entier strictement positif
"""
assert(type(n) is int and n > 0), "n doit être un entier strictement positif"
for i in range(0, n):
carre(100)
left(360/n)
print("Sept carrés pivotant")
goto(0, 0)
carre_tournant(7)