# code

username: suzie.douine
codename: bulles_base
jour: 2023-09-14
heure: 10:52:19
ip: 172.22.99.39
comment: TB
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse, x2, y2, couleur2, taille2, vitesse2, x3, y3, couleur3, taille3, vitesse3\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	y-=vitesse\n	y2-=vitesse2\n	y3-=vitesse3\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques\n	if y<=0:\n		y=p5.height\n		x = randint(10,590)\n		couleur = randint(0,6)\n		taille = randint(10,20)\n		vitesse = randint(15,20)\n	\n	if y2<=0:\n		x2 = randint(10,590)\n		y2 = p5.height\n		couleur2 = randint(0,6)\n		taille2 = randint(10,20)\n		vitesse2 = randint(15,20)	\n	\n	if y3<=0:\n		x3 = randint(10,590)\n		y3 = p5.height\n		couleur3 = randint(0,6)\n		taille3 = randint(10,20)\n		vitesse3 = randint(15,20)	\n\n		\n\n\n	# 3. Dessin de la bulle dans la fenêtre :\n	p5.fill(couleurs[couleur])\n	p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n	p5.fill(couleurs[couleur2])\n	p5.ellipse(x2 - taille//2, y2 - taille//2, taille//2, taille//2)\n	p5.fill(couleurs[couleur3])\n	p5.ellipse(x3 - taille//2, y3 - taille//2, taille//2, taille//2)\n\n# initialisation des caractéristiques de la bulle\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)	\nx2 = randint(10,590)\ny2 = p5.height\ncouleur2 = randint(0,6)\ntaille2 = randint(10,20)\nvitesse2 = randint(15,20)	\nx3 = randint(10,590)\ny3 = p5.height\ncouleur3 = randint(0,6)\ntaille3 = randint(10,20)\nvitesse3 = randint(15,20)	\n\np5.run(setup, draw)\n					\n			


username: emilien.raymond
codename: bulles_base
jour: 2023-09-14
heure: 10:55:17
ip: 172.22.99.34
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \ntab=[]\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n	for i in range(50):\n		tab_bulle=[]\n		x = randint(10,590)\n		y = p5.height\n		couleur = randint(0,6)\n		taille = randint(10,30)\n		vitesse = randint(5,15)\n		tab_bulle=[x,y,couleur,taille,vitesse]\n		tab.append(tab_bulle)\n	print(tab)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	\n	for bulle in tab:\n		bulle[1]-=bulle[4]\n		# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques. \n		if bulle[1] < 0:\n			bulle[0] = randint(10,590)\n			bulle[1] = p5.height\n			bulle[2] = randint(0,6)\n			bulle[3] = randint(10,30)\n			bulle[4] = randint(5,15)\n			# 3. Dessin de la bulle dans la fenêtre :\n		p5.fill(couleurs[bulle[2]])\n		p5.ellipse(bulle[0] - bulle[3]//2, bulle[1] - bulle[3]//2, bulle[3]//2, bulle[3]//2)\n \n	\n		\n\n	\n\n# initialisation des caractéristiques de la bulle\n	\n\np5.run(setup, draw)\n					\n			

comment:
  Parfait ! TB d"avoir pensé à utiliser une structure de tableau de tableaux pour y stocker les caractéristiques des bulles : cela ressemble presque à des \"objets\" !...


username: nassime.boukari
codename: bulles_base
jour: 2023-09-14
heure: 10:56:28
ip: 172.22.98.168
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\nclass Bulle:\n\n	x = 0\n	y = 0\n	couleur = 0\n	taille = 0\n	vitesse = 0\n	\n	def __init__(self):\n		self.x = randint(10,590)\n		self.y = p5.height\n		self.couleur = randint(0,6)\n		self.taille = randint(10,20)\n		self.vitesse = randint(15,20)\n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global bulles\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.  \n	for bulle in bulles:\n		bulle.y -= bulle.vitesse//2\n		if bulle.y <=0:\n			bulle.__init__()\n			\n	# 3. Dessin de la bulle dans la fenêtre :\n		p5.fill(couleurs[bulle.couleur])\n		p5.ellipse(bulle.x - bulle.taille//2, bulle.y - bulle.taille//2, bulle.taille//2, bulle.taille//2)\n	\n\n# initialisation des caractéristiques de la bulle\nbulles = []\nfor i in range(50):\n	bulle = Bulle()\n	bulles.append(bulle)\n	print(bulle.couleur)\n	\np5.run(setup, draw)\n	\n	\n	\n	\n	\n			

comment:
  C"est compris, mais il y a un gros \"mix\" entre concepts POO et non/POO ( plus de \"global\" nécessaire)...La boucle de déplacement/affichage ( lignes 35 à 42 de ton code ) devrait correspondre à des METHODES de la classe \"Bulle\" ( et ça marche ! voir chez les autres...)


username: simon.krumb
codename: bulles_base
jour: 2023-09-14
heure: 10:58:04
ip: 172.22.99.28
code:
  from random import randint\nimport p5\n\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\n\ndef setup():\n	p5.createCanvas(600, 400)\n\nclass Boule():\n    def __init__(self) -> None:\n        self.x = randint(10,590)\n        self.y = p5.height\n        self.couleur = randint(0,6)\n        self.taille = randint(10,20)\n        self.vitesse = randint(15,20)\n\n    def move(self):\n         self.y -= self.vitesse\n\ndef draw():\n	global balleTab,couleurs\n    \n	p5.background(0)\n    \n	for i in range(len(balleTab)):\n		balleTab[i].move()\n\n		p5.fill(couleurs[balleTab[i].couleur])\n		p5.ellipse(balleTab[i].x - balleTab[i].taille//2, balleTab[i].y - balleTab[i].taille//2, balleTab[i].taille//2, balleTab[i].taille//2)\n		if balleTab[i].x < 0:\n			balleTab.pop(i)\n	balleTab.append(Boule())\n	print(len(balleTab))\n\np5.run(setup,draw)

comment:
  ça ne marche pas ( le tableau \"balleTab\" n"est jamais INTIALISE ).  \nTa classe \"Boule\" est incomplète : les instructions d"affichage ( lignes 30 ) devraient être une METHODE la classe.\nEnfin, plus de \"global\" en POO !


username: mathis.battistello
codename: bulles_base
jour: 2023-09-14
heure: 10:59:31
ip: 172.22.99.38
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	y -= vitesse\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.  \n	if y <= 0:\n		x = randint(10,590)\n		y = p5.height\n		couleur = randint(0,6)\n		taille = randint(10,20)\n		vitesse = randint(15,20)\n\n	# 3. Dessin de la bulle dans la fenêtre :\n	p5.fill(couleurs[couleur])\n	p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n\n# initialisation des caractéristiques de la bulle\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)	\n\np5.run(setup, draw)\n			

comment:
  Attention, la variable \"y\" doit aussi être GLOBALE dans la fonction \"draw\" ( on veut MODIFIER cette variable dans cette fonction ).


username: kai.djepaxhia
codename: bulles_base
jour: 2023-09-14
heure: 10:59:43
ip: 172.22.99.52
comment: OK. Et 2 bulles ? 3 Bulles ?
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	y -= vitesse\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.\n	if y <= 0:\n		x = randint(10,590)\n		y = p5.height\n		couleur = randint(0,6)\n		taille = randint(10,50)\n		vitesse = randint(1,20)\n	# 3. Dessin de la bulle dans la fenêtre :\n	p5.fill(couleurs[couleur])\n	p5.ellipse(x - taille//2, y - taille//2, taille//2,\ntaille//2)\n	\n\n\n# initialisation des caractéristiques de la bulle\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)	\n\np5.run(setup, draw)		\n					\n						


username: lucas.requena
codename: bulles_base
jour: 2023-09-14
heure: 11:00:15
ip: 172.22.99.54
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	y=y-vitesse\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.\n	if y<=0:\n		x = randint(10,590)\n		y = p5.height\n		couleur = randint(0,6)\n		taille = randint(10,20)\n		vitesse = randint(15,20)\n	# 3. Dessin de la bulle dans la fenêtre :\n		p5.fill(couleurs[couleur])\n		p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n	\n\n# initialisation des caractéristiques de la bulle\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)	\n\np5.run(setup, draw)\n					\n			

comment:
  Non fonctionnel : attention à l"indentation des lignes 28 et 29 : est-il logique que l"affichage ne se fasse QUE si la condition ligne 21 est vérifiée ?


username: nino.cuingnet
codename: bulles_base
jour: 2023-09-14
heure: 11:00:34
ip: 172.22.98.160
comment: TB ( et très joli :-)) !
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \ntab_bulle=[]\nfor i in range(50):\n	tab=[]\n	x = randint(10,590)\n	y = p5.height\n	couleur = randint(0,6)\n	taille = randint(10,30)\n	vitesse = randint(1,10)\n	tab=[x, y, couleur, taille, vitesse]\n	tab_bulle.append(tab)\nprint(tab_bulle)\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	for bulle in tab_bulle:\n		bulle[1]-=bulle[4]\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.  \n		if bulle[1]<=0:\n			bulle[0] = randint(10,590)\n			bulle[1] = p5.height\n			bulle[2] = randint(0,6)\n			bulle[3] = randint(10,30)\n			bulle[4] = randint(5,10)\n\n\n	# 3. Dessin de la bulle dans la fenêtre :\n		p5.fill(couleurs[bulle[2]])\n		p5.ellipse(bulle[0] - bulle[3]//2, bulle[1] - bulle[3]//2,bulle[3]//2, bulle[3]//2)\n\n# initialisation des caractéristiques de la bulle\n\np5.run(setup, draw)\n					\n			


username: lucas.delameziere
codename: bulles_base
jour: 2023-09-14
heure: 11:02:03
ip: 172.22.99.42
comment: OK
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse\n	global x2, y2, couleur2, taille2, vitesse2\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	y-=vitesse\n	y2-=vitesse2\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.  \n	if y<=0:\n		x = randint(10,590)\n		couleur = randint(0,6)\n		taille = randint(10,20)\n		vitesse = randint(15,20)\n		y = p5.height\n	\n	if y2<=0:\n		x2 = randint(10,590)\n		couleur2 = randint(0,6)\n		taille2 = randint(10,20)\n		vitesse2 = randint(15,20)\n		y2 = p5.height\n		\n\n	# 3. Dessin de la bulle dans la fenêtre :\n	\n	p5.fill(couleurs[couleur2])\n	p5.ellipse(x2 - taille2//2, y2 - taille2//2, taille2//2, taille2//2)\n	\n	p5.fill(couleurs[couleur])\n	p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n	\n# initialisation des caractéristiques de la bulle\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)	\n\nx2 = randint(10,590)\ny2 = p5.height\ncouleur2 = randint(0,6)\ntaille2 = randint(10,20)\nvitesse2 = randint(15,20)\np5.run(setup, draw)\n\n					\n			


username: simon.favreau
codename: bulles_base
jour: 2023-09-14
heure: 11:05:01
ip: 172.22.98.158
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse\n	global x2, y2, couleur2, taille2, vitesse2\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(255)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	y -= vitesse\n	y2 -= vitesse2\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.  \n	if y <= 0 :\n		x = randint(10,590)\n		y = p5.height\n		couleur = randint(0,6)\n		taille = randint(15,25)\n		vitesse = randint(5,30)\n\n	if y2 <= 0 :\n		x2 = randint(10,590)\n		y2 = p5.height\n		couleur2 = randint(0,6)\n		taille2 = randint(15,25)\n		vitesse2 = randint(5,30) \n\n	# 3. Dessin de la bulle dans la fenêtre :\n	p5.fill(couleurs[couleur])\n	p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n\n	p5.fill(couleurs[couleur2])\n	p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n\n\n# initialisation des caractéristiques de la bulle\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(5,30)	\n\np5.run(setup, draw)\n				\n

comment:
  Ok, mais il n"y a qu"une seule bulle à chaque fois : tu n"intiialises jamais les caractéristiques (x2, y2,...) de la deuxième bulle !


username: balthazar.mezoughi
codename: bulles_base
jour: 2023-09-14
heure: 11:10:12
ip: 172.22.99.26
comment: OK
code:
  import p5\nfrom random import randint\n \n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \n# fonction d"animation\ndef draw():\n	global x, y, couleur, taille, vitesse, x2, y2, couleur2, taille2, vitesse2, x3, y3, couleur3, taille3, vitesse3\n \n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n \n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n	y -= vitesse\n	y2 -= vitesse2\n	y3 -= vitesse3\n	\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.  \n	if y <= 0:\n		var()\n	if y2 <= 0:\n		var2()\n	if y3 <= 0:\n		var3()\n		\n	# 3. Dessin de la bulle dans la fenêtre :\n	p5.fill(couleurs[couleur])\n	p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n	p5.fill(couleurs[couleur2])\n	p5.ellipse(x2 - taille2//2, y2 - taille2//2, taille2//2, taille2//2)\n	p5.fill(couleurs[couleur3])\n	p5.ellipse(x3 - taille3//2, y3 - taille3//2, taille3//2, taille3//2)\n	\n# initialisation des caractéristiques de la bulle\ndef var():\n	global x, y, couleur, taille, vitesse\n	x = randint(10,590)\n	y = p5.height\n	couleur = randint(0,6)\n	taille = randint(10,20)\n	vitesse = randint(15,20)\n	\ndef var2():\n	global x2, y2, couleur2, taille2, vitesse2\n	x2 = randint(10,590)\n	y2 = p5.height\n	couleur2 = randint(0,6)\n	taille2 = randint(10,20)\n	vitesse2 = randint(15,20)\n                      \ndef var3():\n	global x3, y3, couleur3, taille3, vitesse3\n	x3 = randint(10,590)\n	y3 = p5.height\n	couleur3 = randint(0,6)\n	taille3 = randint(10,20)\n	vitesse3 = randint(15,20)\n\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)\nx2 = randint(10,590)\ny2 = p5.height\ncouleur2 = randint(0,6)\ntaille2 = randint(10,20)\nvitesse2 = randint(15,20)\nx3 = randint(10,590)\ny3 = p5.height\ncouleur3 = randint(0,6)\ntaille3 = randint(10,20)\nvitesse3 = randint(15,20)\n	\np5.run(setup, draw)\n


username: lucas.requena
codename: classe_bulle
jour: 2023-09-14
heure: 11:32:18
ip: 172.22.99.54
comment: OK. Mais alors, à quoi servent les PARAMETRES du constructeur ( __init__ ) de la classe Bulle ?
code:
  import p5\nfrom random import randint\n\nclass Bulle:\n\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x = randint(10,590)\n		self.y = p5.height\n		self.couleur = randint(0,6)\n		self.taille = randint(10,20)\n		self.vitesse = randint(15,20)\n\n	# méthode d"affichage\n	def afficher(self):\n		p5.background(0)\n		self.couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[couleur])\n		p5.ellipse(x - taille//2, y - taille//2, taille//2, taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		y=y-vitesse\n		if y<=0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n


username: lucas.delameziere
codename: classe_bulle
jour: 2023-09-14
heure: 11:35:49
ip: 172.22.99.42
comment: OK
code:
  import p5\nfrom random import randint\nclass Bulle:\n\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x=x\n		self.y=y\n		self.couleur=couleur\n		self.taille=taille\n\n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		self.y-=self.vitesse\n		if self.y<=5:\n			x = randint(10,590)\n			y = p5.height\n			couleur = randint(0,6)\n			taille = randint(10,20)\n			vitesse = randint(15,20)\n\n###############################		\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n		\nx = randint(10,590)\ny = p5.height\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)\n\np5.run(setup,draw)


username: emilien.raymond
codename: instanciation_bulle
jour: 2023-09-14
heure: 11:36:20
ip: 172.22.99.34
comment: TB
code:
  import p5 \nfrom random import randint\n\nclass Bulle:\n\n	# constructeur\n	def __init__(self, x, y, taille, vitesse, couleur):\n		self.x = x\n		self.y = y\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n\n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y < 0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,30)\n			self.vitesse = randint(5,15)\n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n\n	# effacement de la fenêtre\n	p5.background(0)\n	# Déplacement, puis affichage de la/des bulle(s) :\n	for i in range(len(bulles)):\n		\n		bulles[i].monter()\n		bulles[i].afficher()\n\n# PROGRAMME PRINCIPAL    \n\n# instanciation de la/des bulle(s) :\nbulles=[]\nfor i in range(50):\n	bulles.append(Bulle(randint(10,590),p5.height,randint(10,30),randint(5,15),randint(0,6)))\n	\n\n# lancement de l"animation :\np5.run(setup, draw)\n			\n			


username: nino.cuingnet
codename: classe_bulle
jour: 2023-09-14
heure: 11:41:06
ip: 172.22.98.160
comment: TB
code:
  import p5\nfrom random import randint\n\nclass Bulle:\n\n	# constructeur\n	def __init__(self, x, y, taille, vitesse, couleur):\n		self.x = x\n		self.y = y\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n\n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y <= 0:\n			self.x = randint(10, 590)\n			self.y = p5.height\n			self.couleur = randint(0, 6)\n			self.taille = randint(10, 30)\n			self.vitesse = randint(5, 15)\n\n\ndef setup():\n	p5.createCanvas(600, 400)\n\ndef draw():\n	p5.background(0)\n	for i in range(len(bulles)):\n		bulles[i].monter()\n		bulles[i].afficher()\n	\nbulles = []\nfor i in range(100):\n	bulles.append(Bulle(randint(10,590), p5.height, randint(10,30), randint(5, 15), randint(0, 6)))\n\n\np5.run(setup, draw)


username: simon.favreau
codename: classe_bulle
jour: 2023-09-14
heure: 11:41:41
ip: 172.22.98.158
code:
  import p5\nfrom random import randint\n\nclass Bulle:\n	\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x = x\n		self.y = p5.height\n		self.taille = taille\n		self.vitesse = vitesse\n		self.couleur = couleur\n\n	# méthode d"affichage\n	def afficher(self):\n		p5.createCanvas(600, 400)\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - 	self.taille//2, self.taille//2, self.taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		p5.background(0)\n		\n		self.y -= vitesse\n		\n		if self.y <= 0 :\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n			self.couleur = randint(0,6)\n			\n		self.x = randint(10,590)\n		self.taille = randint(10,20)\n		self.vitesse = randint(15,20)\n		self.couleur = randint(0,6)\n\n			\n			

comment:
  OK. Mais alors, à quoi servent les PARAMETRES du constructeur ( __init__ ) de la classe Bulle ?\nAttention à l"indentation des lignes 34 à 37 !!!


username: emilien.raymond
codename: classe_bulle
jour: 2023-09-14
heure: 11:42:14
ip: 172.22.99.34
comment: TB
code:
  class Bulle:\n\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x = x\n		self.y = p5.height\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n\n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y < 0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,30)\n			self.vitesse = randint(5,15)\n			\n			


username: nino.cuingnet
codename: instanciation_bulle
jour: 2023-09-14
heure: 11:46:09
ip: 172.22.98.160
comment: TB
code:
  import p5 \nfrom random import randint\n\nclass Bulle:\n\n	# Code ci-dessus\n	def __init__(self, x, y, taille, vitesse, couleur):\n		self.x = x\n		self.y = y\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y <= 0:\n			self.x = randint(10, 590)\n			self.y = p5.height\n			self.couleur = randint(0, 6)\n			self.taille = randint(10, 30)\n			self.vitesse = randint(5, 15)\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n\n	 # effacement de la fenêtre\n	p5.background(0)\n    \n    # Déplacement, puis affichage de la/des bulle(s) :\n	for i in range(len(bulles)):\n		bulles[i].monter()\n		bulles[i].afficher()\n\n# PROGRAMME PRINCIPAL    \n# instanciation de la/des bulle(s) :\nbulles = []\nfor i in range(100):\n	bulles.append(Bulle(randint(10,590), p5.height, randint(10,30), randint(5, 15), randint(0, 6)))\n\n# lancement de l"animation :\np5.run(setup, draw)\n			\n			


username: mathis.battistello
codename: classe_bulle
jour: 2023-09-14
heure: 11:53:05
ip: 172.22.99.38
code:
  import p5\nfrom random import randint\n\nclass Bulle:\n\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x = x\n		self.y = p5.height\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse	\n\n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n		p5.background(0)\n\n	# méthode de déplacement\n	def monter(self):\n		self.y -= vitesse\n		if self.y <= 0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n\n

comment:
  OK. Mais alors, à quoi servent les PARAMETRES du constructeur ( __init__ ) de la classe Bulle ? Attention ligne 17 : la VARIABLE couleur n"existe pas dans la classe, mais l"ATTRIBUT self.couleur, oui !!


username: lucas.delameziere
codename: instanciation_bulle
jour: 2023-09-14
heure: 11:57:41
ip: 172.22.99.42
comment: Et oui, l"attribut \"self.vitesse\" n"est pas INITIALISE dans le constructeur...
code:
  import p5 \nfrom random import randint\n\nclass Bulle:\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x=x\n		self.y=y\n		self.couleur=couleur\n		self.taille=taille\n\n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n	\n	# méthode de déplacement\n	def monter(self):\n		self.y-=self.vitesse\n		if self.y<=0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n\n\n	p5.background(0)\n	bulle1.monter()\n	bulle1.afficher()\n	\n\n# PROGRAMME PRINCIPAL    \n\n# instanciation de la/des bulle(s) :\nbulle1=Bulle(randint(10,590),randint(10,20),randint(15,20),randint(0,6))\n\n# lancement de l"animation :\np5.run(setup, draw)\n\n			


username: simon.favreau
codename: instanciation_bulle
jour: 2023-09-14
heure: 11:57:49
ip: 172.22.98.158
code:
  import p5 \nfrom random import randint\n\nclass Bulle:\n\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x = x\n		self.y = p5.height\n		self.taille = taille\n		self.vitesse = vitesse\n		self.couleur = couleur\n\n	# méthode d"affichage\n	def afficher(self):\n		p5.createCanvas(600, 400)\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - 	self.taille//2, self.taille//2, self.taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		p5.background(0)\n		\n		self.y -= vitesse\n		\n		if self.y <= 0 :\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n			self.couleur = randint(0,6)\n			\n		self.x = randint(10,590)\n		self.taille = randint(10,20)\n		self.vitesse = randint(15,20)\n		self.couleur = randint(0,6)\n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n\n	p5.background(0)\n	\n	bulle1.afficher()   \n	bulle1.monter()\n	\n\n# PROGRAMME PRINCIPAL    \n\n# instanciation de la/des bulle(s) :\nbulle1 = Bulle(randint(10,590), randint(10,20), randint(15,20), randint(0, 6))\n\n# lancement de l"animation :\n\np5.run(setup, draw)\n\nx = randint(10,590)\ny = p5.height\ntaille = randint(10,20)\nvitesse = randint(15,20)\ncouleur = randint(0,6)		

comment:
  Attention à l"indentation ! Dans la méthode \"monter\", tu réinitialises TOUTES les caractéristiques de la bulle à CHAQUE \"tour\" de la fonction \"draw\"...


username: suzie.douine
codename: classe_bulle
jour: 2023-09-14
heure: 11:59:19
ip: 172.22.99.39
code:
  import p5\nfrom random import randint\n\nclass Bulle:\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x=x\n		self.y=p5.height\n		self.couleur=couleur\n		self.vitesse=vitesse\n		self.taille=taille\n		\n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n\n	# méthode de déplacement\n	def monter(self):\n		self.y-=self.vitesse\n		if self.y<=0:\n			self.y=p5.height\n\n\ndef setup():\n	p5.createCanvas(600, 400)\n\ndef draw():\n	p5.background(0)\n	for bulle in bulles:\n		\n		bulle.afficher()\n		bulle.monter()\n\n		\nbulles=[]\nfor i in range(50):\n	bulle = Bulle(randint(10,590),randint(10,20),randint(15,20),randint(0,7))\n	bulles.append(bulle)\n\np5.run(setup, draw)			

comment:
  Attention à la synatxe de la fonction \"randint\" : la dernière borne est INCLUSE dans l"intervalle ( pas comme un \"range\"...)


username: balthazar.mezoughi
codename: classe_bulle
jour: 2023-09-14
heure: 12:02:09
ip: 172.22.99.26
comment: Bien. Et maintenant, on met tous ces objets dans un tableau...
code:
  import p5\nfrom random import randint\n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \nclass Bulle:\n \n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		# initialisation des caractéristiques de la bulle\n		self.x = x\n		self.y = p5.height\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n \n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n \n	# méthode de déplacement\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y <= 0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n \n \ndef draw():\n \n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n \n	bulle1.monter()\n	bulle1.afficher()\n \n	bulle2.monter()\n	bulle2.afficher()\n \n	bulle3.monter()\n	bulle3.afficher()\n \n	bulle4.monter()\n	bulle4.afficher()\n \n	bulle5.monter()\n	bulle5.afficher()\n \n	bulle6.monter()\n	bulle6.afficher()\n \n	bulle7.monter()\n	bulle7.afficher()\n \n	bulle8.monter()\n	bulle8.afficher()\n \n	bulle9.monter()\n	bulle9.afficher()\n \n	bulle10.monter()\n	bulle10.afficher()\n \n	bulle11.monter()\n	bulle11.afficher()\n \n	bulle12.monter()\n	bulle12.afficher()\n \n	bulle13.monter()\n	bulle13.afficher()\n \n	bulle14.monter()\n	bulle14.afficher()\n \n	bulle15.monter()\n	bulle15.afficher()\n \nx = randint(10,590)\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(15,20)\n \nbulle1 = Bulle(x, taille, vitesse, couleur)\nbulle2 = Bulle(x, taille, vitesse, couleur)\nbulle3 = Bulle(x, taille, vitesse, couleur)\nbulle4 = Bulle(x, taille, vitesse, couleur)\nbulle5 = Bulle(x, taille, vitesse, couleur)\nbulle6 = Bulle(x, taille, vitesse, couleur)\nbulle7 = Bulle(x, taille, vitesse, couleur)\nbulle8 = Bulle(x, taille, vitesse, couleur)\nbulle9 = Bulle(x, taille, vitesse, couleur)\nbulle10 = Bulle(x, taille, vitesse, couleur)\nbulle11 = Bulle(x, taille, vitesse, couleur)\nbulle12 = Bulle(x, taille, vitesse, couleur)\nbulle13 = Bulle(x, taille, vitesse, couleur)\nbulle14 = Bulle(x, taille, vitesse, couleur)\nbulle15 = Bulle(x, taille, vitesse, couleur)\n \np5.run(setup, draw)\n 


username: simon.krumb
codename: classe_bulle
jour: 2023-09-15
heure: 14:31:02
ip: 172.22.98.184
comment: TB
code:
  from random import randint\nimport p5\n\n# Initialize an empty list to store the balls.\n\ndef setup():\n    p5.createCanvas(600, 400)\n\nclass Boule():\n    def __init__(self, x, couleur,taille,vitesse) -> None:\n        self.x = x\n        self.y = p5.height\n        self.couleur = couleur\n        self.taille = taille\n        self.vitesse = vitesse\n\n    def move(self):\n        self.y -= self.vitesse\n        if self.y < 0:\n            self.__init__(randint(10, 590),randint(0, 6),randint(10, 20),randint(5, 20))\n\n    def show(self):\n        couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n\n        p5.fill(couleurs[self.couleur])\n        p5.ellipse(self.x - self.taille // 2, self.y - self.taille // 2, self.taille // 2, self.taille // 2)\n\ndef draw():\n\n    p5.background(0)\n\n    for i in range(len(balleTab)):\n        balleTab[i].move()\n        balleTab[i].show()\n\n\n\nballeTab = [Boule(randint(10, 590),randint(0, 6),randint(10, 20),randint(5, 20)) for i in range(50)]\n\n	\np5.run(setup, draw)


username: balthazar.mezoughi
codename: instanciation_bulle
jour: 2023-09-15
heure: 14:59:18
ip: 172.22.98.198
comment: Bien. Les lignes 45 à 48 sont maintenant inutiles...
code:
  import p5\nfrom random import randint\n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \nclass Bulle:\n \n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		# initialisation des caractéristiques de la bulle\n		self.x = x\n		self.y = p5.height\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n \n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n \n	# méthode de déplacement\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y <= 0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n \n \ndef draw():\n \n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n \n	for i in range(len(bulles)):\n		bulles[i].monter()\n		bulles[i].afficher()\n\nx = randint(10,590)\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(5,50)\n \nbulles=[Bulle(randint(10, 560), randint(10, 20), randint(5, 20), randint(0, 6)) for i in range(100)]\n\np5.run(setup, draw)\n 


username: jc.bethgnies
codename: classe_bulle
jour: 2023-09-15
heure: 15:02:23
ip: 172.22.98.184
comment: OK
code:
  import p5\nfrom random import randint\n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \nclass Bulle:\n \n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		# initialisation des caractéristiques de la bulle\n		self.x = x\n		self.y = p5.height\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n \n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n \n	# méthode de déplacement\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y <= 0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(15,20)\n \n \ndef draw():\n \n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n \n	for i in range(len(bulles)):\n		bulles[i].monter()\n		bulles[i].afficher()\n \nx = randint(10,590)\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(5,50)\n \nbulles=[Bulle(randint(10, 560), randint(1, 5), randint(5, 20), randint(0, 6)) for i in range(100)]\n \np5.run(setup, draw)\n 


username: jc.bethgnies
codename: instanciation_bulle
jour: 2023-09-15
heure: 15:09:29
ip: 172.22.98.184
comment: OK
code:
  import p5\nfrom random import randint\n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \nclass Bulle:\n \n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		# initialisation des caractéristiques de la bulle\n		self.x = x\n		self.y = p5.height\n		self.couleur = couleur\n		self.taille = taille\n		self.vitesse = vitesse\n \n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n \n	# méthode de déplacement\n	def monter(self):\n		self.y -= self.vitesse\n		if self.y <= 0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(1,20)\n \n \ndef draw():\n \n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n \n	for i in range(len(bulles)):\n		bulles[i].monter()\n		bulles[i].afficher()\n \nx = randint(10,590)\ncouleur = randint(0,6)\ntaille = randint(10,20)\nvitesse = randint(5,50)\n \nbulles=[Bulle(randint(10, 560), randint(1, 5), randint(5, 20), randint(0, 6)) for i in range(100)]\n \np5.run(setup, draw)\n 


username: emilien.raymond
codename: balles_rebonds
jour: 2023-09-15
heure: 15:29:41
ip: 172.22.98.209
comment: TB !
code:
  import p5\nfrom math import sqrt\nfrom random import randint\n\nclass Balle:\n  # constructor\n	def __init__(self, x, y, color, size, vx, vy):\n		self.x = x \n		self.y = y \n		self.color = color \n		self.size = size \n		self.vx = vx \n		self.vy = vy \n	# display method\n	def affiche(self):\n		colors = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n		p5.fill(colors[self.color])\n		p5.ellipse(self.x, self.y, self.size)\n\n	# motion method in the box\n	def move(self):\n		self.x += self.vx\n		self.y += self.vy\n  \n  	# rebound method\n	def rebonds(self, other_ball):\n		if self.x < self.size/2 or self.x > 600-self.size/2:\n			self.vx = -self.vx\n		elif self.y < self.size/2 or self.y > 400-self.size/2:\n			self.vy = -self.vy\n		if (self.size/2 + other_ball.size/2) >= sqrt((self.x-other_ball.x)**2+(self.y-other_ball.y)**2):\n			self.vx = -self.vx\n			self.vy = -self.vy\n			other_ball.vx = -other_ball.vx\n			other_ball.vy = -other_ball.vy\n\n		\n\n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n# fonction d"animation\ndef draw():\n	# effacement des balles :\n	p5.background(0)\n\n	# Déplacement des balles :\n	balle1.move()\n	\n	\n	# Gestion des rebonds :\n	balle1.rebonds(balle2)\n	\n	\n	balle1.affiche()\n	\n	balle2.move()\n	\n	balle2.rebonds(balle1)\n	\n	balle2.affiche()\n	\n# PROGRAMME PRINCIPAL\n\n# instanciation des balles\n# Conseils\n# pour la taille : entre 50 et 100 pixels\n# pour la vitesse initiale : entre 5 et 10\n\nballe1 = Balle(randint(0,600),randint(0,400),randint(0,6),randint(50,75),randint(1,4),randint(1,4))\nballe2 = Balle(randint(0,600),randint(0,400),randint(0,6),randint(50,75),randint(1,4),randint(1,4))\n\np5.run(setup, draw)	\n			\n			


username: simon.krumb
codename: balles_rebonds
jour: 2023-09-15
heure: 15:53:07
ip: 172.22.99.31
comment: TB ( et très joli :-))
code:
  import p5\nfrom math import sqrt\nfrom random import randint\n\nclass Balle:\n\n    # constructeur\n    def __init__(self, x, y, couleur, taille, vx, vy):\n        self.x = x  # position horizontale\n        self.y = y  # position verticale\n        self.couleur = couleur  # indice de la couleur dans la liste "couleurs"\n        self.taille = taille  # taille\n        self.vx = vx  # vitesse horizontale\n        self.vy = vy  # vitesse verticale\n    \n    # méthode d"affichage\n    def affiche(self):\n        couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n        p5.fill(couleurs[self.couleur])\n        p5.ellipse(self.x, self.y, self.taille)\n    \n    # méthode de déplacement dans la boîte\n    def move(self):\n        if self.x - self.taille // 2 <= 0 or self.x + self.taille // 2 >= 600:\n            self.vx = -self.vx\n\n        if self.y - self.taille // 2 <= 0 or self.y + self.taille // 2 >= 400:\n            self.vy = -self.vy\n\n        self.x += self.vx\n        self.y += self.vy\n\n    # méthode de rebond des balles l"une sur l"autre\n    def rebonds(self, autre_balle):\n        distance = sqrt((self.x - autre_balle.x)**2 + (self.y - autre_balle.y)**2)\n\n        if distance <= (self.taille + autre_balle.taille) / 2:\n            self.vy = -self.vy\n            self.vx = -self.vx\n\n            autre_balle.vy = -autre_balle.vy\n            autre_balle.vx = -autre_balle.vx\n\n# fonction de mise en place\ndef setup():\n    p5.createCanvas(600, 400)\n\n# fonction d"animation\ndef draw():\n    # Effacement des balles :\n    p5.background(0)\n\n\n    for i in range(len(balls)):\n        balls[i].move()\n\n    for i in range(len(balls)-1):\n        for j in range(i,len(balls)):\n            balls[i].rebonds(balls[j])\n\n\n\n    for i in range(len(balls)):\n        balls[i].affiche()\n    # Pour chacune des deux balles successivement :\n    # - on déplace la balle\n\n    # - on teste si il y a rebond sur l"autre balle\n    # - on affiche la balle\n\n\n# PROGRAMME PRINCIPAL\n\n# instanciation des balles\n# Conseils :\n# pour la taille : entre 50 et 100 pixels\n# pour la vitesse initiale : entre 5 et 10\n\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n\nballs = [Balle(randint(50, 550), randint(50, 350), randint(0, 6), randint(5, 15), randint(1,3), randint(1,3)) for i in range(100)]\n\n\n\np5.run(setup, draw)\n


username: mathis.battistello
codename: instanciation_bulle
jour: 2023-09-15
heure: 15:53:23
ip: 172.22.99.38
comment: OK
code:
  import p5 \nfrom random import randint\n \nclass Bulle:\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x=x\n		self.couleur=couleur\n		self.taille=taille\n		self.vitesse=vitesse\n		self.y=p5.height\n \n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n \n	# méthode de déplacement\n	def monter(self):\n		self.y-=self.vitesse\n		if self.y<=0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(5,20)\n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \n# fonction d"animation\ndef draw():\n \n \n	p5.background(0)\n	for obj in bulles:\n		obj.monter()\n		obj.afficher()\n \n# PROGRAMME PRINCIPAL    \n \n# instanciation de la/des bulle(s) :\nbulles=[Bulle(randint(10,590),randint(10,20),randint(5,20),randint(0,6)) for i in range(50)]\n \n# lancement de l"animation :\np5.run(setup, draw)\n \n \n			


username: nassime.boukari
codename: balles_rebonds
jour: 2023-09-15
heure: 15:53:56
ip: 172.22.98.182
comment: OK
code:
  from tkinter import *\nfrom random import randint\nfrom math import sqrt\n\nclass Balle:\n\n    # constructeur\n    def __init__(self, x, y, couleur, taille, vx, vy):\n        self.x = x # position horizontale\n        self.y = y # position verticale\n        self.couleur = couleur # indice de la couleur dans la liste "couleurs"\n        self.taille = taille # taille\n        self.vx = vx # vitesse horizontale\n        self.vy = vy # vitesse verticale\n\n    # méthode d"affichage ( NE PAS MODIFIER )\n    def affiche(self):\n        couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n        self.forme = can.create_oval(self.x - self.taille//2, self.y - self.taille//2, self.x + self.taille//2, self.y + self.taille//2,fill=couleurs[self.couleur])\n\n    # méthodes de déplacement dans la boîte\n    def move(self):\n        self.x += self.vx\n        self.y += self.vy\n\n        if self.x >= 600 or self.x <= 0:\n            self.vx = -self.vx\n        if self.y >= 400 or self.y <= 0:\n            self.vy = -self.vy\n\n        for balle in balles:\n            distance = sqrt((self.x - balle.x)**2 + (self.y - balle.y)**2)\n            distmin = (self.taille + balle.taille)//2\n            if distance <= distmin:\n                self.rebonds(balle)\n\n\n    # méthodes de rebonds des balles l"une sur l"autre\n    def rebonds(self, autre_balle):\n        self.vx = -self.vx\n        self.vy = -self.vy\n        autre_balle.vx = -autre_balle.vx\n        autre_balle.vy = -autre_balle.vy\n\n# fonction d"animation\ndef anim():\n    can.delete("all") # effacement des bulles\n\n    for balle in balles:\n        balle.affiche()\n        balle.move()\n\n    fen.after(20,anim) # appel toutes les XX millisecondes\n\n# définition de la fenêtre\nfen = Tk()\nfen.title("Balles !")\ncan = Canvas(fen, width = 600, height = 400, background="black")\ncan.pack()\n\n# instanciation des balles\n# Conseils\n# pour la taille : entre 50 et 100 pixels\n# pour la vitesse initiale : entre 5 et 10\n\nballes = []\nfor i in range(28):\n    balles.append(Balle(randint(0,599), randint(0,400), randint(0,6), randint(50, 100), randint(5,10), randint(5,10)))\n\nanim() # lancement de l"animation\n\n\nfen.mainloop()\n\n


username: suzie.douine
codename: balles_rebonds
jour: 2023-09-15
heure: 15:55:04
ip: 172.22.99.39
code:
  import p5\nfrom math import sqrt\n\nclass Balle:\n\n    # constructeur\n    def __init__(self, x, y, couleur, taille, vx, vy):\n        self.x = x # position horizontale\n        self.y = y # position verticale\n        self.couleur = couleur # indice de la couleur dans la liste "couleurs"\n        self.taille = taille # taille\n        self.vx = vx # vitesse horizontale\n        self.vy = vy # vitesse verticale\n    \n    def affiche(self):\n        couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n        p5.fill(couleurs[self.couleur])\n        p5.ellipse(self.x, self.y, self.taille)\n        \n        \n    def move(self):\n        self.y+=self.vy\n        self.x+=self.vx\n        if self.y<=0 or self.y>=400:\n            self.vy=-self.vy\n        if self.x<=0 or self.x>=600:\n            self.vx=-self.vx\n		for balle in balles:\n			distance=sqrt(self.)\n        # j"ai pas eu le temps de terminer\n		\n    def rebonds(self, autre_balle):\n        pass\n\n# fonction de mise en place\ndef setup():\n    p5.createCanvas(600, 400)\n\n# fonction d"animation\ndef draw():\n    p5.background(0)\n    for balle in balles:\n        balle.move()\n        balle.affiche()\n\n\n\n# PROGRAMME PRINCIPAL\n\n# instanciation des balles\nballes=[]\nfor i in range(2):\n    balle = Balle(randint(10,590),randint(10,390),randint(0,6),randint(50,100),randint(5,10),randint(5,10))\n    balles.append(balle)\n# Conseils :\n# pour la taille : entre 50 et 100 pixels\n# pour la vitesse initiale : entre 5 et 10\n\n\np5.run(setup, draw)

comment:
  Il y a des problèmes d"indentation dans ton code...ce n"est pas forcément de ta faute, mais pense à les corriger


username: nino.cuingnet
codename: balles_rebonds
jour: 2023-09-16
heure: 14:03:24
ip: 91.163.71.134
comment: TB
code:
  import p5\nfrom math import sqrt\nfrom random import randint\n\nclass Balle:\n\n    # constructeur\n	def __init__(self, x, y, couleur, taille, vx, vy):\n		self.x = x # position horizontale\n		self.y = y # position verticale\n		self.couleur = couleur # indice de la couleur dans la liste "couleurs"\n		self.taille = taille # taille\n		self.vx = vx # vitesse horizontale\n		self.vy = vy # vitesse verticale\n\n        # méthode d"affichage\n	def affiche(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x, self.y, self.taille)\n\n        # méthode de déplacement dans la boîte\n	def move(self):\n		self.x += self.vx\n		self.y += self.vy\n		if self.x < self.taille/2 or self.x > 600-self.taille/2:\n			self.vx = -self.vx\n		if self.y < self.taille/2 or self.y > 400-self.taille/2:\n			self.vy = -self.vy\n        # méthode de rebond des balles l"une sur l"autre\n	def rebonds(self, other_ball):\n		if sqrt((self.x-other_ball.x)**2 +(self.y-other_ball.y)**2) < self.taille/2 + other_ball.taille/2:\n			self.vx, self.vy = -self.vx, -self.vy\n# fonction de mise en place\ndef setup():\n    p5.createCanvas(600, 400)\n\n# fonction d"animation\ndef draw():\n    # Effacement des balles :\n	p5.background(0)\n\n    # Pour chacune des deux balles successivement :\n    # - on déplace la balle\n	balle1.move()\n	balle1.rebonds(balle2)\n	balle1.affiche()\n\n    # - on teste si il y a rebond sur l"autre balle\n\n\n    # - on affiche la balle\n	balle2.move()\n	balle2.rebonds(balle1)\n	balle2.affiche()\n\n# PROGRAMME PRINCIPAL\n\n# instanciation des balles\nballe1 = Balle(randint(50,550), randint(50, 350), randint(0, 6), 75, randint(-5, 5), randint(-5, 5))\nballe2 = Balle(randint(50,550), randint(50, 350), randint(0, 6), 75, randint(-5, 5), randint(-5, 5))\n# Conseils :\n# pour la taille : entre 50 et 100 pixels\n# pour la vitesse initiale : entre 5 et 10\n\n\n\np5.run(setup, draw)\n


username: nino.cuingnet
codename: fontaine_coloree
jour: 2023-09-16
heure: 14:34:04
ip: 91.163.71.134
comment: Très bien
code:
  import p5\nfrom random import randint\n\nclass Balle:\n	def __init__(self, x, y, couleur, taille, vx, vy):\n		self.x = x\n		self.y = y\n		self.couleur = couleur # indice de la couleur dans la liste "couleurs"\n		self.taille = taille\n		self.vx = vx # vitesse horizontale initiale ( vers la gauche ou la droite )\n		self.vy = vy # vitesse verticale initiale ( vers le haut ! )\n\n	def affiche(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x, self.y, self.taille)\n		\n	def move(self):\n		self.vy = self.vy + 10*60*10**-3\n		self.y += self.vy\n		self.x += self.vx\n		if self.y > 400:\n			self.x = 300\n			self.y = 400\n			self.couleur = randint(0, 6) \n			self.taille = randint(2, 10)\n			self.vx = randint(-5, 5)\n			self.vy = randint(-20, -5)\ndef setup():\n	p5.createCanvas(600, 400)\n\ndef draw():\n	p5.background(0)\n	for i in range(len(balle)):\n		balle[i].move()\n		balle[i].affiche()\n# instanciation des balles\n# Quelques valeurs \"qui vont bien\" :\n# position initiale en bas au milieu de la fenêtre, soit x = 300 et y = 400\n# taille entre 2 et 10 pixels\n# vx entre -5 et 5\n# vy entre -30 et -10\nballe = []\nfor i in range(100):\n	balle.append(Balle(300, 400, randint(0,6), randint(2, 10), randint(-5, 5), randint(-20, -5)))\n\np5.run(setup, draw)\n


username: lucas.delameziere
codename: balles_rebonds
jour: 2023-09-17
heure: 14:24:02
ip: 81.220.5.0
comment: TB
code:
  import p5\nfrom math import sqrt\nfrom random import randint\n\nclass Balle:\n\n	# constructeur\n	def __init__(self, x, y, couleur, taille, vx, vy):\n		self.x = x # position horizontale\n		self.y = y # position verticale\n		self.couleur = couleur # indice de la couleur dans la liste "couleurs"\n		self.taille = taille # taille\n		self.vx = vx # vitesse horizontale\n		self.vy = vy # vitesse verticale\n    \n        # méthode d"affichage\n	def affiche(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x, self.y, self.taille)\n    \n        # méthode de déplacement dans la boîte\n	def move(self):\n		self.x+=self.vx\n		self.y+=self.vy\n		if self.x>=600 or self.x<=0:\n			self.vx=-self.vx\n		if self.y>=400 or self.y<=0:\n			self.vy=-self.vy\n    \n        # méthode de rebond des balles l"une sur l"autre\n	def rebonds(self, autre_balle):\n		if sqrt((self.x-autre_balle.x)**2+(self.y-autre_balle.y)**2)<self.taille:\n			self.vy=-self.vy\n			self.vx=-self.vx\n			autre_balle.vy=-autre_balle.vy\n			autre_balle.vx=-autre_balle.vx\n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n\n# fonction d"animation\ndef draw():\n	# Effacement des balles :\n	p5.background(0)\n\n	# Pour chacune des deux balles successivement :\n	# - on déplace la balle\n	# - on teste si il y a rebond sur l"autre balle\n	# - on affiche la balle\n	for i in range(len(balles)):\n		balles[i].move()\n		balles[i].affiche()\n		if i ==0:    \n			balles[i].rebonds(balles[1])\n		if i ==1:    \n			balles[i].rebonds(balles[0])\n        \n# PROGRAMME PRINCIPAL\nballes=[Balle(randint(0,600),randint(0,300),randint(0,6),85,randint(3,10),randint(3,10)) for i in range(2)]\n# instanciation des balles\n# Conseils :\n# pour la taille : entre 50 et 100 pixels\n# pour la vitesse initiale : entre 5 et 10\n\n\np5.run(setup, draw)\n			


username: simon.favreau
codename: balles_rebonds
jour: 2023-09-18
heure: 18:44:59
ip: 92.157.106.119
comment: TB
code:
  import p5\nfrom math import sqrt\nfrom random import randint\n \nclass Balle:\n \n	# constructeur\n	def __init__(self, x, y, couleur, taille, vx, vy):\n		self.x = x # position horizontale\n		self.y = y # position verticale\n		self.couleur = couleur # indice de la couleur dans la liste "couleurs"\n		self.taille = taille # taille\n		self.vx = vx # vitesse horizontale\n		self.vy = vy # vitesse verticale\n \n        # méthode d"affichage\n	def affiche(self):\n			couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n			p5.fill(couleurs[self.couleur])\n			p5.ellipse(self.x, self.y, self.taille)\n \n		# méthode de déplacement dans la boîte\n	def move(self):\n		self.x += self.vx\n		self.y += self.vy\n		if self.x >= 600 or self.x <= 0:\n			self.vx = -self.vx\n		if self.y >= 400 or self.y <= 0:\n			self.vy = -self.vy\n		# méthode de rebond des balles l"une sur l"autre\n	def rebonds(self, autre_balle):\n		if sqrt((self.x-autre_balle.x)**2+(self.y-autre_balle.y)**2)<self.taille:\n			self.vy=-self.vy\n			self.vx=-self.vx\n			autre_balle.vy=-autre_balle.vy\n			autre_balle.vx=-autre_balle.vx\n \n# fonction de mise en place\ndef setup():\n    p5.createCanvas(600, 400)\n \n# fonction d"animation\ndef draw():\n	# Effacement des balles :\n	p5.background(0)\n \n	# Pour chacune des deux balles successivement :\n	# - on déplace la balle\n	# - on teste si il y a rebond sur l"autre balle\n	# - on affiche la balle\n	for i in range(len(balle1)) :\n		balle1[i].move()\n		balle1[i].affiche()\n		if i == 0 :\n			balle1[i].rebonds(balle1[1])\n		else :\n			 balle1[i].rebonds(balle1[0])\n \n# PROGRAMME PRINCIPAL\n \n# instanciation des balles\nballe1 = [Balle(randint(10,590),randint(0,300),  randint(0,6), 84, 5, 5) for i in range(2)]\n# Conseils :\n# pour la taille : entre 50 et 100 pixels\n# pour la vitesse initiale : entre 5 et 10\n \n \n \np5.run(setup, draw)


username: kai.djepaxhia
codename: balles_rebonds
jour: 2023-09-18
heure: 23:08:23
ip: 91.165.39.139
code:
  import p5\nfrom math import sqrt\n\nclass Balle:\n\n    # constructeur\n    def __init__(self, x, y, couleur, taille, vx, vy):\n        self.x = x  # position horizontale\n        self.y = y  # position verticale\n        self.couleur = couleur  # indice de la couleur dans la liste "couleurs"\n        self.taille = taille  # taille\n        self.vx = vx  # vitesse horizontale\n        self.vy = vy  # vitesse verticale\n\n    # méthode d"affichage\n    def affiche(self):\n        couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n        p5.fill(couleurs[self.couleur])\n        p5.rect(self.x, self.y, self.taille)\n\n    # deplacement\n    def move(self):\n        self.x += self.vx\n        self.y += self.vy\n\n        # colisions boite\n        if self.x < 20 or self.x > p5.width:\n            self.vx *= -1\n        if self.y < 20 or self.y > p5.height:\n            self.vy *= -1\n\n    #colisions balles\n    def rebonds(self, autre_balle):\n        distance = sqrt((self.x - autre_balle.x) ** 2 + (self.y - autre_balle.y) ** 2)\n\n        # collisions\n        if distance < (self.taille + autre_balle.taille) / 2:\n            self.vx, autre_balle.vx = autre_balle.vx, self.vx\n            self.vy, autre_balle.vy = autre_balle.vy, self.vy\n\nballes = []\n\ndef setup():\n    p5.createCanvas(600, 400)\n    couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n\n    # parametres de la balle ramdom\n    for _ in range(100):\n        x = p5.random(p5.width)\n        y = p5.random(p5.height)\n        couleur = int(p5.random(len(couleurs)))\n        taille = p5.random(50, 100)\n        vx = p5.random(5, 10)\n        vy = p5.random(5, 10)\n        balles.append(Balle(x, y, couleur, taille, vx, vy))\n\ndef draw():\n    p5.background(0)\n\n    for balle in balles:\n        balle.move()\n\n        for autre_balle in balles:\n            if balle != autre_balle:\n                balle.rebonds(autre_balle)\n        balle.affiche()\n\np5.run(setup, draw)\n

comment:
  Es-tu sûr de bien tout comprendre ce qu"il y a dans ton script ? \"p5.random\" sert à quoi ? et un underscore "_" dans une boucle for, quel est son rôle ??


username: kai.djepaxhia
codename: instanciation_bulle
jour: 2023-09-19
heure: 08:36:33
ip: 172.22.99.52
comment: OK
code:
  import p5 \nfrom random import randint\n \nclass Bulle:\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x=x\n		self.couleur=couleur\n		self.taille=taille\n		self.vitesse=vitesse\n		self.y=p5.height\n \n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n \n	# méthode de déplacement\n	def monter(self):\n		self.y-=self.vitesse\n		if self.y<=0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(1,10)\n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \n# fonction d"animation\ndef draw():\n \n \n	p5.background(0)\n	for obj in bulles:\n		obj.monter()\n		obj.afficher()\n \n# PROGRAMME PRINCIPAL    \n \n# instanciation de la/des bulle(s) :\nbulles=[Bulle(randint(10,590),randint(10,20),randint(5,20),randint(0,6)) for i in range(50)]\n \n# lancement de l"animation :\np5.run(setup, draw)


username: kai.djepaxhia
codename: classe_bulle
jour: 2023-09-19
heure: 08:37:40
ip: 172.22.99.52
comment: OK
code:
  import p5 \nfrom random import randint\n \nclass Bulle:\n	# constructeur\n	def __init__(self, x, taille, vitesse, couleur):\n		self.x=x\n		self.couleur=couleur\n		self.taille=taille\n		self.vitesse=vitesse\n		self.y=p5.height\n \n	# méthode d"affichage\n	def afficher(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]	\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, self.taille//2, self.taille//2)\n \n	# méthode de déplacement\n	def monter(self):\n		self.y-=self.vitesse\n		if self.y<=0:\n			self.x = randint(10,590)\n			self.y = p5.height\n			self.couleur = randint(0,6)\n			self.taille = randint(10,20)\n			self.vitesse = randint(1,10)\n \n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n \n# fonction d"animation\ndef draw():\n \n \n	p5.background(0)\n	for obj in bulles:\n		obj.monter()\n		obj.afficher()\n \n# PROGRAMME PRINCIPAL    \n \n# instanciation de la/des bulle(s) :\nbulles=[Bulle(randint(10,590),randint(10,20),randint(5,20),randint(0,6)) for i in range(1)]\n \n# lancement de l"animation :\np5.run(setup, draw)


username: pierre.riss
codename: instanciation_bulle
jour: 2023-09-19
heure: 09:15:38
ip: 172.22.98.214
comment: Donne des noms plus PARLANTS et COHERENTS à tes méthodes...
code:
  import p5\nfrom random import randint\n\n# liste des couleurs possibles\ncouleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"] \n\nclass Bulle():\n	def __init__(self):\n		self.x = randint(10,590)\n		self.y = p5.height\n		self.couleur = randint(0,6)\n		self.taille = randint(10,20)\n		self.vitesse = randint(15,20)	\n		\n	def vitesse_change(self):\n		self.y -= self.vitesse\n		\n	def cree(self):\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y -self.taille//2,self.taille//2,self.taille//2)\n		\n	def limite(self):\n		if self.y < 0 :\n			self.__init__()\n\n			\n		\n		\n		\n\n		\n		\n\n\n\n# fonction de mise en place\ndef setup():\n	p5.createCanvas(600, 400)\n	\n\n	\ntest = Bulle()\n\n# fonction d"animation\ndef draw():\n\n	# 1. Effacement global de la fenêtre :   \n	p5.background(0)\n	\n	# 2 . Déplacement de la bulle vers le haut en tenant compte de sa vitesse;\n\n	test.cree()\n	test.vitesse_change()\n	test.limite()\n	# Quand la bulle arrive en haut de la fenêtre, on réinitialise ses caractéristiques.  \n\n	\n	\n	# 3. Dessin de la bulle dans la fenêtre :\n\n\n\n# initialisation des caractéristiques de la bulle\n	\n\np5.run(setup, draw)\n					\n			\n			


username: nassime.boukari
codename: poo_cercles
jour: 2023-09-19
heure: 09:26:10
ip: 172.22.98.235
comment: Très bon travail
code:
  import math\nimport random\n\nclass Cercle:\n    \n    def __init__(self, rayon):\n        self.rayon = rayon\n        \n    def surface(self):\n        return math.pi * (self.rayon ** 2)\n        \n    def perimetre(self):\n        return 2*math.pi * self.rayon\n        \n    def est_plus_grand(self, autre_cercle):\n        return self.rayon > autre_cercle.rayon\n        \n\n\ncercles = []\nfor i in range(5):\n    cercles.append(Cercle(random.randint(1, 20)))\n\nprint(\"--------------------\")\n\nprint(cercles[0].surface())\nprint(cercles[0].perimetre())\n\nprint(\"--------------------\")\n\nprint(cercles[len(cercles)-1].surface())\nprint(cercles[len(cercles)-1].perimetre())\n\nprint(\"--------------------\")\n\nprint(cercles[0].est_plus_grand(cercles[3]))


username: nassime.boukari
codename: poo_affichage_objet
jour: 2023-09-19
heure: 09:28:06
ip: 172.22.98.235
comment: Très bien
code:
  import math\nimport random\n\nclass Cercle:\n    \n    def __init__(self, rayon):\n        self.rayon = rayon\n        \n    def __str__(self):\n        return \"rayon = \" + str(self.rayon)\n        \n    def surface(self):\n        return math.pi * (self.rayon ** 2)\n        \n    def perimetre(self):\n        return 2*math.pi * self.rayon\n        \n    def est_plus_grand(self, autre_cercle):\n        return self.rayon > autre_cercle.rayon\n        \n\n\ncercles = []\nfor i in range(5):\n    cercles.append(Cercle(random.randint(1, 20)))\n\nprint(\"--------------------\")\n\nprint(cercles[0].surface())\nprint(cercles[0].perimetre())\n\nprint(\"--------------------\")\n\nprint(cercles[len(cercles)-1].surface())\nprint(cercles[len(cercles)-1].perimetre())\n\nprint(\"--------------------\")\n\nprint(cercles[0].est_plus_grand(cercles[3]))\n\nprint(\"--------------------\")\n\nprint(cercles[0])\n\n			\n			


username: pierre.riss
codename: rebonds
jour: 2023-09-19
heure: 09:38:09
ip: 172.22.98.214
code:
  import p5\nfrom random import randint\n\nclass Balle:\n	def __init__(self, x, y, couleur, taille, vx, vy):\n		self.x = x\n		self.y = y\n		self.couleur = couleur # indice de la couleur dans la liste "couleurs"\n		self.taille = taille\n		self.vx = vx # vitesse horizontale initiale ( vers la gauche ou la droite )\n		self.vy = vy # vitesse verticale initiale ( vers le haut ! )\n\n	def affiche(self):\n		couleurs = ["white", "red", "green", "blue", "cyan", "yellow", "magenta"]\n		p5.fill(couleurs[self.couleur])\n		p5.ellipse(self.x - self.taille//2, self.y - self.taille//2, taille//2, taille//2)\n\n	def move(self):\n	    self.y+=1\ntest = Balle(300,300,2,100,-5,-20)\ndef setup():\n	p5.createCanvas(600, 400)\n\n\ndef draw():\n	print(test)\n	p5.background(0)\n\n	test.affiche()\n	print(\"tesy\")\n	test.move()\n\n	\n# instanciation des balles\n\n# Quelques valeurs \"qui vont bien\" :\n# position initiale en bas au milieu de la fenêtre, soit x = 300 et y = 400\n# taille entre 2 et 10 pixels\n# vx entre -5 et 5\n# vy entre -30 et -10\n\n\n\np5.run(setup, draw)

comment:
  Code à clarifier : par exemple, déplace l"instanciation de l"objet ( ligne 20 ) APRES la définition de la classe et des fonctions. Enlève ces "print" inutiles...\nEt non respect de la consigne : une pauvre bulle qui descend de 1 seul pixel ( et l"attribut \"self.vitesse\" alors, à quoi sert-il ??? ), et puis plus rien. Pas sérieux tout ça !


username: simon.krumb
codename: poo_cercles
jour: 2023-09-19
heure: 09:39:38
ip: 172.22.99.31
comment: Très bon travail
code:
  from math import pi\nfrom random import randint\n\nclass Cercle():\n    def __init__(self, rayon) -> None:\n        self.r = rayon\n    \n    def surface(self):\n        return pi *self.r**2\n    \n    def perimetre(self):\n        return pi*2*self.r\n\n    def isbigger(self, circle):\n        return self.r>circle.r\n    \ndef main():\n    cercles = [Cercle(randint(1,10)) for i in range(5)]\n    print(cercles[0].r,cercles[4].r)\n    print(cercles[1].isbigger(cercles[3]))\n\n\nif __name__ == __name__:\n    \n    main()\n


username: simon.krumb
codename: poo_affichage_objet
jour: 2023-09-19
heure: 09:42:47
ip: 172.22.99.31
comment: Très bien
code:
  from math import pi\nfrom random import randint\n\nclass Cercle():\n    def __init__(self, rayon) -> None:\n        self.r = rayon\n\n    def __str__(self) -> str:\n        return str(self.r)\n    \n    def surface(self):\n        return pi *self.r**2\n    \n    def perimetre(self):\n        return pi*2*self.r\n\n    def isbigger(self, circle):\n        return self.r>circle.r\n    \ndef main():\n    cercles = [Cercle(randint(1,10)) for i in range(5)]\n    \n    print(cercles[0])\n    """\n    print(cercles[0].r,cercles[4].r)\n    print(cercles[1].isbigger(cercles[3]))\n    """\n\nif __name__ == __name__:\n    \n    main()\n


username: nassime.boukari
codename: poo_chiens
jour: 2023-09-19
heure: 09:46:35
ip: 172.22.98.235
comment: Très bien
code:
  import random\n\nclass Chien:\n    \n    def __init__(self, nom, points_sante, aboiement):\n        self.nom = nom\n        self.points_sante = points_sante\n        self.aboiement = aboiement\n        \n    def mordre(self, autre_chien):\n        autre_chien.points_sante -= 5\n        print(self.nom + \" à mordu \" + autre_chien.nom)\n        \n    def manger(self):\n        self.points_sante += 7\n        print(self.nom + \" s"est régalé !\")\n    \n    def grogner(self):\n        print(self.nom + \" : Grrr...\" + self.aboiement)\n    \n    def machouiller(self, chaine):\n        list = []\n        for i in chaine:\n            list.append(i)\n        random.shuffle(list)\n        return \"\".join(list)\n        \nchien1 = Chien(\"DavidLaFargePokemon\", 20, \"Heyyyyy salut à tout les amis c"est DavidLafargePokemon !\")\n\nchien2 = Chien(\"Cyril Hanouna\", 8, \"Et oui, c"est ici et on est la ensemble sur TPMP avec les chroniqueurs sur C8\")\n\nchien3 = Chien(\"Squeezie\", 17, \"Est ce que c"est bon pour vous ?????!\")\n\n\nchien1.grogner()\nchien2.mordre(chien3)\nchien3.manger()\nprint(chien2.machouiller(\"OK boomer\"))


username: emilien.raymond
codename: poo_cercles
jour: 2023-09-19
heure: 09:48:48
ip: 172.22.98.236
comment: Très bon travail
code:
  from math import pi\nfrom random import randint\n\nclass Cercle:\n    def __init__(self, rayon):\n        self.rayon = rayon\n\n    def surface(self):\n        return pi*self.rayon**2\n\n    def perimetre(self):\n        return 2*pi*self.rayon\n\n    def est_plus_grand(self,cercle):\n        return self.rayon>cercle.rayon\ncercles=[]\nfor i in range(5):\n    cercles.append(Cercle(randint(1,255)))\nprint(\"surface :\",cercles[0].surface(),\"perimetre :\",cercles[0].perimetre())\nprint(\"surface :\",cercles[4].surface(),\"perimetre :\",cercles[4].perimetre())\nprint(cercles[1].est_plus_grand(cercles[3]))


username: nino.cuingnet
codename: poo_cercles
jour: 2023-09-19
heure: 09:51:26
ip: 172.22.98.193
comment: Très bon travail
code:
  from random import randint\nfrom math import *\nclass Cercle:\n	def __init__(self, rayon):\n		self.rayon = rayon\n        \n	def surface(self):\n		return pi*self.rayon**2\n\n	def perimetre(self):\n		return 2*pi*self.rayon\n\n	def est_plus_grand(self, autre_cercle):\n		return self.rayon > autre_cercle.rayon\n\ncercle = []\nfor i in range(5):\n	cercle.append(Cercle(randint(1, 100)))\nprint(cercle[0].surface(), cercle[0].perimetre())\nprint(cercle[4].surface(), cercle[4].perimetre())\nprint(cercle[1].est_plus_grand(cercle[3]))


username: emilien.raymond
codename: poo_affichage_objet
jour: 2023-09-19
heure: 09:53:47
ip: 172.22.98.236
comment: Très bien
code:
  from math import pi\n\nclass Cercle:\n    def __init__(self, rayon):\n        self.rayon = rayon\n\n    def __str__(self):\n        return \"rayon = \"+str(self.rayon)\n\n    def surface(self):\n        return pi*self.rayon**2\n\n    def perimetre(self):\n        return 2*pi*self.rayon\n\n    def est_plus_grand(self,cercle):\n        return self.rayon>cercle.rayon\n\ncercle1= Cercle(21)\nprint(cercle1)


username: nino.cuingnet
codename: poo_affichage_objet
jour: 2023-09-19
heure: 09:54:56
ip: 172.22.98.193
comment: Très bien
code:
  from random import randint\nfrom math import *\nclass Cercle:\n	def __init__(self, rayon):\n		self.rayon = rayon\n	\n	def __str__(self):\n		return \"rayon = \" + str(self.rayon)\n\n	def surface(self):\n		return pi*self.rayon**2\n\n	def perimetre(self):\n		return 2*pi*self.rayon\n\n	def est_plus_grand(self, autre_cercle):\n		return self.rayon > autre_cercle.rayon\n\n\nc1 = Cercle(21)\nprint(c1)


username: simon.krumb
codename: poo_chiens
jour: 2023-09-19
heure: 09:55:24
ip: 172.22.99.31
comment: Très bien
code:
  class Chien():\n    def __init__(self, name, aboiment) -> None:\n        self.health = 100\n        self.name = name\n        self.aboiment = aboiment\n    \n\n    def bite(self,autreChien):\n        autreChien.health -= 5\n    \n    def feed(self):\n        self.health+=2\n    \n    def growl(self):\n        return f"grrrrr {self.aboiment}"\n\n    def chew(self,chaine):\n        return chaine\n    \n\ndef main():\n    patrick = Chien("Patrick","Ouaf")\n    bill = Chien("Bill","Ouf")\n    bell = Chien("Bell","Gling Gling Gling")\n    gneu = Chien("Gneu", "Gneu Gneu")\n\n    bell.feed()\n    print(bell.health)\n    print(gneu.growl())\n    print(bill.chew("QGFDIGJGDFHFg"))\n    bell.bite(patrick)\n    print(patrick.health)\n\n\n\nif __name__ == "__main__":\n    main()


username: simon.favreau
codename: poo_cercles
jour: 2023-09-19
heure: 15:22:22
ip: 172.22.99.63
comment: Très bon travail, la surface d"un cercle est pi*r**2 et non 2*pi*r**2 !
code:
  import p5\nfrom math import*\nclass Cercle :\n    \n    #constructeur :\n    def __init__(self, rayon) :\n        self.rayon = rayon\n\n	# méthodes :\n    def surface(self) :\n        return 2 * pi * self.rayon**2\n    \n    def perimetre(self) :\n    	return self.rayon * 2 * pi\n    \n    def est_plus_grand(self, autre_cercle) :\n        if self.rayon > autre_cercle.rayon :\n            return True\n        else :\n            return False\n\n#cercle.est_plus_grand(autre_cercle)        \ncercle = [Cercle(i**2) for i in range(5)]\nfor cercles in cercle :\n    print(cercle[0].surface(), cercle[0].perimetre())\n    print(cercle[4].surface(), cercle[4].perimetre())\n\n    \n    print(cercle[1].est_plus_grand(cercle[3]))\n\n			\n			


username: simon.krumb
codename: courbe_koch
jour: 2023-10-06
heure: 14:51:35
ip: 172.22.99.90
comment: Très bien
code:
  from turtle import *\n\nhideturtle()\nup()\ngoto(-300,0)\n\n\n\ndef koch(long, n):\n    if n == 0:\n        forward(long)\n        return None\n    \n    down()\n    \n    koch(long//3,n-1)\n    left(60)\n    koch(long//3,n-1)\n    right(120)\n    koch(long//3,n-1)\n    left(60)\n    koch(long//3,n-1)\n\n    \n    \n\n    \nkoch(1000,3)\ndone()


username: nino.cuingnet
codename: triangle_sierpinski
jour: 2023-10-06
heure: 14:51:45
ip: 172.22.98.161
comment: Très bien
code:
  from turtle import *\n\ndef triangle_equi(c : int)->None:\n    down()\n    for i in range(3):\n        forward(c)\n        left(120)\n\ndef triangle_sierpinski(c: int, n: int)->None:\n    if n == 0:\n        triangle_equi(c)\n        return\n    else:\n        triangle_sierpinski(c/2, n-1)\n        forward(c/2)\n        triangle_sierpinski(c/2, n-1)\n        forward(c/2)\n        left(120)\n        forward(c/2)\n        triangle_sierpinski(c/2, n-1)\n        forward(c/2)\n        left(120)\n        forward(c)\n        left(120)\nspeed(0)\nhideturtle()\nup()\nbackward(300)\ntriangle_sierpinski(500, 6)\ndone()


username: simon.favreau
codename: triangle_equi
jour: 2023-10-06
heure: 14:52:40
ip: 172.22.99.78
comment: Très bien
code:
  from turtle import *\n\ndef triangle_equi(c : int)->None:\n	down()\n	for i in range(3) :\n		forward(c)\n		left(120)\n    \n\n    \n    \n            \n\n        \ntriangle_equi(100)\ndone()		\n			


username: simon.favreau
codename: courbe_koch
jour: 2023-10-06
heure: 14:52:42
ip: 172.22.99.78
comment: Très bien mais les parametres de test ne sont pas très judicieux
code:
  from turtle import *\n\ndef courbe_koch(c: int, n : int)->None:\n	if n==0 :\n		down()\n		forward(c)\n\n	else :\n		down()\n		courbe_koch(c/3,n-1)\n		left(60)\n		courbe_koch(c/3,n-1)\n		right(120)\n		courbe_koch(c/3,n-1)\n		left(60)\n		courbe_koch(c/3, n-1)\n\nup()\ngoto(-300,0)\ncourbe_koch(50,5)	\ndone()\n		


username: mathis.battistello
codename: triangle_equi
jour: 2023-10-06
heure: 14:54:17
ip: 172.22.99.91
comment: Très bien
code:
  from turtle import *\n\ndef triangle_equi(c : int)->None:\n	down()\n	for i in range(3):\n		forward(c)\n		left(120)\n	done()		\n\n    \ntriangle_equi(100)


username: kai.djepaxhia
codename: courbe_koch
jour: 2023-10-06
heure: 14:58:08
ip: 172.22.99.107
comment: Très bien
code:
  from turtle import *\n\ndef courbe_koch(c: int, n : int)->None:\n	if n==0:\n		speed(10)\n		down()\n		forward(c)\n	else:\n		down()\n		courbe_koch(c/3,n-1)       \n		left(60)        \n		courbe_koch(c/3,n-1)        \n		right(120)        \n		courbe_koch(c/3,n-1)        \n		left(60)        \n		courbe_koch(c/3,n-1)      \n        \ncourbe_koch(1000,6)\ndone()        


username: simon.krumb
codename: motif_sierpinski
jour: 2023-10-06
heure: 14:58:44
ip: 172.22.99.90
comment: Très bien
code:
  from turtle import *\n\nspeed(0)\n\ndef triangle(long):\n    for _ in range(3):\n        forward(long)\n        left(120)\n    \n\ndef motif(lenght):\n    triangle(lenght)\n    forward(lenght)\n    triangle(lenght)\n    left(120)\n    forward(lenght)\n    right(120)\n    triangle(lenght)\n    right(120)\n    forward(lenght)\n    left(120)\nmotif(100)\ndone()


username: emilien.raymond
codename: flocon_koch
jour: 2023-10-06
heure: 15:01:02
ip: 172.22.99.98
comment: Très bien
code:
  from turtle import *\n\ndef flocon_koch(c: int, n: int)->None:\n    down()\n    if n<=0:\n        forward(c)\n        return\n    flocon_koch(c/3,n-1)\n    left(60)\n    flocon_koch(c/3,n-1)\n    left(-120)\n    flocon_koch(c/3,n-1)\n    left(60)\n    flocon_koch(c/3,n-1)\n\nspeed(0)\nhideturtle()\nup()\nfor i in range(3):\n    flocon_koch(200,5)\n    right(120)\ndone()\n


username: nino.cuingnet
codename: flocon_koch
jour: 2023-10-06
heure: 15:01:47
ip: 172.22.98.161
comment: Très bien
code:
  from turtle import *\n\ndef flocon_koch(c: int, n : int)->None:\n    down()\n    speed(0)\n    hideturtle()\n    if n <=0:\n        forward(c)\n        return\n    else:\n        flocon_koch(c/3, n-1)\n        left(60)\n        flocon_koch(c/3, n-1)\n        right(120)\n        flocon_koch(c/3, n-1)\n        left(60)\n        flocon_koch(c/3, n-1)\n\n\nup()\nright(180)\nforward(250)\nleft(180)\nfor i in range(3):\n    flocon_koch(200, 5)\n    right(120)\n\ndone()


username: lucas.delameziere
codename: motif_sierpinski
jour: 2023-10-06
heure: 15:03:45
ip: 172.22.98.159
comment: Très bien
code:
  from turtle import *\nspeed(0)\ndef triangle_equi(c : int)->None:\n	down()\n	forward(c)\n	left(120)\n	forward(c)\n	left(120)\n	forward(c)\n	left(120)	\n\ndef motif_sierpinski(c : int)->None:\n	triangle_equi(c)\n	forward(c)\n	triangle_equi(c)\n	left(120)\n	forward(c)\n	right(120)\n	triangle_equi(c)\nmotif_sierpinski(100)\ndone()


username: suzie.douine
codename: triangle_sierpinski
jour: 2023-10-06
heure: 15:06:53
ip: 172.22.98.163
comment: Très bien
code:
  from turtle import *\n\ndef triangle_equi(c : int)->None:\n    down()\n    forward(c)\n    left(120)\n    forward(c)\n    left(120)\n    forward(c)\n    left(120)\n\ndef triangle_sierpinski(c: int, n: int)->None:\n    if n==0:\n        triangle_equi(c)\n    else:\n        triangle_sierpinski(c//2,n-1)\n        up()\n        forward(c//2)\n        down()\n        triangle_sierpinski(c//2,n-1)\n        up()\n        left(120)\n        forward(c//2)\n        right(120)\n        down()\n        triangle_sierpinski(c//2,n-1)\n        up()\n        right(120)\n        forward(c//2)\n        left(120)\n        down()\n\n\nspeed(0)\ntriangle_sierpinski(200,3)


username: jc.bethgnies
codename: motif_sierpinski
jour: 2023-10-06
heure: 15:06:56
ip: 172.22.99.93
comment: Très bien
code:
  from turtle import *\n\n\n\ndef triangle_equi(c : int)->None:\n     down()\n     forward(c)\n     left(120)\n     forward(c)\n     left(120)\n     forward(c)\n     left(120)\n\n\n\n\ndef motif_sierpinski(c : int)->None :\n	triangle_equi(50)\n	forward(c)\n	triangle_equi(50)\n	forward(c)\n	left(120)\n	forward(c)\n	triangle_equi(50)\n	forward(c)\n	left(120)\n	forward(2*c)\n	left(120)\n\nmotif_sierpinski(50)\ndone()


username: simon.favreau
codename: motif_sierpinski
jour: 2023-10-06
heure: 15:09:50
ip: 172.22.99.78
comment: Très bien
code:
  from turtle import *\n\ndef triangle_equi(c : int)->None:\n	down()		\n	forward(c)\n	left(120)      \n	forward(c)\n	left(120)      \n	forward(c)\n	left(120)\n         \ndone()\n\n########################################\ndef motif_sierpinski(c : int)->None:\n	down()\n	triangle_equi(c)			\n	backward(c)\n	triangle_equi(c)\n	left(60)\n	forward(c)\n	right(60)\n	triangle_equi(c)\n	right(60)\n	forward(c)\n	left(60)\n	done()\nc = 100\nmotif_sierpinski(c)			


username: mathis.battistello
codename: motif_sierpinski
jour: 2023-10-06
heure: 15:10:09
ip: 172.22.99.91
comment: Très bien
code:
  from turtle import *\n\ndef triangle_equi(c : int)->None:\n	down()\n	for i in range(3):\n		forward(c)\n		left(120)	\n\ndef motif_sierpinski(c : int)->None:\n\n	triangle_equi(c)\n	backward(c)\n	triangle_equi(c)\n	left(60)\n	forward(c)\n	right(60)\n	triangle_equi(c)\n	up()\n	right(60)\n	forward(c)\n	left(60)\n    \n	done()		\n    \nmotif_sierpinski(100)


username: emilien.raymond
codename: sierpinski_bis
jour: 2023-10-06
heure: 15:14:42
ip: 172.22.99.98
comment: Très bien
code:
  from turtle import *\nfrom math import sqrt\n\ndef triangle_pas_equi(c : int)->None:\n    down()\n    forward(c)\n    left(135)\n    forward(c*sqrt(2))\n    left(135)\n    forward(c)\n    left(90)\n\ndef sierpinski_bis(c: int, n: int)->None:\n    down()\n    if n<=0:\n        triangle_pas_equi(c)\n        return\n    sierpinski_bis(c/2,n-1)\n    forward(c/2)\n    sierpinski_bis(c/2,n-1)\n    left(135)\n    forward((c*sqrt(2))/2)\n    right(135)\n    sierpinski_bis(c/2,n-1)\n    left(90)\n    forward(-c/2)\n    right(90)\n\n\n\nspeed(0)\nhideturtle()\nup()\nleft(180)\nforward(500)\nleft(90)\nforward(250)\nleft(90)\nsierpinski_bis(1000,5)\ndone()


username: nino.cuingnet
codename: sierpinski_bis
jour: 2023-10-06
heure: 15:15:05
ip: 172.22.98.161
comment: Très bien
code:
  from turtle import *\nfrom math import sqrt\n\ndef triangle_pas_equi(c : int)->None:\n    down()\n    forward(c)\n    left(135)\n    forward(c*sqrt(2))\n    left(135)\n    forward(c)\n    left(90)\n\ndef triangle_sierpinski_bis(c: int, n: int)->None:\n    if n == 0:\n        triangle_pas_equi(c)\n        return\n    else:\n        triangle_sierpinski_bis(c/2, n-1)\n        forward(c/2)\n        triangle_sierpinski_bis(c/2, n-1)\n        left(135)\n        forward(c*sqrt(2)/2)\n        right(135)\n        triangle_sierpinski_bis(c/2, n-1)\n        left(90)\n        forward(-c/2)\n        right(90)\nspeed(0)\nhideturtle()\nup()\nbackward(300)\ntriangle_sierpinski_bis(500, 5)\ndone()


username: lucas.requena
codename: courbe_koch
jour: 2023-10-06
heure: 15:20:34
ip: 172.22.99.88
comment: Très bien
code:
  from turtle import *\n\ndef courbe_koch(c: int,n:int)->None:\n    speed(0)\n\n    if n<=0:\n        down()\n        forward(c)\n    else:\n        courbe_koch(c//3,n-1)\n        left(60)\n        courbe_koch(c//3,n-1)\n        right(120)\n        courbe_koch(c//3,n-1)\n        left(60)\n        courbe_koch(c//3,n-1)\ncourbe_koch(1000,3)


username: lucas.delameziere
codename: triangle_sierpinski
jour: 2023-10-06
heure: 15:21:54
ip: 172.22.98.159
comment: Très bien
code:
  from turtle import *\nspeed(0)\ndef triangle_equi(c : int)->None:\n	down()\n	forward(c)\n	left(120)\n	forward(c)\n	left(120)\n	forward(c)\n	left(120)	\ndef triangle_sierpinski(c: int, n: int)->None:\n	if n==0:\n		triangle_equi(c)\n	else:    \n		triangle_sierpinski(c/2,n-1)\n		forward(c/2)\n		triangle_sierpinski(c/2,n-1)\n		left(120)\n		forward(c/2)\n		right(120)\n		triangle_sierpinski(c/2,n-1)\n		right(120)\n		forward(c/2)\n		left(120)\ntriangle_sierpinski(100,5)\ndone()	\n			


username: lenny.troy
codename: annee_bissextile
jour: 2023-10-07
heure: 08:19:53
ip: 90.112.10.105
code:
  def est_bissextile(annee):\n    if ((annee%4==0 and annee%100!=0) or annee%400==0):\n        print(annee, \"True\")\n    else:\n        print(annee, \"False\")\nest_bissextile(1900)\nest_bissextile(2000)\nest_bissextile(2016)\nest_bissextile(2023)    \n\n\n\n\n\n\n		\n			

comment:
  Bien pour la condition évaluée. Mais attention, le résultat renvoyé doit être un BOOLEN True ou False, pas une CHAINE \"True\" ou \"False\"


username: fabien.freal
codename: compte_caractere
jour: 2023-10-07
heure: 09:43:04
ip: 91.165.39.151
comment: TB
code:
  long_texte = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\"\n\ndef compte_caractere(texte, caractere):\n    n_caractere=0\n    for lettre in texte:\n        if lettre==caractere:\n            n_caractere+=1\n    return n_caractere\nprint(compte_caractere(long_texte,"a"))\nprint(compte_caractere(long_texte,"c"))\nprint(compte_caractere(long_texte,"x"))\n\n\n		\n			


username: fabien.freal
codename: annee_bissextile
jour: 2023-10-07
heure: 10:17:50
ip: 91.165.39.151
comment: TB ! Excellente utilisation du résultat
code:
  def est_bissextile(annee):\n    reste1=annee%4\n    reste2=annee%100\n    reste3=annee%400\n    return ((reste1==0)and(reste2!=0))or(reste3==0)\n\nprint(est_bissextile(2024))\nprint(est_bissextile(2100))\nprint(est_bissextile(1999))\n


username: fabien.freal
codename: jour_date
jour: 2023-10-07
heure: 16:21:15
ip: 91.165.39.151
comment: Bravo, c"est parfait !
code:
  \ndef est_bissextile(annee):    \n    reste1=annee%4\n    reste2=annee%100\n    reste3=annee%400\n    return ((reste1==0)and(reste2!=0))or(reste3==0)\n    \ndef jour_date(siecle, an, mois, jour):\n    valeur=an+an//4\n    annee=siecle*100+an\n    if siecle==18:\n        valeur+=2\n    elif siecle==20:\n        valeur+=6\n    if (mois=="janvier")and(not(est_bissextile(annee))):\n        valeur+=1\n    elif mois=="février" or mois=="fevrier":\n        if est_bissextile(annee):\n            valeur+=3\n        else:\n            valeur+=4\n    if mois=="mars" or mois=="novembre":\n        valeur+=4\n    elif mois=="mai":\n        valeur+=2\n    elif mois=="juin":\n        valeur+=5\n    elif mois=="aout":\n        valeur+=3\n    elif mois=="octobre":\n        valeur+=1\n    elif mois== "septembre" or mois== "decembre"or mois== "décembre":\n        valeur+=6\n       \n    valeur=(valeur+jour)%7\n    if valeur==1:\n        res = "dimanche"\n    if valeur==2:\n        res = "lundi"\n    if valeur==3:\n        res = "mardi"\n    if valeur==4:\n        res = "mercredi"\n    if valeur==5:\n        res = "jeudi"\n    if valeur==6:\n        res = "vendredi"\n    if valeur==0:\n        res = "samedi"\n        \n    return res\n    \n    \nprint(jour_date(20,7,"septembre",9))    \n\n\n\n\n\n		\n			


username: lenny.troy
codename: jour_date
jour: 2023-10-08
heure: 11:55:52
ip: 2.7.213.125
comment: TB pour la manipulation des expressions booléennes ( and, or, not,...)\n
code:
  def est_bissextile(annee):\n    reste_1 = annee%4\n    reste_2 = annee%100\n    reste_3 = annee%400\n    return ((reste_1==0)and(reste_2!=0))or(reste_3==0)\n	\n	\ndef jour_date(siecle, an, mois, jour):\n    valeur = an+an//4\n    annee = siecle*100+an\n    if (siecle==18):\n        valeur+=2\n    elif (siecle==20):\n        valeur+=6\n        \n    \n    \n    \n    if (mois=="janvier")and(not(est_bissextile(annee))):\n        valeur+=1\n    if (mois=="février"):\n        if est_bissextile(annee):\n        	valeur+=3\n        else:\n        	valeur+=4\n    if ((mois=="mars")or(mois=="novembre")):\n        valeur+=4\n    elif (mois=="mai"):\n        valeur+=2\n    elif (mois=="juin"):\n        valeur+=5\n    elif (mois=="août"):\n        valeur+=3\n    elif (mois=="octobre"):\n        valeur+=1\n    elif ((mois=="septembre") or (mois=="décembre")):\n        valeur+=6\n        \n    valeur = (valeur+jour)%7\n    if (valeur==1):\n        resultat = "dimanche"\n    if (valeur==2):\n        resultat = "lundi"\n    if (valeur==3):\n        resultat = "mardi"\n    if (valeur==4):\n        resultat = "mercredi"\n    if (valeur==5):\n        resultat = "jeudi"\n    if (valeur==6):\n        resultat = "vendredi"\n    if (valeur==0):\n        resultat = "samedi"\n    return resultat\n        \nprint(jour_date(20, 5, "février", 2))\n        \n\n        \n\n        \n        \n	\n	\n	\n	\n\n\n\n\n\n\n		\n			


username: valentin.mouchet
codename: annee_bissextile
jour: 2023-10-08
heure: 18:08:25
ip: 90.112.141.35
comment: Très bien
code:
  def est_bissextile(annee):\n    if annee % 400 ==0 :\n        reponse= True\n    else :\n        reponse = False\n    return reponse\nannee=int(input(\"donne une année :\"))\nprint(est_bissextile(annee))\n


username: evan.bocquet
codename: annee_bissextile
jour: 2023-10-08
heure: 20:01:09
ip: 88.166.148.193
comment: Très bien
code:
  def est_bissextile(annee):\n    if annee%400==0:\n       reponse= True\n    else:\n       reponse= False\n    return reponse\n\n\nannee= int(input(\"donne une annee a verifier: \"))\nprint(\"cette annee est bissextile ?\", est_bissextile(annee))\n\n\n\n		\n			


username: celestin.henriot
codename: compte_caractere
jour: 2023-10-09
heure: 16:43:41
ip: 172.22.98.176
code:
  long_texte = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\"\n\ndef compte_caractere(texte, caractere):\n    n=0\n    for car in texte :\n        if caractere==car:\n            n=n+1\n    return n\n\ntexte=input("ecrire texte: ")\ncaractere=input("lettre cherchée: ")		\nprint(compte_caractere(texte,caractere))			


username: mathis.fores
codename: compte_caractere
jour: 2023-10-09
heure: 16:56:43
ip: 172.22.99.93
code:
  long_texte = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\"\n\ndef compte_caractere(texte, caractere):\n    v=0\n    for caracteres in texte:\n        if caracteres==caractere:\n            v=v+1\n    return v\nprint(compte_caractere(long_texte, \"e\"))


username: eric.dupont
codename: compte_a_rebours
code: compte = 20\nwhile (compte >= 0):\n print(compte)\n compte -=1\n\n\n\n\n\n\n \n
jour: 2023-10-09
heure: 16:57:57
ip: 172.22.99.78
comment:
  Très bien mais il y a plus simple avec \nfor i in range (20, -1, -1):\nla boucle while n"est pas adaptée ici


username: tom.rigal
codename: compte_caractere
jour: 2023-10-09
heure: 16:58:18
ip: 172.22.99.84
code:
  long_texte = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\"\n\ndef compte_caractere(texte, caractere):\n    v=0\n    for lettre in texte:\n        if lettre==caractere:\n            v=v+1\n    return v\nprint(compte_caractere(long_texte, \"a\"))


username: alixan.tarabula
codename: compte_a_rebours
jour: 2023-10-09
heure: 16:58:36
ip: 172.22.98.178
comment: Très bien mais il y a plus simple avec \nfor i in range (20, -1, -1):\n
code:
  valeur = 20\nfor i in range( 20 ) : \n    print( valeur )\n    valeur = valeur - 1\n\n\n\n\n\n\n		\n			


username: leonor.zeng
codename: annee_bissextile
jour: 2023-10-09
heure: 17:01:52
ip: 172.22.99.107
comment: tres bien
code:
  #fontion année bissextile\ndef est_bissextile(annee):\n    if annee%4==0 and annee%100!=0 or annee%400==0:\n        annee_bissextile= 0\n    else:\n        annee_bissextile = 1\n    return annee_bissextile==0\n\n\n#test fonction\nprint(est_bissextile(2016))\nprint(est_bissextile(2000))\nprint(est_bissextile(1900))\nprint(est_bissextile(2023))\nprint(est_bissextile(2024))\nprint(est_bissextile(2014))\n\n\n\n		\n			


username: marine.dal
codename: compte_caractere
jour: 2023-10-09
heure: 17:02:55
ip: 172.22.98.186
code:
  long_texte = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\"\n\ndef compte_caractere(texte, caractere):\n    compteur=0\n    for lettre in texte :\n        if lettre==caractere :\n            compteur+=1\n    return compteur\n    \nprint(compte_caractere(long_texte,"a"))\n


username: eric.dupont
codename: table_multiplication
jour: 2023-10-09
heure: 17:09:34
ip: 172.22.99.78
comment: Très bien , affichage soigné
code:
  def table_multiplication(n):\n    for i in range(1,11):\n        print(f\"{n} x {i} = {i*n}\")\ntable_multiplication(int(input(\"nombre ? \")))\n\n\n\n\n		\n			


username: louis.dishington
codename: annee_bissextile
jour: 2023-10-09
heure: 17:19:44
ip: 172.22.98.193
comment: tres bien
code:
  def est_bissextile(annee):\n    if (annee % 4 == 0) and (annee % 100 != 0) or (annee % 400 == 0) :\n        return \"annee bissextile \"\n    else : \n        return \"annee non bissextile \"\nprint(est_bissextile(1900))\nprint(est_bissextile(2000))\nprint(est_bissextile(2016))\nprint(est_bissextile(2023))\nprint(est_bissextile(2001))\nprint(est_bissextile(2002))\nprint(est_bissextile(3000))\n\n\n\n\n		\n			


username: eric.dupont
codename: tables_multiplication
jour: 2023-10-09
heure: 17:26:33
ip: 172.22.99.78
code:
  chaine = 0\nfor i in range(1,11):\n    for a in range(1,11):\n        chaine = chaine, a*i\n    print(chaine)\n    chaine = 0\n\n    \n        \n\n\n\n\n\n		\n			


username: leonor.zeng
codename: compte_caractere
jour: 2023-10-09
heure: 17:28:58
ip: 172.22.99.107
code:
  #texte founie et utiliser\nlong_texte = \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\"\n#fontion compte caractere\ndef compte_caractere(texte, caractere):\n    compte=0\n    lettre = caractere\n    for caractere in texte:\n        if caractere == lettre:\n            compte = compte +1\n    return compte\n\n#test fonction\nprint(compte_caractere(long_texte, \"c\"))\nprint(compte_caractere(long_texte, \"e\"))\nprint(compte_caractere(long_texte, \"l\"))\nprint(compte_caractere(long_texte, \"z\"))


username: marie.laporte
codename: annee_bissextile
jour: 2023-10-09
heure: 17:30:06
ip: 172.22.98.189
comment: tres bien
code:
  def est_bissextile(annee):\n    if annee%4==0 and  not annee%100==0 or annee%400==0:\n        return 1\n    else:\n        return 0\nannee=int(input(\"-->\"))\nr=(est_bissextile(annee))\nif r==1:\n    print(\"annee bissextile\")\nelse:\n    print(\"annee non bissextile\")\n\n\n\n\n\n		\n			


username: marine.dal
codename: annee_bissextile
jour: 2023-10-09
heure: 17:32:29
ip: 172.22.98.186
comment: tres bien
code:
  def est_bissextile(annee):\n    if annee%4==0 and not annee%100==0 or annee%400==0:\n        return 1\n    else :\n        return 0\nannee=int(input("année: "))\nreste=(est_bissextile(annee))\nif reste==1:\n    print("true")\nelse : \n    print("false")\n\n\n\n\n\n		\n			


username: tom.rigal
codename: annee_bissextile
jour: 2023-10-09
heure: 17:34:55
ip: 172.22.99.84
comment: bien mais attention, ta fonction doit renvouer un booleen : True ou False,
code:
  def est_bissextile(annee):\n\n    if annee%4==0 and not annee%100==0 or annee%400==0:\n        return 1\n    else:\n        return 0\nanneee=int(input())\nreste=(est_bissextile(anneee))\nif reste==1:\n    print(\" bissextile\")\nelse:\n    print(\"non bissextile\")\n\n\n\n\n\n\n		\n			


username: nawel.lenormand
codename: table_multiplication
jour: 2023-10-09
heure: 17:36:29
ip: 172.22.98.250
comment: Très bien
code:
  def table_multiplication(n):\n    resultat=""\n    for i in range(10):\n        resultat=resultat+str(n*i)+" "\n    return resultat\nprint(table_multiplication(2))\n\n\n		\n			


username: fabien.freal
codename: table_multiplication
jour: 2023-10-09
heure: 17:38:14
ip: 172.22.99.88
comment: Très bien , la premiere partie du code est \"hors sujet\"
code:
  for i in range(11):\n    print(3*i, end=\" \")\n\nprint()\n\n\n\ndef table_multiplication(n):\n    for i in range(11):\n        print(i*n, end=" ")\ntable_multiplication(8)\n\n\n\n		\n			


username: lenny.troy
codename: table_multiplication
jour: 2023-10-09
heure: 17:38:19
ip: 172.22.99.90
comment: Très bien , la premiere partie du code est \"hors sujet\"
code:
  \nfor i in range(11):\n    print(3*i, end = " ")\n\nprint()\n\n\ndef table_multiplication(n):\n    for i in range(11):\n        print(i*n, end = " ")\n\ntable_multiplication(5)\n\n\n\n\n		\n			


username: alixan.tarabula
codename: table_multiplication
jour: 2023-10-09
heure: 17:41:43
ip: 172.22.98.178
comment: Très bien
code:
  def table_multiplication(n):\n    for n in range (0,11):\n        print(n*3)\n    return n\n\n\nprint (table_multiplication(3))\n        \n        \n   \n   \n\n   \n\n  \n    \n    \n    \n    \n    \n    \n    \n    \n    \n	\n\n\n\n\n		\n			


username: nawel.lenormand
codename: tables_multiplication
jour: 2023-10-09
heure: 17:41:48
ip: 172.22.98.250
code:
  a=1\nfor i in range(10):\n    for j in range(1,11):\n        print(str(a*j),end = " ")\n    print()\n    a +=1


username: valentin.mouchet
codename: table_multiplication
jour: 2023-10-09
heure: 17:44:36
ip: 172.22.98.217
comment: Très bien
code:
  def table_de_multiplication(n1,chaine_de_table):\n    for j in range (1,11):\n        calcul = n1*j\n        chaine_de_table = chaine_de_table +\",\"+ str(calcul)\n    return chaine_de_table\nchaine_de_table=\"0\"\nn1=8\nprint( table_de_multiplication(n1,chaine_de_table))


username: fabien.freal
codename: tables_multiplication
jour: 2023-10-09
heure: 17:45:45
ip: 172.22.99.88
code:
  for i in range(1,11):\n    for n in range(0,11):\n        print(n*i, end=" ")\n    print()\n    \n\n\n\n		\n			


username: lenny.troy
codename: tables_multiplication
jour: 2023-10-09
heure: 17:45:53
ip: 172.22.99.90
code:
  for i in range(1, 11):\n    for n in range(0, 11):\n        print(n*i, end = " ")\n    print()\n\n\n\n\n\n		\n			


username: evan.bocquet
codename: table_multiplication
jour: 2023-10-09
heure: 17:46:41
ip: 172.22.99.49
comment: Très bien
code:
  def table_multiplication(n,chaine):\n    for i in range(1,10):\n        calcul= n*i\n        chaine= chaine + \" \" + str(calcul)\n    return chaine\n\nchaine=\"0\"\n\n\nprint(table_multiplication(1, chaine))\n\n\n\n\n		\n			


username: celestin.henriot
codename: compte_a_rebours
jour: 2023-10-09
heure: 17:47:35
ip: 172.22.98.176
comment: Très bien mais il y a plus simple avec \nfor i in range (20, -1, -1):\n
code:
  # Votre code ici\nvaleur=20\nfor k in range(20,-1,-1):\n    print(valeur)\n    valeur=valeur-1\n    \n\n\n\n\n\n		\n			


username: aurore.denarie
codename: table_multiplication
jour: 2023-10-09
heure: 17:49:35
ip: 172.22.98.216
comment: Très bien
code:
  def table_multiplication():\n    for i in range (0 , 11 ) :\n        print(i*3 , end=" ")\n        \ndef nombre_multiplication(n):\n    for i in range (0 , 11 ) :\n        print(i*n , end=" ")\n        \ntable_multiplication()\nprint()\nprint()\nnombre_multiplication(5)\n\n\n		\n			


username: ethan.blavette
codename: table_multiplication
jour: 2023-10-09
heure: 17:50:20
ip: 172.22.99.54
comment: Très bien
code:
  def table_multiplication(n,chaine):\n    for i in range (1,11):\n        calcul=i*n1\n        chaine=chaine+\",\"+str(calcul)\n    return chaine\nchaine=\"0\"\nn1=7\nprint(table_multiplication,table_multiplication(n1,chaine))\n    		


username: virgile.giacopelli
codename: table_multiplication
jour: 2023-10-09
heure: 17:50:24
ip: 172.22.98.198
comment: Très bien
code:
  def table_multiplication(n):\n	for i in range(1,11):\n		resultat = n*i\n		print(resultat, end = \" \")\n\ntable_multiplication(3)\n			


username: fabien.freal
codename: nombre_bits
jour: 2023-10-09
heure: 17:56:08
ip: 172.22.99.88
code:
  def nombre_bits(N):\n    n=0\n    while(2**n -1<N):\n        n+=1\n    return n\n\nprint(nombre_bits(1023))\nprint(nombre_bits(3789147))\n\n\n		\n			


username: valentin.mouchet
codename: tables_multiplication
jour: 2023-10-09
heure: 17:56:21
ip: 172.22.98.217
code:
  for n1 in range (1,11):\n    print()\n    for n2 in range (1,11):\n        print(n1,\"x\",n2,\"=\", n1* n2)\n\n\n\n\n\n\n		\n			


username: marine.dal
codename: echo
jour: 2023-10-09
heure: 17:56:32
ip: 172.22.98.186
comment: Très bien
code:
  # Votre code ici\nchaine_caractere=str(input("chaine de caractere :"))\nfor i in range (20):\n    print(chaine_caractere)\n\n		\n			


username: mathis.fores
codename: compte_a_rebours
code: # Votre code ici\ni=21\nfor i in range(21):\n print(i)\n i=i-1\n
jour: 2023-10-09
heure: 17:56:51
ip: 172.22.99.93
comment:
  Très bien mais il y a plus simple avec \nfor i in range (20, -1, -1):\nla ligne 2 est inutile car i est initialisé à 0 au début de la boucle. Tu n"obtiens pas ici un compte à rebours.


username: lenny.troy
codename: nombre_bits
jour: 2023-10-09
heure: 17:56:52
ip: 172.22.99.90
code:
  def nombre_bits(N):\n    n=0\n    while(2**n - 1<N):\n        n+=1\n    return n\n\nprint(nombre_bits(3789147))\nprint(nombre_bits(1023))\n\n\n\n		\n			


username: marie.laporte
codename: echo
jour: 2023-10-09
heure: 17:57:13
ip: 172.22.98.189
comment: Très bien
code:
  # Votre code ici\nchaine_caractere = str(input(\"-->\"))\nfor i in range(20) : \n    print(chaine_caractere )\n    \n	\n\n\n		\n			


username: celestin.henriot
codename: table_multiplication
jour: 2023-10-09
heure: 17:57:20
ip: 172.22.98.176
comment: bien, mais il y a un probleme avec les deux print. il faut en enlever un
code:
  def table_multiplication(n):\n    for k in range(1,11):\n        print(n*k)\n\nn=int(input("nombre entier "))\nprint(table_multiplication(n))\n\n\n		\n			


username: nawel.lenormand
codename: nombre_a_deviner
jour: 2023-10-09
heure: 17:59:07
ip: 172.22.98.250
code:
  from random import randint\nnb=randint(1,100)\na = int(input(\"entrez un nombre : \"))\nwhile nb != a :\n    if nb<a :\n        a=int(input(\"c"est moins que \"+str(a)+\" !\"))\n    elif nb>a :\n        a=int(input(\"c"est plus que \"+str(a)+\" !\"))\nprint(\"vous avez trouvé ! le nombre est bien égal à \"+str(nb))


username: nawel.lenormand
codename: jour_date
jour: 2023-10-10
heure: 21:23:15
ip: 93.23.18.195
code:
  def est_bissextile(annee):\n    annee=int(annee)\n    if annee%4 == 0 and annee%100 != 0:\n        return True\n    elif annee%400 == 0 :\n        return True\n    else :\n        return False\n	\n	\n	\ndef jour_date(siecle, an, mois, jour):\n    valeur=an+an//4\n    if siecle==18:\n        valeur+=2\n    elif siecle==20:\n        valeur+=6\n    if mois==1 and est_bissextile(annee)==False:\n        valeur+=1\n    if mois==2:\n        if est_bissextile(annee)==True:\n            valeur+=3\n        else:\n            valeur+=4\n    if mois==3 or mois==11:\n        valeur+=4\n    elif mois==5:\n        valeur+=2\n    elif mois==6:\n        valeur+=5\n    elif mois==8:\n        valeur+=3\n    elif mois==10:\n        valeur+=1\n    elif mois==9 or mois==12:\n        valeur+=6\n    valeur=(valeur+jour)%7\n    if valeur==1:\n        resultat=\"dimanche\"\n    elif valeur==2:\n        resultat=\"lundi\"\n    elif valeur==3:\n        resultat=\"mardi\"\n    elif valeur==4:\n        resultat=\"mercredi\"\n    elif valeur==5:\n        resultat=\"jeudi\"\n    elif valeur==6:\n        resultat=\"vendredi\"\n    elif valeur==0:\n        resultat=\"samedi\"\n    return resultat\n\njour=int(input(\"entrez un jour (entre 1 et 31) : \"))\nmois=int(input(\"entrez un mois (entre 1 et 12) : \"))\nannee=input(\"entrez une année (entre 1800 et 2099) : \")\nsiecle=int(annee[0]+annee[1])\nan=int(annee[2]+annee[3])\nprint(\"à cette date, nous étions un \"+jour_date(siecle,an,mois,jour))


username: tom.rigal
codename: calculs
jour: 2023-10-12
heure: 21:08:10
ip: 37.174.19.125
code:
  def calculs(nombre1, nombre2):\n    somme = nombre1 + nombre2\n    difference = nombre1 - nombre2\n    produit = nombre1 * nombre2\n    division = nombre1/ nombre2\n    return somme, difference, produit, division\n\n\nresultats = calculs(10, 5)\nprint(\"Résultats pour 10 et 5 :\", resultats)\n\n\n\n\n		


username: nawel.lenormand
codename: nombre_bits
jour: 2023-10-13
heure: 08:46:11
ip: 172.22.98.247
code:
  def nombre_bits(N):\n    n=1\n    while 2**n-1 < N :\n        n+=1\n    return n\nprint(nombre_bits(3789147))\n\n\n\n\n\n		\n			


username: leonor.zeng
codename: miroir
jour: 2023-10-13
heure: 08:48:43
ip: 172.22.99.107
code:
  #demande d"une chaine de caractère/définition des variables\nchaine_de_caractere = input(\"Donne une chaine de caractère \")\nchaine_vide = \"\"\nindex = 0\n\n#processuce d"inversement\nfor variable in chaine_de_caractere:\n    index=index -1\n    chaine_vide += chaine_de_caractere[index]\n\n#afficher la chaine\nprint(chaine_vide)\n\n\n		\n			


username: tom.rigal
codename: compte_a_rebours
jour: 2023-10-13
heure: 08:50:33
ip: 172.22.99.13
code:
  # Votre code ici\n          \nfor compteur in range(20,0,-1):\n    print(compteur)\ncompteur=compteur -1\n\n\n\n		\n			


username: marie.laporte
codename: compte_a_rebours
jour: 2023-10-13
heure: 08:52:12
ip: 172.22.98.206
code:
  # Votre code ici\n\nfor compt in range(20,0,-1):\n    print(compt)\ncompt= compt -1  \n\n\n\n\n\n		\n			


username: arthur.bernard
codename: table_multiplication
jour: 2023-10-13
heure: 08:53:11
ip: 172.22.99.67
comment: tres sbien
code:
  def table_multiplication(n):\n    table=""\n    for i in range (1,11):\n        r = n*i\n        table = table + str(r) +" "\n    return table\n    \nprint(table_multiplication(3))\n\n\n\n\n		\n			


username: louis.dishington
codename: table_multiplication
jour: 2023-10-13
heure: 08:53:50
ip: 172.22.99.39
comment: attention, pas de print dans une fonction
code:
  def table_multiplication(a,b):\n    for i in range (12):\n        print (a)\n        a+=b\n    return a\nprint(table_multiplication(0,5))\nprint(table_multiplication(0,8))\nprint(table_multiplication(0,12))


username: aurore.denarie
codename: tables_multiplication
jour: 2023-10-13
heure: 08:56:01
ip: 172.22.99.52
code:
  def table_multiplication():\n    for i in range (1 , 11 ) :\n        print(i*3 , end=" ")\n        \ndef nombre_multiplication(n):\n    for i in range (1 , 11 ) :\n        print(i*n , end=" ")\n        \nfor i in range(1, 11) :\n    nombre_multiplication(i)\n    print()


username: fabien.freal
codename: nombre_a_deviner
jour: 2023-10-13
heure: 08:56:25
ip: 172.22.99.88
code:
  from random import randint\nn = randint( 1 , 100 )\nn1=int(input("Entrez un nombre entre 1 et 100 : "))\nwhile(n!=n1):\n    if(n1>n):\n        n1=int(input("nombre trop grand, entre un nouveau nombre : "))\n    elif(n1<n):\n        n1=int(input("nombre trop petit, entre un nouveau nombre : "))\n\nprint("Gagné")


username: lenny.troy
codename: nombre_a_deviner
jour: 2023-10-13
heure: 08:56:25
ip: 172.22.99.90
code:
  from random import randint\nn = randint(1, 100)\nn1 = int(input("Entrez un nombre entre 1 et 100 : "))\nwhile(n1!=n):\n    if(n1<n):\n        n1 = int(input("nombre trop petit, entrez un nouveau nombre : "))\n    elif(n1>n):\n        n1 = int(input("nombre trop grand, entrez un nouveau nombre : "))\n    \nif(n1==n):\n    print(\"Gagné\")\n\n\n    \n\n\n		\n			


username: eric.dupont
codename: nombre_bits
jour: 2023-10-13
heure: 08:58:31
ip: 172.22.99.78
code:
  def nombre_bits(N):\n    n=0\n    possibilites=0\n    while (possibilites < N):\n        n+=1\n        possibilites=2**n\n    return n\nprint(nombre_bits(3789147))\n        \n\n\n\n\n\n		\n			


username: valentin.mouchet
codename: nombre_bits
jour: 2023-10-13
heure: 08:58:48
ip: 172.22.99.59
code:
  def nombre_bits(N,n=0):\n    while (N>=2**n):\n        n+=1\n    return n\nprint(\"le nombre de bits est de : \",nombre_bits(3789147))\n\n\n\n		\n			


username: tom.rigal
codename: table_multiplication
jour: 2023-10-13
heure: 08:59:11
ip: 172.22.99.13
comment: attention, pas de print dans une fonction
code:
  def table_multiplication(n):\n    for i in range(1,11):\n        print(i*3)\ntable_multiplication(3)\n\n		\n			


username: marine.dal
codename: jour_date
jour: 2023-10-13
heure: 08:59:46
ip: 172.22.99.7
code:
  def est_bissextile(annee):\n    # code repris de l"exercice précédent\n    pass\n	\n	\n	\ndef jour_date(siecle, an, mois, jour):\n    # la fonction qui appellera au besoin la précédente\n    pass\n	\n	\n	\n	\n# Le programme principal :\npass\n\n\n\n\n\n\n		\n			


username: nawel.lenormand
codename: palindrome
jour: 2023-10-13
heure: 09:01:08
ip: 172.22.98.247
code:
  def est_palindrome(mot):\n    c1=0\n    c2=-1\n    while mot[c1]==mot[c2] :\n        c1+=1\n        c2-=1\n        rep=True\n        return rep\n    rep=False\n    return rep\n\nprint(est_palindrome(\"dfghjk\"))


username: marine.dal
codename: compte_a_rebours
jour: 2023-10-13
heure: 09:01:45
ip: 172.22.99.7
code:
  # Votre code ici\n\nfor compteur in range (20,0,-1):\n    print(compteur)\ncompteur=compteur-1\n\n\n\n\n\n		\n			


username: augustin.chautard
codename: tables_multiplication
jour: 2023-10-13
heure: 09:04:58
ip: 172.22.99.91
code:
  s=0\nfor i in range(1,11):\n    s+=1\n    print()\n    for i in range(1,11):\n        n = i*s\n        print( n , end = ", ")\n        \n\n\n\n\n\n\n		\n			


username: marie.laporte
codename: table_multiplication
jour: 2023-10-13
heure: 09:06:32
ip: 172.22.98.206
comment: attention, pas de print dans une fonction
code:
  def table_multiplication(n):\n    for i in range(1,11) :\n        print(i*3)\ntable_multiplication(3)\n\n\n\n		\n			


username: lenny.troy
codename: palindrome
jour: 2023-10-13
heure: 09:07:36
ip: 172.22.99.90
code:
  def est_palindrome(mot):\n    resultat=""\n    for lettre in mot:\n        resultat = lettre + resultat\n    return resultat==mot\n \nprint(est_palindrome("kayak"))\nprint(est_palindrome("arbre"))\nprint(est_palindrome("radar"))\n\n		\n			


username: fabien.freal
codename: palindrome
jour: 2023-10-13
heure: 09:07:38
ip: 172.22.99.88
code:
  def est_palindrome(mot):\n    resultat=""\n    for lettre in mot:\n        resultat=lettre+resultat\n    return resultat==mot\n\nprint(est_palindrome("radar"))\nprint(est_palindrome("arbre"))        \nprint(est_palindrome("kayak"))\n\n\n		\n			


username: marine.dal
codename: table_multiplication
jour: 2023-10-13
heure: 09:07:53
ip: 172.22.99.7
comment: attention, pas de print dans une fonction
code:
  def table_multiplication(n):\n    for i in range (1,11):\n        print(i*3)\n        \ntable_multiplication(3)        \n        \n \n       \n\n		\n			


username: evan.bocquet
codename: tables_multiplication
jour: 2023-10-13
heure: 09:10:57
ip: 172.22.99.42
code:
  def table_multiplication(n,chaine):\n    while n<=10:\n        for i in range(1,11):\n            calcul= n*i\n            chaine= chaine + \" \" + str(calcul)\n        n=n+1\n    return chaine\n\nchaine=\" \"\n\n\nprint(table_multiplication(1, chaine))\n\n\n\n\n\n\n		\n			


username: eric.dupont
codename: nombre_a_deviner
jour: 2023-10-13
heure: 09:11:19
ip: 172.22.99.78
code:
  from random import randint\nreponse=0\nnbr_a_deviner = randint(1,100)\nwhile reponse != nbr_a_deviner:\n    reponse = int(input(\"donnez un nombre entre 1 et 100 :\"))\n    if reponse>nbr_a_deviner: \n        print(\"trop grand\")\n    elif reponse<nbr_a_deviner:\n        print(\"trop petit\")\n    else:\n        print(\"bravo !!!\")


username: alixan.tarabula
codename: tables_multiplication
jour: 2023-10-13
heure: 09:13:34
ip: 172.22.99.55
code:
  def table_multiplication(t):\n    table=""\n    for n in range (1,11):\n        r=n*t\n        table = table +" "+str(r)\n    return table\n\ndef tables_multiplication():\n    tables=" "\n    for i in range (1,11):\n        tables = tables + table_multiplication(i) +"\\n"\n    return tables\n\n\nprint(tables_multiplication())\n


username: ethan.blavette
codename: tables_multiplication
jour: 2023-10-13
heure: 09:15:37
ip: 172.22.99.35
code:
  def table_multiplication(n,chaine):\n    while n<=10:\n        for i in range (1,11):\n            calcul=i*n\n            chaine=chaine+\" \"+str(calcul)\n        n=n+1\n    return chaine\nchaine=\" \"\n\nprint(table_multiplication(1,chaine))		


username: valentin.mouchet
codename: nombre_a_deviner
jour: 2023-10-13
heure: 09:16:49
ip: 172.22.99.59
code:
  from random import randint\nnombre = randint(1,100)\nnombre_donne=int(input(\"donnez un nombre :  \"))\nwhile(nombre_donne != nombre):\n    if nombre_donne < nombre :\n        nombre_donne = int(input(\"PLUS GRAND,un autre : \"))\n    else :\n        nombre_donne=int(input(\"PLUS PETIT ,un autre : \"))\nprint( \"GAGNE !!!\")\n\n		\n			


username: leonor.zeng
codename: echo
jour: 2023-10-13
heure: 09:20:59
ip: 172.22.99.107
code:
  \n\n#Écrire une boucle qui affiche 20 fois le mot \"Echo\".\nfor compteur in range (20):\n    print(\"Echo\")\n\n		\n			


username: ethan.blavette
codename: nombre_bits
jour: 2023-10-13
heure: 09:23:06
ip: 172.22.99.35
code:
  def nombre_bits(N,n=0):\n    while(N>=2**n):\n        n+=1\n    return n\n\nprint(\"nombre_bits\",nombre_bits(69))\n\n\n\n\n		\n			


username: mathis.fores
codename: tables_multiplication
jour: 2023-10-13
heure: 09:29:08
ip: 172.22.99.34
code:
  def def_carr(n):\n    cdc=\"\"\n    for i in range(1,11):\n        r=i*n\n        cdc=cdc+" "+ str(r)\n    return cdc\nfor n in range(1,11):\n    print(def_carr(n))\n


username: evan.bocquet
codename: nombre_bits
jour: 2023-10-13
heure: 09:30:22
ip: 172.22.99.42
code:
  def nombre_bits(N,n):\n    while N>=2**n :\n        n= n+1\n    return n\n\n\nprint(\"nombre bits necessaire :\", nombre_bits(3789147,0))\n\n\n\n\n\n		\n			


username: valentin.mouchet
codename: palindrome
jour: 2023-10-13
heure: 09:31:10
ip: 172.22.99.59
code:
  def test_palindrome(mot,chaine=\"\"):\n    for caractere in mot :\n        chaine= caractere + chaine\n    if chaine == mot:\n        return True\n    else :\n        return False\n\nprint(test_palindrome(\"elle\"))\n\n		\n			


username: lenny.troy
codename: minutes
jour: 2023-10-13
heure: 09:31:18
ip: 172.22.99.90
code:
  def minutes(heures: int, minutes: int) -> int:\n    \"\"\"\n    Fonction pour calculer le nombre de minutes correspondant au nombre d"heures et de minutes passées en paramètres\n    \n    Entrée : \n    	deux nombres, heures et minutes\n    Sortie :\n    	un entier : resultat de l"addition des variables heures avec minutes\n    \"\"\"\n    resultat = heures*60+minutes\n    return resultat\nprint(minutes(5, 27), "minutes")\nprint(minutes(13, 4), "minutes")\nprint(minutes(0, 59), "minutes")\n\n		\n			


username: leonor.zeng
codename: compte_a_rebours
jour: 2023-10-13
heure: 09:32:40
ip: 172.22.99.107
code:
  #Écrire une boucle qui affiche un compte à rebours de 20 à 0 INCLUS\nfor n in range (20,-1,-1):\n    print(n, end = \" \")\n\n\n\n\n\n\n		\n			


username: fabien.freal
codename: minutes
jour: 2023-10-13
heure: 09:32:44
ip: 172.22.99.88
code:
  def minutes(heures: int, minutes: int) -> int:\n    \"\"\"\"\n    Fonction pour calculer le nombre de minutes correspon dant au nombre d"heures et de minutes\n    Entrée:\n    deux nombre heures et minutes\n    SOrtie:\n    un entier : resultat de l"adition de heures*60 et minutes\"\"\"\n    return minutes+heures*60\n    \n\nprint(minutes(5,27), "minutes")\nprint(minutes(13,4), "minutes")\nprint(minutes(0,59), "minutes")		\n\nhelp(minutes)


username: marine.dal
codename: tables_multiplication
jour: 2023-10-13
heure: 09:36:46
ip: 172.22.99.7
code:
  # Votre code ici\ndef table_multiplication(n):\n    table= ""\n    for i in range (1,11):\n        r=i*n\n        table=table+" "+str(r)\n    return table\nfor n in range (1,11):\n    print(table_multiplication(n))\n\n\n\n\n\n\n		\n			


username: tom.rigal
codename: tables_multiplication
jour: 2023-10-13
heure: 09:37:23
ip: 172.22.99.13
code:
  # Votre code ici\ndef table_multiplication(n):\n    table=""\n    for i in range(1,11):\n        r=i*n\n        table=table +" "+str(r)\n    return table\nfor n in range(1,11):\n    print(table_multiplication(n))


username: marie.laporte
codename: tables_multiplication
jour: 2023-10-13
heure: 09:37:31
ip: 172.22.98.206
code:
  # Votre code ici\ndef table_multiplication(n):\n    table=""\n    for i in range(1,11):\n        r=i*n\n        table=table +" "+ str(r)\n    return table\nfor r in range(1,11):\n    print(table_multiplication(r))\n\n\n\n\n\n		\n			


username: arthur.bernard
codename: tables_multiplication
jour: 2023-10-13
heure: 09:38:41
ip: 172.22.99.67
code:
  def table_multiplication(n):\n    table =\"\"\n    for i in range(1,11):\n        r = n*i\n        table = table + str(r) + \" \"\n    return table\n\ndef tables_multiplications():\n    tables=""\n    for i in range (1,11):\n        tables= tables + table_multiplication(i)+"\\n"\n    return tables\n\nprint(tables_multiplications())


username: virgile.giacopelli
codename: tables_multiplication
jour: 2023-10-13
heure: 09:39:56
ip: 172.22.99.23
code:
  def table_multiplication():\n	tables=""\n	for n in range(1,11) :\n		table=""\n		for i in range(1,11):\n			resultat = n*i\n			table=table+" "+str(resultat)\n            \n		tables=tables + table +"\\n"\n	\n	return tables\n    \n\nprint(table_multiplication())			\n\n\n\n	\n			


username: eric.dupont
codename: palindrome
jour: 2023-10-13
heure: 09:40:11
ip: 172.22.99.78
code:
  def est_palindrome(mot):\n    miror=""\n    for lettre in mot:\n        miror=lettre+miror\n    if mot==miror:\n        return \"palindrome\"\n    else :\n        return \"pas palindrome\"\n\nsuite_de_lettre=str(input(\"donnez un mot: \"))\nprint(est_palindrome(suite_de_lettre))\n\n# par exemple eibohphobie


username: leonor.zeng
codename: table_multiplication
jour: 2023-10-13
heure: 09:42:27
ip: 172.22.99.107
code:
  #Écrire une boucle qui affiche la table de multiplication de 3 (10 premiers multiples)\ndef table_multiplication(n):\n    table =\"\"\n    for i in range (1,11):\n        produit = n*i\n        table += \" \" + str(produit)\n    return table\n\nprint(table_multiplication(3))\n\n\n\n\n		\n			


username: lenny.troy
codename: boites_oeufs
jour: 2023-10-13
heure: 09:43:48
ip: 172.22.99.90
code:
  def nb_boites(oeufs: int) -> int:\n    \"\"\"\n    Fonction pour déterminer le nombre de boites à utiliser pour un nombre d"oeufs définit\n    \n    Entrée :\n    	un nombre, oeufs\n    Sortie :\n    	un entier, le nombre de boites nécessaires \n    \"\"\"\n    n = oeufs//6\n    if(oeufs%6!=0):\n        n+=1\n    return n\nprint(nb_boites(8)==2)\nprint(nb_boites(3)==1)    \nprint(nb_boites(6)==1)\nprint(nb_boites(38) == 7)\nprint(nb_boites(600) == 100)\nprint(nb_boites(601) == 101)	\nprint(nb_boites(0) == 0)\nprint(nb_boites(45190))


username: ethan.blavette
codename: nombre_a_deviner
jour: 2023-10-13
heure: 09:44:52
ip: 172.22.99.35
code:
  from random import randint\nnombre = randint(1,100)\nnombre_donne=int(input(\"donnez un nombre : \"))\nwhile(nombre_donne != nombre):\n    if nombre_donne<nombre :\n        nombre_donne=int(input(\"plus grand : \"))\n    else:\n        nombre_donne=int(input(\"plus petit : \"))\nprint(\"gagné\")\n\n        \n\n		\n			


username: fabien.freal
codename: boites_oeufs
jour: 2023-10-13
heure: 09:46:18
ip: 172.22.99.88
code:
  def nb_boites(oeufs: int) -> int:\n    \"\"\"\n    Fonction pour déterminer le nombre de boites à utiliser pour un nombre d"oeufs definit\n    Entrée:\n     un nombre d"oeufs\n    Sortie:\n     un nombre de boites\n    \"\"\"\n    n=oeufs//6\n    if (oeufs%6!=0):\n        n+=1\n    return n\n\n\nprint(nb_boites(8)==2)\nprint(nb_boites(3)==1)\nprint(nb_boites(6)==1)\nprint(nb_boites(38)==7)\nprint(nb_boites(600)==100)\nprint(nb_boites(601)==101)\nprint(nb_boites(0)==0)\nprint("")		\nprint(nb_boites(45190),"boites")\nprint("")\n\nhelp(nb_boites)


username: celestin.henriot
codename: tables_multiplication
jour: 2023-10-13
heure: 09:50:27
ip: 172.22.99.84
code:
  # Votre code ici\ndef table_multiplication():\n    tables=""\n    for i in range(1,11):\n        table=""\n        for k in range(1,11):\n            table = table +" "+str(i*k)\n        tables= tables + table + "\\n"\n    return tables\n\nprint(table_multiplication())\n\n\n\n\n		\n			


username: aurore.denarie
codename: nombre_bits
jour: 2023-10-13
heure: 09:51:52
ip: 172.22.99.52
code:
  from math import *\n\ndef nombre_bits(N):\n    for i in range(N) :\n        n=1\n        while 2**n-1!=N :\n            n+=1\n        return n, N\n\nprint(nombre_bits(1023))\nprint(nombre_bits(255))\n\n\n


username: alixan.tarabula
codename: nombre_a_deviner
jour: 2023-10-13
heure: 09:53:32
ip: 172.22.99.55
code:
  from random import randint\n\ndef nombre(i,n):\n    if n > i:\n        return \"trop petit\"\n    elif n < i:\n        return \"trop grand\"\n    else:\n        return \"bravo\"\n\n\nn = randint( 1 , 100 )\nnb_user=100\nwhile (n!=nb_user):\n    nb_user=int(input("entrez un nombre "))\n    print(nombre(nb_user,n))\n\n\n\n\n		\n			


username: evan.bocquet
codename: nombre_a_deviner
jour: 2023-10-13
heure: 09:54:22
ip: 172.22.99.42
code:
  from random import randint\n\nnombre = randint(1,100)\nN=int(input(\"donné un nombre: \"))\nwhile N!= nombre:\n    if N< nombre:\n        N=int(input(\"Trop petit: \"))\n    elif N> nombre:\n        N=int(input(\" Trop grand: \"))\n\nprint(\" Gagné!!!\")\n\n\n		\n			


username: ethan.blavette
codename: palindrome
jour: 2023-10-13
heure: 09:54:52
ip: 172.22.99.35
code:
  def est_palindrome(mot,chaine=\"\"):\n    for caractere in mot:\n        chaine= caractere + chaine\n    if chaine == mot:\n        return True\n    else:\n        return False\nprint(est_palindrome(\"anna\"))\n\n			


username: virgile.giacopelli
codename: nombre_bits
jour: 2023-10-13
heure: 09:55:15
ip: 172.22.99.23
code:
  def nombre_bits(n):\n	a=1\n	e=(2**a)-1\n	while (n>e) :\n		a+=1        \n		e=(2**a)-1\n	return a\n\nprint(nombre_bits(1023))


username: augustin.chautard
codename: nombre_bits
jour: 2023-10-13
heure: 09:56:07
ip: 172.22.99.91
code:
  def nombre_bits(N):\n    n = 0\n    while N > 0:\n        n +=1\n        N//=2\n        return N\nprint(nombre_bits(45))\n\n\n\n\n		\n			


