Compare commits
2 Commits
cddef5d277
...
8c92a43036
Author | SHA1 | Date | |
---|---|---|---|
8c92a43036 | |||
53a1f95417 |
BIN
photo numérique/activité_décryptage_image/images/1.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/2.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/3.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
photo numérique/activité_décryptage_image/images/4.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/5.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/6.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/cadrillage.png
Normal file
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/coeur rouge.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/exemple.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/seconde 1.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/seconde 15.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/seconde 18.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
photo numérique/activité_décryptage_image/images/seconde 6.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
python/fonctions/__pycache__/little_test_fw.cpython-39.pyc
Normal file
BIN
python/fonctions/__pycache__/main.cpython-39.pyc
Normal file
BIN
python/fonctions/__pycache__/rendu.cpython-39.pyc
Normal file
BIN
python/fonctions/__pycache__/tp fonctions python.cpython-39.pyc
Normal file
34
python/fonctions/main.py
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
def bonjour ():
|
||||
""" Cette fonction affiche le texte « Bonjour à tous » """
|
||||
print('Bonjour à tous')
|
||||
|
||||
def somme (a, b):
|
||||
""" Cette fonction retourne la somme de a et b """
|
||||
return a+b
|
||||
|
||||
# Exercice 1 — Écrivez une fonction nommée « trois » qui retourne la valeur 3
|
||||
# Exercice 2 — Écrivez une fonction nommée « double » qui prend un nombre en paramètre et retourne le double de sa valeur
|
||||
# Exercice 3 — Écrivez une fonction nommée « triple » qui prend un nombre en paramètre et retourne le triple de sa valeur
|
||||
# Exercice 4 — Écrivez une fonction nommée « carre » qui prend un nombre en paramètre et retourne le carré de sa valeur
|
||||
# Exercice 5 — Écrivez une fonction nommée « est_majeur » qui prend un âge en paramètre et retourne True si cet âge est plus grand que 18, False sinon
|
||||
# Exercice 6 — Écrivez une fonction nommée « est_grand » qui prend une taille en centimètres en paramètre et retourne True si elle est plus grande que 160, False sinon
|
||||
# Exercice 7 — En vous aidant des fonctions est_majeur et est_grand, écrivez une fonction nommée « peut_faire_le_manege » qui prend un âge et une taille en paramètre et renvoie true si la taille est plus grande que 160 et que l’âge est plus grand que 18
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
def get_function (name):
|
||||
try:
|
||||
return getattr(m, 'sommet')
|
||||
except AttributeError:
|
||||
print('************************* ERREUR *************************')
|
||||
print('La fonction « {} » n’a pas été trouvée'.format(name))
|
||||
def test (function_name, test_function):
|
||||
f = get_function(function_name)
|
||||
|
||||
import importlib, os
|
||||
m = importlib.import_module(os.path.basename(__file__)[0:-3])
|
||||
|
||||
|
||||
|
160
python/fonctions/tp fonctions python.py
Normal file
@ -0,0 +1,160 @@
|
||||
# Voici Deux exemples de fonctions
|
||||
|
||||
def bonjour ():
|
||||
""" Cette fonction affiche le texte « Bonjour à tous » """
|
||||
print('Bonjour à tous')
|
||||
|
||||
def somme (a, b):
|
||||
""" Cette fonction retourne la somme de a et b """
|
||||
return a+b
|
||||
|
||||
|
||||
# Exercice 1 — Écrivez une fonction nommée « trois » qui retourne la valeur 3
|
||||
|
||||
# Exercice 2 — Écrivez une fonction nommée « double » qui prend un nombre en paramètre et retourne le double de sa valeur
|
||||
|
||||
# Exercice 3 — Écrivez une fonction nommée « triple » qui prend un nombre en paramètre et retourne le triple de sa valeur
|
||||
|
||||
# Exercice 4 — Écrivez une fonction nommée « carre » qui prend un nombre en paramètre et retourne le carré de sa valeur
|
||||
|
||||
# Exercice 5 — Écrivez une fonction nommée « est_majeur » qui prend un âge en paramètre et retourne True si cet âge est plus grand que 18, False sinon
|
||||
|
||||
# Exercice 6 — Écrivez une fonction nommée « est_grand » qui prend une taille en centimètres en paramètre et retourne True si elle est plus grande que 140, False sinon
|
||||
|
||||
# Exercice 7 - En vous aidant de la fonction « est_majeur », écrivez une fonction nommée « est_mineur » qui prend un âge en paramètre et renvoie True si l’âge est strictement inférieur à 18
|
||||
|
||||
# Exercice 8 — En vous aidant des fonctions est_majeur et est_grand, écrivez une fonction nommée « peut_faire_le_manege » qui prend un âge et une taille en paramètre et renvoie true si la taille est plus grande que 140 et que l’âge est plus grand que 18
|
||||
|
||||
# Exercice 9 — En vous aidant des fonctions est_majeur et est_grand, écrivez une fonction nommée « est_un_enfant » qui prend un âge et une taille en paramètre et renvoie true si la taille est plus petite que 140 et que l’âge est plus petit que 18
|
||||
|
||||
# Exercice 10 — En vous aidant des fonctions double et est_grand, écrivez une fonction nommée « agrandir » qui prend une taille en paramètre et renvoie la taille doublée si elle est plus petite que 140 mais la renvoie non modifiée sinon
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##################################################################################################
|
||||
# Le code python suivant permet de faire les tests, n’écrivez rien en dessous de cette ligne #
|
||||
##################################################################################################
|
||||
|
||||
if __name__ == '__main__':
|
||||
import importlib, os
|
||||
tests = [
|
||||
{
|
||||
'function_name': 'trois',
|
||||
'tests': [
|
||||
{'params': [], 'result': 3},
|
||||
],
|
||||
},
|
||||
{
|
||||
'function_name': 'double',
|
||||
'tests': [
|
||||
{'params': [2], 'result': 4},
|
||||
{'params': [0], 'result': 0},
|
||||
{'params': [-12], 'result': -24},
|
||||
]
|
||||
},
|
||||
{
|
||||
'function_name': 'triple',
|
||||
'tests': [
|
||||
{'params': [2], 'result': 6},
|
||||
{'params': [0], 'result': 0},
|
||||
{'params': [-12], 'result': -36},
|
||||
]
|
||||
},
|
||||
{
|
||||
'function_name': 'carre',
|
||||
'tests': [
|
||||
{'params': [4], 'result': 16},
|
||||
{'params': [0], 'result': 0},
|
||||
{'params': [-12], 'result': 144},
|
||||
]
|
||||
},
|
||||
{
|
||||
'function_name': 'est_majeur',
|
||||
'tests': [
|
||||
{'params': [4], 'result': False},
|
||||
{'params': [18], 'result': True},
|
||||
{'params': [76], 'result': True},
|
||||
{'params': [-12], 'result': False},
|
||||
]
|
||||
},
|
||||
{
|
||||
'function_name': 'est_grand',
|
||||
'tests': [
|
||||
{'params': [4], 'result': False},
|
||||
{'params': [140], 'result': True},
|
||||
{'params': [200], 'result': True},
|
||||
{'params': [-12], 'result': False},
|
||||
],
|
||||
},
|
||||
{
|
||||
'function_name':'peut_faire_le_manege',
|
||||
'tests': [
|
||||
{'params': [18, 140], 'result': True},
|
||||
{'params': [2, 140], 'result': False},
|
||||
{'params': [18, 100], 'result': False},
|
||||
{'params': [-2, -1], 'result': False},
|
||||
]
|
||||
},
|
||||
{
|
||||
'function_name':'est_un_enfant',
|
||||
'tests': [
|
||||
{'params': [18, 140], 'result': False},
|
||||
{'params': [2, 140], 'result': False},
|
||||
{'params': [18, 100], 'result': False},
|
||||
{'params': [-2, -1], 'result': True},
|
||||
]
|
||||
},
|
||||
{
|
||||
'function_name':'agrandir',
|
||||
'tests': [
|
||||
{'params': [4], 'result': 8},
|
||||
{'params': [-8], 'result': -16},
|
||||
{'params': [140], 'result': 140},
|
||||
{'params': [150], 'result': 150},
|
||||
]
|
||||
},
|
||||
]
|
||||
print('\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n')
|
||||
print('------------------------------- Restart --------------------------------')
|
||||
print('\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n')
|
||||
nb_tests = sum(len(item['tests']) for item in tests)
|
||||
nb_ok = 0
|
||||
num_exercice = 0
|
||||
try: # Import the module
|
||||
m = importlib.import_module(os.path.basename(__file__)[0:-3])
|
||||
except ModuleNotFoundError:
|
||||
print('Le fichier module n’a pas été trouvé.')
|
||||
exit(1)
|
||||
|
||||
for item in tests:
|
||||
num_exercice += 1
|
||||
print('\n---------------------------- Exercice {} ---------------------------- \n'.format(num_exercice))
|
||||
# Les dictionnaires ne sont pas ordonnés sur certaines versions de python
|
||||
#print('\n---------------------------------------------------------------------- \n')
|
||||
try:
|
||||
f = getattr(m,item['function_name'])
|
||||
except AttributeError:
|
||||
print('************************* ATTENTION *************************')
|
||||
print('La fonction « {} » n’a pas été trouvée'.format(item['function_name']))
|
||||
continue
|
||||
|
||||
print('On va tester la fonction {}'.format(item['function_name']))
|
||||
for jeu in item.tests[item['function_name']]:
|
||||
print('On exécute {}({})'.format(item['function_name'],', '.join((str(i) for i in jeu['params']))))
|
||||
try:
|
||||
result = f(*jeu['params'])
|
||||
print('-> Résultat : ' + str(result))
|
||||
if result == jeu['result']:
|
||||
print('OK')
|
||||
nb_ok += 1
|
||||
else:
|
||||
print('************************* RÉSULTAT INATTENDU *************************')
|
||||
print('On attendait le résultat suivant : ' + str(jeu['result']))
|
||||
except TypeError:
|
||||
print('************************* PROBLÈME DE PARAMÈTRES *************************')
|
||||
print('TypeError : Le nombre de paramètres de la fonction « {} » est-il bon ?'.format(function_name))
|
||||
break
|
||||
print('\nTotal des tests : {}/{}'.format(nb_ok, nb_tests))
|
48
python/fonctions/unittest_test.py
Normal file
@ -0,0 +1,48 @@
|
||||
|
||||
def bonjour ():
|
||||
""" Cette fonction affiche le texte « Bonjour à tous » """
|
||||
print('Bonjour à tous')
|
||||
|
||||
def somme (a, b):
|
||||
""" Cette fonction retourne la somme de a et b """
|
||||
return a+b
|
||||
|
||||
# Exercice 1 — Écrivez une fonction nommée « trois » qui retourne la valeur 3
|
||||
# Exercice 2 — Écrivez une fonction nommée « double » qui prend un nombre en paramètre et retourne le double de sa valeur
|
||||
# Exercice 3 — Écrivez une fonction nommée « triple » qui prend un nombre en paramètre et retourne le double de sa valeur
|
||||
# Exercice 4 — Écrivez une fonction nommée « carre » qui prend un nombre en paramètre et retourne le carré de sa valeur
|
||||
# Exercice 5 — Écrivez une fonction nommée « est_majeur » qui prend un âge en paramètre et retourne True si cet âge est plus grand que 18, False sinon
|
||||
# Exercice 6 — Écrivez une fonction nommée « est_grand » qui prend une taille en centimètres en paramètre et retourne True si elle est plus grande que 160, False sinon
|
||||
# Exercice 7 — En vous aidant des fonctions est_majeur et est_grand, écrivez une fonction nommée « peut_faire_le_manege » qui prend un âge et une taille en paramètre et renvoie true si la taille est plus grande que 160 et que l’âge est plus grand que 18
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import unittest
|
||||
class MyTests(unittest.TestCase):
|
||||
# return True or False
|
||||
def test_trois (self):
|
||||
self.assertEqual(trois(), 3)
|
||||
def test_double (self):
|
||||
self.assertEqual(double(0), 0)
|
||||
self.assertEqual(double(-11), -22)
|
||||
self.assertEqual(double(7), 14)
|
||||
def test_carre (self):
|
||||
self.assertEqual(carre(0), 0)
|
||||
self.assertEqual(carre(-11), 121)
|
||||
self.assertEqual(carre(7), 49)
|
||||
def test_est_majeur (self):
|
||||
self.assertFalse(est_majeur(0))
|
||||
self.assertFalse(est_majeur(-11))
|
||||
self.assertTrue(est_majeur(18))
|
||||
self.assertTrue(est_majeur(30))
|
||||
def test_est_grand (self):
|
||||
self.assertFalse(est_grand(0))
|
||||
self.assertFalse(est_grand(-11))
|
||||
self.assertTrue(est_grand(180))
|
||||
self.assertTrue(est_grand(160))
|
||||
def test_peut_faire_le_manege (self):
|
||||
self.assertFalse(peut_faire_le_manege(0, 0))
|
||||
self.assertFalse(peut_faire_le_manege(30, 150))
|
||||
self.assertFalse(peut_faire_le_manege(17, 180))
|
||||
self.assertTrue(peut_faire_le_manege(20, 180))
|
||||
unittest.main()
|
6
python/tp_plus_moins/main.py
Normal file
@ -0,0 +1,6 @@
|
||||
from random import randint
|
||||
number = randint(0,100)
|
||||
|
||||
essai = int(input('Essai :'))
|
||||
|
||||
print(type(essai))
|
BIN
python/tp_plus_moins/sujet.pdf
Normal file
167
python/tp_plus_moins/sujet.tex
Normal file
@ -0,0 +1,167 @@
|
||||
\documentclass[11pt,a4paper]{../../template_cours}
|
||||
|
||||
\usepackage{minted}
|
||||
|
||||
\title{Introduction à Python — Le jeu « Plus ou moins »}
|
||||
\author{Adrian Amaglio}
|
||||
\def\thesequence{Programmation}
|
||||
|
||||
\begin{document}
|
||||
Durée : 1h\\
|
||||
|
||||
% ---
|
||||
\section{Les règles du jeu}
|
||||
Le jeu « Plus ou moins » a des règles assez simples.
|
||||
Voici comment le jeu se joue sur ordinateur :
|
||||
\begin{itemize}
|
||||
\item Le programme choisit un nombre entier au hasard entre 0 et 100 (par exemple 42). Le joueur doit le deviner.
|
||||
\item Le joueur propose un nombre (par exemple 55).
|
||||
\item Le programme répond « plus grand, si la proposition est inférieure au nombre à deviner, « plus petit » si la proposition est supérieur et « Gagné » si la proposition est égale. (Dans notre exemple, l’ordinateur répondra « plus petit ».
|
||||
\item Le joueur propose un nouveau nombre, jusqu’à ce qu’il ait le bon.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Un nombre aléatoire}
|
||||
En python, pour générer un nombre aléatoire entre 0 et 100 on a besoin des deux lignes suivantes.
|
||||
\begin{minted}{python}
|
||||
from random import randint
|
||||
secret = randint(0,100)
|
||||
\end{minted}
|
||||
La variable $secret$ a maintenant pour valeur un nombre entier aléatoire !
|
||||
|
||||
\begin{exercice}
|
||||
Pour vérifier l’effet de la fonction d’aléatoire, exécutez ce programme Python et vérifiez qu’il affiche bien un nombre différent à chaque exécution.
|
||||
\begin{minted}{python}
|
||||
from random import randint
|
||||
secret = randint(0,100) # Python choisit un nombre aléatoire
|
||||
print(secret) # Python va afficher le contenu de la variable "secret"
|
||||
\end{minted}
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Les propositions du joueur}
|
||||
Pour que le joueur propose un nombre, nous allons devoir dire à notre programme d’attendre une saisie de sa part.\\
|
||||
On utilise pour cela la fonction $input$.
|
||||
\begin{example}
|
||||
\begin{minted}{python}
|
||||
essai = int(input('Essai :'))
|
||||
print(essai)
|
||||
\end{minted}
|
||||
\end{example}
|
||||
|
||||
\begin{exercice}
|
||||
Exécutez un programme contenant les deux lignes de l’exemple précédent.\\
|
||||
Lorsqu’il vous demandera d’entrer votre essai, entrez le chiffre 9, appuyez sur la touche « entrer » et vérifier que votre chiffre s’affiche bien une seconde fois à l’écran.
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Afficher des messages personnalisés}
|
||||
Nous allons ajouter des \textbf{conditions}.
|
||||
Une condition permet d’exécuter des instructions python uniquement dans certains cas.
|
||||
\begin{example}
|
||||
Par exemple, le programme suivant sert à tester si une personne est majeure :
|
||||
\begin{minted}{python}
|
||||
age = 17
|
||||
if age < 18:
|
||||
print('Vous êtes mineur')
|
||||
elif age == 18:
|
||||
print('Vous êtes tout juste majeur')
|
||||
else:
|
||||
print('Vous êtes majeur')
|
||||
\end{minted}
|
||||
\end{example}
|
||||
\begin{exercice}
|
||||
Exécutez le programme de l’exemple précédent. Et changez l’âge pour voir dans quels cas chaque message est affiché.
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Version à un essai}
|
||||
\begin{exercice}
|
||||
À partir des deux exemples précédents, écrivez un programme qui :
|
||||
\begin{itemize}
|
||||
\item Tire un nombre aléatoire et le stock dans la variable $secret$.
|
||||
\item Demande à l’utilisateur d’entrer un essai.
|
||||
\item Affiche le nombre secret, pour que le joueur puisse voir s’il correspond à son essai.
|
||||
\end{itemize}
|
||||
\textbf{Faites vérifier par le professeur}
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Version à un essai, avec un message personnalisé}
|
||||
\begin{exercice}
|
||||
Complétez votre programme pour qu’il affiche un message, comme définit dans les règles, en fonction de l’essai du joueur.
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Version avec trop d’essais !}
|
||||
Pour que l’utilisateur puisse entrer plusieurs essais, il faudrait répéter certaines étapes du programme.\\
|
||||
Pour répéter indéfiniment des instructions, on utilise une boucle infinie !
|
||||
\begin{example}
|
||||
\begin{minted}{python}
|
||||
while True:
|
||||
print('Bonjour')
|
||||
\end{minted}
|
||||
Le programme ci-dessus, affichera « bonjour » en continu, tant que l’on ne l’arrête pas.
|
||||
\end{example}
|
||||
\begin{exercice}
|
||||
Modifiez votre programme python pour que l’utilisateur puisse faire plusieurs propositions.
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% On espère que les élèves arriveront là au moins
|
||||
% ---
|
||||
\section{Version avec tout juste ce qu’il faut d’essais}
|
||||
On a maintenant un problème, le programme précédent ne s’arrête pas, même lorsque le nombre a été deviné !
|
||||
La boucle infinie, est réellement infinie…\\
|
||||
Il existe cependant un moyen de la stopper. Il suffit d’ajouter l’instruction « break » dans le programme.
|
||||
Lorsque python exécute l’instruction « break », il arrête immédiatement la boucle !
|
||||
\begin{exercice}
|
||||
Placez l’instruction « break » dans votre programme pour qu’il s’arrête en cas de victoire du joueur.\\
|
||||
Testez plusieurs fois votre programme.
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Afficher le nombre d’essais}
|
||||
\begin{example}
|
||||
En python, on peut utiliser un compteur. C’est une variable qui contient un entier.\\
|
||||
On l’initialise à 0, c’est à dire qu’on lui donne cette valeur au début du programme, puis on augmente sa valeur de 1 dès que l’on veut compter.
|
||||
\begin{minted}{python}
|
||||
compteur = 0
|
||||
print(compteur) # <- affiche 0
|
||||
compteur = compteur + 1
|
||||
print(compteur) # <- affiche 1
|
||||
\end{minted}
|
||||
\end{example}
|
||||
\begin{exercice}
|
||||
Modifiez votre programme pour qu’il affiche le nombre de tentatives faites par le joueur pour deviner le nombre secret.
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Proposer de rejouer}
|
||||
\begin{exercice}
|
||||
Modifiez votre programme pour qu’il propose de rejouer à la fin de la partie.
|
||||
\end{exercice}
|
||||
|
||||
|
||||
% ---
|
||||
\section{Nombre d’essai maximal}
|
||||
\begin{exercice}
|
||||
Modifiez votre programme pour qu’il fixe un nombre d’essai maximal au joueur et qu’il termine la partie lorsque celui-ci est atteint.\\
|
||||
Il peut être agréable pour le joueur que le nombre d’essais restants soit affiché à chaque tour.
|
||||
\end{exercice}
|
||||
|
||||
% ---
|
||||
\section{Difficulté réglable}
|
||||
\begin{exercice}
|
||||
Modifiez votre programme pour qu’il permette au joueur de changer la valeur maximale du nombre secret et le nombre d’essais possibles.
|
||||
\end{exercice}
|
||||
|
||||
\end{document}
|
35
python/tp_variables/main.py
Normal file
@ -0,0 +1,35 @@
|
||||
from turtle import *
|
||||
from random import random
|
||||
|
||||
# L’idée est ici de faire une fonction que les élève pourraient comprendre
|
||||
def carre(longueur, angle=0):
|
||||
"""Cette fonction trace un carré de centre 0,0 de longueure et d’inclinaison variables"""
|
||||
up() # Ces 3 lignes placent la tortue au centre du dessin
|
||||
goto(0,0)
|
||||
setheading(angle)
|
||||
forward(longueur/2) # Ces 3 lignes placent la tortue dans un angle de notre futur carré
|
||||
left(90)
|
||||
forward(longueur/2)
|
||||
down()
|
||||
for i in range(4): # Ces 3 lignes tracent un carré
|
||||
left(90)
|
||||
forward(longueur)
|
||||
|
||||
def partie1():
|
||||
nombre_fleurs = 10
|
||||
for f in range(nombre_fleurs):
|
||||
for i in range(10):
|
||||
carre(100 + 50*f, i*10)
|
||||
|
||||
def partie2():
|
||||
while True:
|
||||
for i in range(50):
|
||||
pencolor(random(), random(), random())
|
||||
carre(50 + i*10, i*10)
|
||||
for i in range(50,0,-1):
|
||||
pencolor(random(), random(), random())
|
||||
carre(50 + i*10, i*10)
|
||||
|
||||
speed(0)
|
||||
hideturtle()
|
||||
partie2()
|