I. Bataille navale : on corrige !
Rappel du cahier des charges : le programme minimal que l’on souhaite doit
- demander à l’utilisateur
- une ligne
- une colonne
- pour trouver une cible (aléatoire ?)
- jusqu’à ce qu’il trouve
- en comptant les coups
- et lui indiquer « en vue » si une des deux coordonnées est juste…
Proposition de correction établie ensemble :
from random import randint,choice liste=['A','B','C','D','E','F','G','H','I','J'] x_cible = str(randint(1,10)) y_cible = choice(liste) y_joueur = input("Saisis ta ligne : ") x_joueur = input("Saisis ta colonne : ") print("Tu as joué",y_joueur+x_joueur) compteur = 1 while x_joueur != x_cible or y_joueur != y_cible : # not(x_joueur == x_cible and y_joueur == y_cible) if x_cible == x_joueur : print("cool en x") elif y_cible == y_joueur : print("cool en y") else : print("plouf") y_joueur = input("Saisis ta ligne : ") x_joueur = input("Saisis ta colonne : ") print("Tu as joué",y_joueur+x_joueur) compteur += 1 print("Tu as gagné en ",compteur,"coup(s) !")
Bilan : on y a appris/révisé
- les entrées / sorties en console
- input
- les types
- int (entier)
- string (chaîne de caractère)
- les tests
- if
- elif
- else
- un double égal «
==
» pour tester une égalité
- la boucle while
- l’indentation
- l’incrémentation
- à utiliser une bibliothèque externe (ici random, et ci-dessous … turtle)
IL FAUT L’AVOIR CODÉ SOI-MÊME POUR ESPÉRER CONTINUER À SUIVRE EN ISN !!!
II. Des dés en turtle :
On veut dessiner ces dés avec le module turtle de python :
1) Consignes : un programme devra toujours débuter par
from turtle import *
On peut alors utiliser les fonctions de turtle, par exemple :
up()
-> lève le stylodown()
-> repose le styloforward(100)
-> avance de 100 pixelsbackward(taille)
-> recule detaille
pixels, oùtaille
doit être déclaré avantleft(90)
-> tourne de 90° « vers la gauche »right(45)
-> tourne de 45° « vers la droite »fillcolor("red")
puisbegin_fill()
etend_fill()
entourant les tracés « remplissent » le contour en rougepencolor((1,0,1))
met la couleur du stylo en magentapencolor((0.1,0,0.1))
met la couleur du stylo en magenta très foncéspeed("fastest")
accélère le tracécircle(r)
trace un cercle de rayonr
, oùr
doit être déclaré avant
2) Commencer par tester et comprendre les fonctions de ce code :
from turtle import * def exemple(): goto(-100,-100) clear() fillcolor("green") begin_fill() forward(200) left(120) pencolor((1,0.5,0)) forward(400) end_fill() def etoile(): clear() for i in range(8): forward(200) right(135) #exemple() #etoile()
3) Ensuite, créer une fonction carre()
4) C’est parti pour les dés !
A FINIR POUR JEUDI PROCHAIN !
À 11h42, on avait déjà ça…
from turtle import * def carre(x,y,cote): up() goto(x,y) down() for i in range(4): forward(cote) right(90) def trace_de(chiffre) : carre(-150,150,300) if chiffre == 1 : carre(-30,30,60) def test(): trace_de(3) clear() trace_de(1) test()
Bonsoir monsieur,
j’ai des difficultés pour refaire le programme réalisant les dés. J’aurais donc une question à vous posez: comment fait-on pour calculer l’emplacement exact ou se situera chacun des carrés du dé?
Oups… Je n’avais pas remarquer avant que vous aviez rajouter la suite de la programmation sur mathonomie. Excusez moi donc pour le dérangement XD
Bonne soirée à vous.
Bonjour !
la première idée est de réaliser « des dés » de taille 300, fond blanc, tracé (ligne 12 ci-dessus) avec
Désolé, j’étais « offline » !
Mais c’est une bonne question, et je vais quand-même y répondre :
avec des carrés coloriés de taille 60 dedans, à 20 pixels des bords sauf pour celui central du « un », du « trois » et du « cinq », centré, donc le stylo doit être posé en
(-30,30)
et dessiner un carré de côté60
, d’où le (lignes 13 et 14 ci-dessus)ce qui s’écrit bien mieux ainsi
pour du rose 😉
Un corrigé intermédiaire est d’ores et déjà disponible chez les NSI, je le recopie ici au besoin :
Le corrigé complet est visible sur cette page.
Bon courage !
Merci beaucoup d’avoir pris le temps de me répondre.
Bonne soirée.