diff --git a/fr-FR/code/target-practice-solution/main.py b/fr-FR/code/target-practice-solution/main.py index 5dc54e5d6..24cb3d747 100644 --- a/fr-FR/code/target-practice-solution/main.py +++ b/fr-FR/code/target-practice-solution/main.py @@ -1,47 +1,55 @@ -# importation des librairies de code ! +## Importer le code de la bibliothèque + from p5 import * from random import randint -# La fonction mouse_pressed vient ici + +# La fonction souris_pressee vient ici def mouse_pressed(): - if touche_couleur == Color('blue').hex: # Comme les fonctions, les instructions 'if' sont indentées + # print('🎯') + if couleur_touchee == Color("blue").hex: print('Tu as touché le cercle extérieur, 50 points !') - elif touche_couleur == Color('red').hex: + elif couleur_touchee == Color("red").hex: print('Tu as touché le cercle intérieur, 200 points !') - elif touche_couleur == Color('yellow').hex: + elif couleur_touchee == Color("yellow").hex: print('Tu as touché le centre, 500 points !') else: print('Tu as loupé la cible ! Aucun point !') + # La fonction tire_fleche vient ici def tire_fleche(): - global touche_couleur # Peut être utilisé dans d'autres fonctions - fleche_x = randint(100, 300) # Stocke un nombre aléatoire entre 100 et 300 - fleche_y = randint(100, 300) # Stocke un nombre aléatoire entre 100 et 300 - touche_couleur = get(fleche_x, fleche_y).hex # Récupère la couleur de l'endroit touché - fill('sienna') # Définit la flèche pour remplir la couleur sur marron - circle(fleche_x, fleche_y, 15) # Dessine un petit cercle à des coordonnées aléatoires + global couleur_touchee + fleche_x = randint(100, 300) + fleche_y = randint(100, 300) + couleur_touchee = get(fleche_x, fleche_y).hex + # print(couleur_touchee) + fill("brown") + circle(fleche_x, fleche_y, 15) + def setup(): # Configure ton jeu ici - size(400, 400) # largeur et hauteur + size(400, 400) no_stroke() + def draw(): # Choses à faire dans chaque image - fill('cyan') - rect(0, 0, 400, 250) # Ciel - fill('lightgreen') - rect(0, 250, 400, 150) # Herbe - fill('sienna') - triangle(150, 350, 200, 150, 250, 350) # Support - fill('blue') - circle(200, 200, 170) # Cercle extérieur - fill('red') - circle(200, 200, 110) # Cercle intérieur - fill('yellow') - circle(200, 200, 30) # Cercle du milieu + fill("cyan") + rect(0, 0, 400, 250) + fill("lightgreen") + rect(0, 250, 400, 150) + fill("brown") + triangle(150, 350, 200, 150, 250, 350) + fill("blue") + circle(200, 200, 170) + fill("red") + circle(200, 200, 110) # Dessiner le cercle intérieur + fill("yellow") + circle(200, 200, 30) # Dessiner le cercle du milieu tire_fleche() + # Garde ceci pour exécuter ton code run(frame_rate=2) diff --git a/fr-FR/code/target-practice-starter/main.py b/fr-FR/code/target-practice-starter/main.py index 953813f9b..9d4f8633a 100644 --- a/fr-FR/code/target-practice-starter/main.py +++ b/fr-FR/code/target-practice-starter/main.py @@ -1,19 +1,24 @@ -# importation des librairies de code +## Importer le code de la bibliothèque from p5 import * from random import randint -# La fonction mouse_pressed vient ici +# La fonction souris_pressee vient ici + # La fonction tire_fleche vient ici + def setup(): # Configure ton jeu ici - size(400, 400) # largeur et hauteur de l'écran + size(400, 400) + no_stroke() + def draw(): # Choses à faire dans chaque image - fill('cyan') # Définit la couleur de remplissage du ciel sur cyan - rect(0, 0, 400, 250) # Dessine un rectangle pour le ciel avec ces valeurs pour x, y, largeur, hauteur + fill("cyan") + rect(0, 0, 400, 250) + # Garde ceci pour exécuter ton code run(frame_rate=2) diff --git a/fr-FR/images/arrow-centre.png b/fr-FR/images/arrow-centre.png new file mode 100644 index 000000000..14dba17ee Binary files /dev/null and b/fr-FR/images/arrow-centre.png differ diff --git a/fr-FR/images/blue_circle_points.gif b/fr-FR/images/blue_circle_points.gif new file mode 100644 index 000000000..e818d42c2 Binary files /dev/null and b/fr-FR/images/blue_circle_points.gif differ diff --git a/fr-FR/images/missed-points.png b/fr-FR/images/missed-points.png index b49a80534..0cd14626c 100644 Binary files a/fr-FR/images/missed-points.png and b/fr-FR/images/missed-points.png differ diff --git a/fr-FR/images/missed_no_points.gif b/fr-FR/images/missed_no_points.gif new file mode 100644 index 000000000..e28795f49 Binary files /dev/null and b/fr-FR/images/missed_no_points.gif differ diff --git a/fr-FR/images/target_printed.gif b/fr-FR/images/target_printed.gif new file mode 100644 index 000000000..b29a244fe Binary files /dev/null and b/fr-FR/images/target_printed.gif differ diff --git a/fr-FR/meta.yml b/fr-FR/meta.yml index d5dac2b65..dbd1dfb45 100644 --- a/fr-FR/meta.yml +++ b/fr-FR/meta.yml @@ -1,7 +1,7 @@ --- title: Tir sur cible hero_image: images/banner.png -description: Utilise Python pour dessiner une cible et marquer des points en la frappant avec des flèches +description: Utilise Python pour dessiner une cible et marquer des points en l'atteignant avec des flèches meta_title: Projets de codage Python pour enfants et adolescents | Tir sur cible meta_description: Apprends le langage Python avec les projets de codage de la Raspberry Pi Foundation pour les enfants et les adolescents. Utilise Python pour dessiner une cible et marquer des points en l'atteignant avec des flèches. version: 4 @@ -10,11 +10,12 @@ copyedit: true last_tested: "2021-10-06" steps: - title: Ce que tu vas faire - - title: Créer un arrière-plan + - title: Dessiner l'herbe - title: Dessiner ta cible completion: - engaged - - title: Tirer la flèche + - title: Ajouter une flèche + - title: Quelle est la couleur atteinte ? - title: Marquer des points completion: - internal @@ -26,5 +27,6 @@ steps: passing_score: 3 completion: - external - - title: Améliorer ton projet - - title: Et ensuite ? + - title: Défi + challenge: true + - title: Que peux-tu faire maintenant ? diff --git a/fr-FR/python-comments.txt b/fr-FR/python-comments.txt index f992faddb..27b6c04e7 100644 --- a/fr-FR/python-comments.txt +++ b/fr-FR/python-comments.txt @@ -1,87 +1,27 @@ Choses à faire dans chaque image -Rouge = 92, Vert = 204, Bleu = 206 +Dessiner le cercle intérieur -Départ x, départ y, largeur, hauteur - -x, y, largeur, hauteur - -Définir la couleur de remplissage du support sur bois - -Définir la couleur de remplissage de la flèche sur bois - -Définir la couleur de remplissage du support sur herbe - -Définir la couleur de remplissage de l'ellipse sur extérieur - -Définir la couleur de remplissage de l'ellipse sur intérieur - -Définir la couleur de remplissage de l'ellipse sur milieu - -x, y, largeur de l'ellipse - -Cercle intérieur - x, y, largeur de l'ellipse - -Cercle du centre - x, y, largeur de l'ellipse - -Cercle extérieur. 200, 200 est le milieu de l'écran - -Bleu - -Rouge - -Jaune - -Support - -Cercle extérieur - -Cercle intérieur - -Mille +Dessiner le cercle du milieu La fonction tire_fleche vient ici -Importer le code de la bibliothèque - -Mise à jour des coordonnées aléatoires - -Enregistrer la couleur avant de dessiner la flèche - La fonction souris_pressee vient ici -Peut être utilisé dans d'autres fonctions - -Comme les fonctions, les instructions "if" sont indentées - -Configure ton jeu ici - -largeur et hauteur - -Définitions pour la compatibilité avec la bibliothèque de traitement p5py - -Forme - -Polices - -Texte - -Couleur - -Images +Tu as touché le cercle extérieur, 50 points ! -Environnement +Tu as touché le cercle intérieur, 200 points ! -Transformer +Tu as touché le milieu, 500 points ! -Clavier +Tu as touché le milieu, 500 points ! -Garde ceci pour exécuter ton code +Tu as loupé la cible ! Aucun point ! -Stocker un nombre aléatoire entre 100 et 300 +Super rapide -Obtenir la couleur du succès +Assez rapide -Dessiner une petite ellipse à des coordonnées aléatoires +Très rapide -largeur et hauteur de l'écran +Vitesse non reconnue ! \ No newline at end of file diff --git a/fr-FR/python-translatable.txt b/fr-FR/python-translatable.txt index d13a1938e..96e3f3a80 100644 --- a/fr-FR/python-translatable.txt +++ b/fr-FR/python-translatable.txt @@ -1,43 +1,9 @@ -ciel - -herbe - -bois - -exterieur - -interieur - -centre - tire_fleche fleche_x fleche_y -couleur_touche - -Tu as touché le cercle extérieur, 50 points ! - -Tu as touché le cercle intérieur, 200 points ! - -Tu as touché le centre, 500 points ! - -Tu as touché le mille, 500 points ! - -Tu as loupé la cible ! Aucun point ! - -À quelle vitesse veux-tu la flèche ? lent, moyen, rapide - -Tu as touché le rouge, 200 points ! - -vitesse - -Super rapide - -Assez rapide - -Très rapide +couleur_touchee -Vitesse non reconnue ! +vitesse \ No newline at end of file diff --git a/fr-FR/quiz1/question_1.md b/fr-FR/quiz1/question_1.md index d3ae1942d..d3556bb75 100644 --- a/fr-FR/quiz1/question_1.md +++ b/fr-FR/quiz1/question_1.md @@ -10,46 +10,47 @@ Amuse-toi bien ! --- legend: Question 1 sur 3 --- -Dans ton projet, tu as ajouté no_stroke() à ta fonction de configuration. Que fait la fonction no_stroke() ? +Dans ton projet, tu as ajouté `randint(100, 300)` à ta fonction `tire_fleche()`. Que fait `randint(100, 300)` ? --- code --- --- language: python --- -def setup(): - size(400, 400) - no_stroke() - +def tire_fleche(): + global touche_couleur + fleche_x = randint(100, 300) + fleche_y = randint(100, 300) + --- /code --- --- choices --- -- ( ) Elle dessine une forme en utilisant les coordonnées données. +- (x) Il choisit un nombre entier aléatoire entre 100 et 300. --- feedback --- -Pas tout à fait. La fonction size() fait cela dans cet exemple. +C'est correct ! Cela permet de choisir une coordonnée x aléatoire pour ta flèche. --- /feedback --- -- ( ) Elle remplit la forme avec une couleur donnée. +- ( ) Cela fait bouger la flèche de manière aléatoire sur l'écran. --- feedback --- -Pas tout à fait. La fonction fill() fait cela et inclura généralement une couleur donnée. +Pas tout à fait. Ce code explique en partie comment la flèche se déplace de manière aléatoire, mais tu as besoin d'autres codes pour atteindre cet objectif. --- /feedback --- -- (x) Elle désactive la bordure (stroke) pour toutes les formes. +- () Il s'agit de la couleur qui a été touchée par la flèche. --- feedback --- - C'est correct ! Une bordure noire sera dessinée autour de tes formes si tu n'utilises pas cette fonction. + Pas tout à fait. La fonction get() est utilisée pour obtenir la couleur. --- /feedback --- -- ( ) Elle dessinera une forme de cercle dans ton programme. +- ( ) Il dessine un cercle de taille aléatoire. --- feedback --- diff --git a/fr-FR/quiz1/question_2.md b/fr-FR/quiz1/question_2.md index 3338f5b3d..a562fbd46 100644 --- a/fr-FR/quiz1/question_2.md +++ b/fr-FR/quiz1/question_2.md @@ -15,13 +15,13 @@ language: python vitesse = 6 if vitesse == 7: - print('Super rapide') -elif speed == 5: - print('Assez rapide') -elif speed == 6: - print('Très rapide') + print('Super rapide') +elif vitesse == 5: + print('Assez rapide') +elif vitesse == 6: + print('Très rapide') else: - print('Vitesse non reconnue !') + print('Vitesse non reconnue !') --- /code --- diff --git a/fr-FR/quiz1/question_3.md b/fr-FR/quiz1/question_3.md index fd50db6cc..31859ee21 100644 --- a/fr-FR/quiz1/question_3.md +++ b/fr-FR/quiz1/question_3.md @@ -14,10 +14,10 @@ language: python def setup(): size(400, 400) fill(0, 255, 0) - no_stroke() - + no_stroke() + def draw(): - circle(0, 0, 300) + circle(0, 0, 300) run() diff --git a/fr-FR/step_1.md b/fr-FR/step_1.md index 129ef9ad8..c21c66347 100644 --- a/fr-FR/step_1.md +++ b/fr-FR/step_1.md @@ -1,47 +1,29 @@ -
- Réponds à notre enquête pour nous aider à améliorer notre Code Editor ! -
- ## Ce que tu vas faire -Utilise Python, avec la bibliothèque graphique `p5`, pour dessiner une cible et marquer des points en l'atteignant avec des flèches. - -Tu vas devoir : - + Personnaliser ton jeu avec des **couleurs RVB** - + Utiliser les **instructions conditionnelles** (`if`, `elif`, `else`) pour prendre des décisions - + Positionner les formes avec les coordonnées **x, y** +Utilise Python pour dessiner une cible et marque des points en l'atteignant avec des flèches. ---- no-print --- +--- print-only --- -### Joue ▶️ +![Une cible de tir à l'arc avec un point de vie sur le cercle extérieur. Le texte "Tu as atteint le cercle extérieur, 50 points !" est affiché en dessous](images/blue-points.png){:width="640px"} ---- task --- +--- /print-only --- +--- no-print ---
Clique sur le bouton **Run** ci-dessous pour démarrer le jeu. Lorsque le point apparaît sur la cible, clique sur la souris (ou appuie sur ta tablette) pour tirer ta flèche. -Fais quelques essais. Ton score apparaît dans la zone de sortie sous la cible. Comment ton score change-t-il lorsque la flèche atterrit sur les différentes couleurs ?
-**Astuce :** 💡 lorsque tu appuies sur **Stop**, tu verras une invite indiquant « Execution interrupted ». Cela signifie simplement que tu as arrêté le programme alors que le code était encore en cours d'exécution. - ---- /task --- - --- /no-print --- ---- print-only --- - -![Une cible de tir à l'arc avec un point de vie sur le cercle extérieur. Le texte « Tu as atteint le cercle extérieur, 50 points ! » est affiché en dessous](images/blue-points.png){:width="640px"} +
+ Réponds à notre enquête pour nous aider à améliorer notre Code Editor ! +
---- /print-only --- -

-Les plus anciennes traces de tir à l'arc proviennent de la grotte de Sibudu au KwaZulu-Natal, en Afrique du Sud. Des restes de pointes de flèches en pierre et en os ont été trouvés, qui datent d'il y a entre 60 000 et 70 000 ans. -

-![](http://code.org/api/hour/begin_coderdojo_target.png) diff --git a/fr-FR/step_2.md b/fr-FR/step_2.md index adfa73f4a..41d491a1c 100644 --- a/fr-FR/step_2.md +++ b/fr-FR/step_2.md @@ -1,107 +1,40 @@ -## Créer un arrière-plan - -
-
-Ton jeu a besoin d'un arrière-plan coloré. -
-
- -![La zone de sortie avec un rectangle de couleur ciel au-dessus d'un rectangle de couleur herbe pour créer l'arrière-plan.](images/background.png){:width="300px"} - -
-
- -### Ouvrir le projet de démarrage - ---- task --- - -Ouvre le [projet de démarrage Tir sur cible](https://editor.raspberrypi.org/fr-FR/projects/target-practice-starter){:target="_blank"}. Le Code Editor s'ouvrira dans un autre onglet du navigateur. - -Si tu as un compte Raspberry Pi, tu peux cliquer sur le bouton **Enregistrer** pour enregistrer une copie dans tes **Projets**. - ---- /task --- - -### Modifier le ciel - ---- task --- - -Le projet de démarrage contient du code déjà écrit pour toi. - -Clique sur **« Run »** pour voir un rectangle rempli de bleu dessiné à partir de x=`0`, y=`0` (le haut de l'écran). Ce rectangle de `400` x `250` pixels représente le ciel. - -![Un rectangle bleu entouré d'une bordure noire, au-dessus d'un rectangle gris. Le coin supérieur gauche du canevas est marqué par x=0, y=0 c'est l'origine du rectangle. La largeur est surlignée à 400 et la hauteur à 250. Le code rect(0, 0, 400, 250) s'affiche.](images/sky_stroke.png){:width="400px"} - -**Astuce :** 💡 les coordonnées commencent à partir de (x=0, y=0) dans le coin supérieur gauche. Cela peut être différent des autres systèmes de coordonnées que tu as utilisés. - ---- /task --- +## Dessiner l'herbe --- task --- -Le ciel a été dessiné avec une bordure noire (trait). - -Pour désactiver le trait pour toutes les formes, ajoute `no_stroke()` à la fonction `setup` : - ---- code --- ---- -language: python -filename: main.py — setup() -line_numbers: true -line_number_start: 9 -line_highlights: 12 ---- -def setup(): -# Configurer ton jeu ici - - size(400, 400) # largeur et hauteur de l'écran - no_stroke() - ---- /code --- +Ouvre le [projet de démarrage Tir sur cible](https://editor.raspberrypi.org/fr-FR/projects/target-practice-starter){:target="_blank"}. --- /task --- --- task --- -**Exécute** à nouveau ton projet pour vérifier 👀 que la bordure (trait) a disparue. - -**Astuce :** 💡 tu devras appuyer sur **Stop** pour arrêter ton programme, cela fera réapparaître le bouton **Run**. - ---- /task --- - -### Dessiner l'herbe - ---- task --- - -**Ajoute** du code pour dessiner un rectangle vert en bas de l'écran. +**Ajoute** du code pour dessiner un rectangle vert au bas de l'écran pour représenter l'herbe. ![La zone de sortie avec un rectangle de couleur ciel au-dessus d'un rectangle de couleur herbe pour créer l'arrière-plan. Le coin supérieur gauche du rectangle est marqué x=0, y=250 ; c'est l'origine du rectangle. La largeur est surlignée à 400 et la hauteur à 150. Le code rect(0, 0, 400, 250) s'affiche.](images/green-grass.png){:width="400px"} --- code --- --- language: python -filename: main.py — draw() line_numbers: true -line_number_start: 14 -line_highlights: 18-19 +line_number_start: 17 +line_highlights: 21-22 --- def draw(): -# Choses à faire dans chaque frame - - fill('cyan') # Définis la couleur de remplissage du ciel sur cyan - rect(0, 0, 400, 250) # Dessine un rectangle pour le ciel avec ces valeurs pour x, y, largeur, hauteur - fill('lightgreen') # Définis la couleur de remplissage de l'herbe sur vert clair - rect(0, 250, 400, 150) # Dessine un rectangle pour l'herbe avec ces valeurs pour x, y, largeur, hauteur + # Choses à faire dans chaque image + fill('cyan') + rect(0, 0, 400, 250) + fill('lightgreen') + rect(0, 250, 400, 150) --- /code --- -**Astuce :** 💡 nous avons ajouté des commentaires à notre code, comme `# Définir la couleur de remplissage du ciel en cyan`, pour t'indiquer ce qu'il fait. Tu n'as pas besoin d'ajouter des commentaires à ton code, mais ils peuvent être utiles pour te rappeler ce que font les lignes de code. - --- /task --- --- task --- -**Test :** 🔄 exécute à nouveau ton projet pour voir l'arrière-plan terminé. +**Test :** exécute ton projet pour voir l'arrière-plan. -![La zone de sortie avec un rectangle de couleur ciel au-dessus d'un rectangle de couleur herbe pour créer l'arrière-plan.](images/background.png){:width="300px"} +![La zone de sortie avec un rectangle de couleur ciel au-dessus d'un rectangle de couleur herbe pour créer l'arrière-plan.](images/background.png){:width="400px"} --- /task --- diff --git a/fr-FR/step_3.md b/fr-FR/step_3.md index 0795aa40e..555a58ab6 100644 --- a/fr-FR/step_3.md +++ b/fr-FR/step_3.md @@ -15,7 +15,7 @@ Ton jeu a besoin d'une cible pour tirer des flèches. --- task --- -Définis la couleur de remplissage sur `sienna` (marron). +Définis la couleur de remplissage sur `brown` (marron). Dessine un triangle en utilisant les coordonnées x et y de chacun des angles. @@ -24,16 +24,14 @@ Dessine un triangle en utilisant les coordonnées x et y de chacun des angles. --- code --- --- language: python -filename: main.py - draw() line_numbers: true -line_number_start: 18 -line_highlights: 20, 21 +line_number_start: 21 +line_highlights: 23-24 --- - - fill('lightgreen') # Définis la couleur de remplissage de l'herbe sur vert clair - rect(0, 250, 400, 150) # Dessine un rectangle pour l'herbe avec ces valeurs pour x, y, largeur, hauteur - fill('sienna') # Couleur marron - triangle(150, 350, 200, 150, 250, 350) # Dessine un triangle pour le support de la cible + fill('lightgreen') + rect(0, 250, 400, 150) + fill('brown') + triangle(150, 350, 200, 150, 250, 350) --- /code --- @@ -41,7 +39,7 @@ line_highlights: 20, 21 --- task --- -**Test :** 🔄 exécute ton code pour voir le support de ta cible : +**Test :** exécute ton code pour voir la position de ta cible : ![Un triangle marron sur l'herbe et sur fond de ciel.](images/target-stand.png){:width="400px"} @@ -53,7 +51,7 @@ line_highlights: 20, 21 La plus grande partie de la cible est un **cercle** bleu. -Définis la couleur de remplissage sur `blue`. +Définis la couleur de remplissage sur `blue` (bleu). Dessine un cercle avec des coordonnées x et y pour son centre et une largeur. @@ -62,16 +60,14 @@ Dessine un cercle avec des coordonnées x et y pour son centre et une largeur. --- code --- --- language: python -filename: main.py - draw() line_numbers: true -line_number_start: 20 -line_highlights: 22, 23 +line_number_start: 23 +line_highlights: 25-26 --- - - fill('sienna') # Couleur marron - triangle(150, 350, 200, 150, 250, 350) # Dessine un triangle pour le support de la cible - fill('blue') # Définis la couleur de remplissage sur blue - circle(200, 200, 170) # Dessine le cercle extérieur + fill('brown') + triangle(150, 350, 200, 150, 250, 350) + fill('blue') + circle(200, 200, 170) --- /code --- @@ -96,20 +92,17 @@ La cible est constituée de cercles de tailles différentes ayant les mêmes coo --- code --- --- language: python -filename: main.py - draw() line_numbers: true -line_number_start: 20 -line_highlights: 24, 25, 26, 27 +line_number_start: 25 +line_highlights: 27-30 --- - fill('sienna') # Couleur marron - triangle(150, 350, 200, 150, 250, 350) # Dessine un triangle pour le support de la cible - fill('blue') # Définis la couleur de remplissage sur blue - circle(200, 200, 170) # Dessine le cercle extérieur - fill('red') # Définis la couleur du remplissage du cercle sur rouge - circle(200, 200, 110) # Dessine le cercle intérieur en utilisant x, y, largeur - fill('yellow') # Définis la couleur du remplissage du cercle sur jaune - circle(200, 200, 30) # Dessine le cercle du milieu en utilisant x, y, largeur + fill('blue') + circle(200, 200, 170) + fill('red') + circle(200, 200, 110) # Dessiner le cercle intérieur + fill('yellow') + circle(200, 200, 30) # Dessiner le cercle du milieu --- /code --- @@ -117,52 +110,10 @@ line_highlights: 24, 25, 26, 27 --- task --- -**Test :** 🔄 exécute ton projet pour voir la cible avec trois cercles colorés. +**Test :** exécute ton projet pour voir la cible avec trois cercles colorés. ![Un triangle marron avec trois cercles colorés sur de l'herbe et sur fond de ciel.](images/three-circles.png){:width="400px"} --- /task --- ---- task --- - -**Choisir :** 💭 modifie l'une des couleurs en utilisant un nom de couleur différent. Tu peux trouver une liste de tous les noms de couleurs disponibles sur [W3 Schools](https://www.w3schools.com/colors/colors_names.asp){:target="blank"}. - -![Un triangle marron avec trois cercles colorés sur l'herbe et sur fond de ciel. Les couleurs sont devenues roses et violettes.](images/alternative-colours.png){:width="400px"} - ---- collapse --- ---- -title: Exemple de code utilisant différentes couleurs ---- - ---- code --- ---- -language: python -filename: main.py - draw() -line_numbers: false -line_number_start: 14 -line_highlights: ---- - -def draw(): -# Choses à faire dans chaque frame - - fill('BlueViolet') - rect(0, 0, 400, 250) # Ciel - fill('DeepSkyBlue') - rect(0, 250, 400, 150) # Sol - fill('FireBrick') - triangle(150, 350, 200, 150, 250, 350) # Support - fill('LemonChiffon') - circle(200, 200, 170) # Cercle extérieur - fill('DeepPink') - circle(200, 200, 110) # Cercle intérieur - fill('BlueViolet') - circle(200, 200, 30) # Cercle du milieu - ---- /code --- - ---- /collapse --- - ---- /task --- - --- save --- diff --git a/fr-FR/step_4.md b/fr-FR/step_4.md index 10c088e83..55293f6d0 100644 --- a/fr-FR/step_4.md +++ b/fr-FR/step_4.md @@ -1,8 +1,8 @@ -## Tirer la flèche +## Ajouter une flèche
-Lorsque tu cliques ou appuies, une flèche est tirée à la position d'un cercle cible en mouvement. +Ajoute un cercle encore plus petit pour représenter une flèche.
@@ -11,33 +11,25 @@ Lorsque tu cliques ou appuies, une flèche est tirée à la position d'un cercle
-### Dessiner un cercle cible à chaque frame - -

Les ordinateurs créent l'effet de mouvement en montrant de nombreuses images l'une après l'autre. Chaque image est appelée une frame. -

+### Où vas-tu tirer ? --- task --- -Définis ta fonction `tire_fleche()` sous le commentaire **# La fonction tire_fleche vient ici**. - -Ajoute du code pour dessiner au hasard un cercle marron dans une zone cible : - -![Un rectangle montrant les coordonnées de la zone cible dans un rectangle semi-transparent. La zone cible est comprise entre x=100 et y=100 et x=300 et y=300, ce qui couvre toute la cible et même plus.](images/target_area.png) +Ajoute une fonction pour dessiner un cercle brun aux coordonnées `200`, `200`. --- code --- --- language: python -filename: main.py — shoot_arrow() line_numbers: true -line_number_start: 7 -line_highlights: 8-12 +line_number_start: 8 +line_highlights: 9-13 --- # La fonction tire_fleche vient ici -def tire_fleche(): - fleche_x = randint(100, 300) - fleche_y = randint(100, 300) - touche_couleur = get(fleche_x, fleche_y) #Enregistrer la couleur avant de dessiner la flèche - ellipse(fleche_x, fleche_y , 15, 15) +def tire_fleche(): + fleche_x = 200 + fleche_y = 200 + fill('brown') + circle(fleche_x, fleche_y, 15) --- /code --- @@ -45,19 +37,17 @@ def tire_fleche(): --- task --- -Va dans la fonction `draw` et appelle ta nouvelle fonction `tire_fleche`. +Appelle ta nouvelle fonction `tire_fleche()`{:.language-python} à la fin de ta fonction `draw()`{:.language-python}. --- code --- --- language: python -filename: main.py — draw() line_numbers: true -line_number_start: 31 -line_highlights: 33 +line_number_start: 33 +line_highlights: 35 --- - - fill('yellow') # Définis la couleur du remplissage du cercle sur jaune - circle(200, 200, 30) # Dessine le cercle du milieu en utilisant x, y, largeur + fill('yellow') + circle(200, 200, 30) tire_fleche() --- /code --- @@ -66,89 +56,45 @@ line_highlights: 33 --- task --- -**Test :** 🔄 exécute ton code et vois la flèche apparaître dans une position aléatoire à chaque frame. +**Test :** clique sur le bouton **Run**. Tu devrais voir la flèche au centre. -![Une animation de cible avec une flèche circulaire marron apparaissant dans diverses positions.](images/fire_arrow.gif) +![un cercle de flèche brun au centre de la cible](images/arrow-centre.png) -L'arrière-plan et la cible seront dessinés sur l'ancienne flèche. Cela signifie que tu ne vois qu'une seule flèche à la fois. --- /task --- -### Obtenir la couleur touchée par la flèche - -La fonction `get()` renvoie la couleur d'un pixel. +La flèche doit se déplacer de manière aléatoire. -

-Un pixel, abréviation d'élément d'image, est un point coloré unique dans une image. Les images sont composées de beaucoup de pixels colorés. -

--- task --- -Ajoute une **variable globale** appelée `touche_couleur` qui peut être utilisée dans tout ton code. - -Ajoute du code pour `obtenir` la couleur du pixel au centre de la flèche et stocke-le dans la variable `touche_couleur` . Afin de comparer les couleurs, nous devons utiliser le code hexadécimal. Cela peut être fait avec la chaîne `.hex` . +Modifie les variables `fleche_x`{:.language-python} et `fleche_y`{:.language-python} pour choisir un nombre aléatoire entre 100 et 300. --- code --- --- language: python -filename: main.py — shoot_arrow() line_numbers: true -line_number_start: 7 -line_highlights: 9, 12 +line_number_start: 9 +line_highlights: 10-11 --- -# La fonction tire_fleche vient ici -def tire_fleche(): - global couleur_touche #Peut être utilisé dans d'autres fonctions - fleche_x = randint(100, 300) - fleche_y = randint(100, 300) - couleur_touche = get(fleche_x, fleche_y) #Enregistrer la couleur avant de dessiner la flèche - ellipse(fleche_x, fleche_y, 15, 15) +def tire_fleche(): + fleche_x = randint(100, 300) + fleche_y = randint(100, 300) + fill('brown') + circle(fleche_x, fleche_y, 15) --- /code --- -**Astuce :** 💡 le code pour `obtenir` la couleur doit être **avant** le code pour dessiner le `cercle` sinon tu enregistreras toujours la couleur bois de la flèche ! - --- /task --- -### Imprimer la couleur lorsque la souris est pressée - -La bibliothèque `p5` « écoute » certains événements, l'un d'eux est la pression du bouton de la souris. Lorsqu'elle détecte que le bouton a été pressé, elle exécute le code qui lui a été donné dans la fonction `mouse_pressed`. --- task --- -Définis ta fonction `mouse_pressed()` sous le commentaire **# La fonction mouse_pressed vient ici**. - -Ajoute du code pour imprimer l'emoji cible 🎯 lorsque tu cliques sur la souris. - ---- code --- ---- -language: python -filename: main.py - mouse_pressed() -line_numbers: true -line_number_start: 5 -line_highlights: 6 ---- - -# La fonction mouse_pressed vient ici -def mouse_pressed(): - print('🎯') ---- /code --- - ---- /task --- - ---- task --- - -**Test :** 🔄 exécute ton projet. - -Le projet imprime 🎯 à chaque fois que la flèche est redessinée. +**Test :** clique sur le bouton **Run**. Tu devrais voir la flèche sauter autour de la cible. ![Une animation de cible avec une flèche circulaire marron apparaissant dans diverses positions.](images/fire_arrow.gif) -**Débogage :** si tu vois un message indiquant que `touche_couleur` n'est pas défini, reviens à `tire_fleche()` et vérifie que tu as bien la ligne `global touche_couleur`. - -**Débogage :** vérifie très attentivement la ligne `print` pour les virgules et les parenthèses. - --- /task --- --- save --- diff --git a/fr-FR/step_5.md b/fr-FR/step_5.md index d15f8e32b..4f4383f7e 100644 --- a/fr-FR/step_5.md +++ b/fr-FR/step_5.md @@ -1,106 +1,60 @@ -## Marquer des points +## Quelle est la couleur atteinte ? -
-
-Ton jeu ajoutera des scores en fonction de l'endroit où la flèche frappe. -
-
+Ensuite, tu ajouteras du code pour obtenir la couleur à l’emplacement de la flèche. -![Une animation de la cible, avec la flèche apparaissant dans diverses positions et les scores apparaissant sous forme de texte sous le jeu.](images/points-scored.gif){:width="300px"} - -
-
- -

-Nous utilisons des conditions tout le temps pour prendre des décisions. On pourrait dire « si le crayon est émoussé, alors taille-le ». De même, les conditions "if" nous permettent d'écrire du code qui fait quelque chose de différent selon qu'une condition est vraie ou fausse. -

- -### Afficher les scores +### Obtenir la couleur touchée par la flèche --- task --- -Supprime ❌ la ligne de code `print('🎯')` . +Ajoute une nouvelle **variable globale** appelée `couleur_touchee`. ---- code --- ---- -language: python -filename: main.py -line_numbers: true -line_number_start: 5 -line_highlights: 7 ---- -# La fonction mouse_pressed vient ici -def mouse_pressed(): +Ajoute du code pour `obtenir` la couleur au centre de la flèche et la stocker dans la variable `couleur_touchee`. ---- /code --- - ---- /task --- - ---- task --- - -Affiche un message **if** la `touche_couleur` est égale à la couleur du cercle `extérieur` (bleu) 🎯. - -Remarque 👀 que le code utilise deux signes égal `==` pour signifier **égal à**. - --- code --- --- language: python -filename: main.py - mouse_pressed() line_numbers: true -line_number_start: 5 -line_highlights: 7, 8 +line_number_start: 9 +line_highlights: 10, 13, 14 --- - -# La fonction mouse_pressed vient ici -def mouse_pressed(): - if touche_couleur == Color('blue').hex: #Comme les fonctions, les instructions "if" sont indentées - print('tu as touché le cercle extérieur, 50 points !') +def shoot_arrow(): + global couleur_touchee + fleche_x = randint(100, 300) + fleche_y = randint(100, 300) + couleur_touchee = get(fleche_x, fleche_y).hex + print(couleur_touchee) + fill('brown') + circle(fleche_x, fleche_y, 15) --- /code --- -**Astuce :** 💡 si tu as modifié la couleur de ton cercle extérieur alors tu devras remplacer `'blue'` par le nom de couleur que tu as choisi. +**Astuce :** le code pour `obtenir` la couleur doit être **avant** le code pour dessiner le `cercle` sinon tu garderas toujours la couleur brune de la flèche ! --- /task --- --- task --- -**Test :** 🔄 exécute ton projet. Essaie de tirer la flèche sur le cercle extérieur bleu pour voir le message. - -**Astuce :** `frame_rate()`, dans `setup()`, contrôle la vitesse à laquelle ton jeu dessine. S'il va trop vite, règle-le sur un nombre inférieur. - -![La zone de sortie avec une flèche touchant le cercle extérieur. Le message des points s'affiche dans la zone de sortie.](images/blue-points.png) - -**Débogage :** 🐞 vérifie que tu as utilisé l'orthographe américaine de 'Color' (sans 'u') et que 'Color' est en majuscule. - -**Debogage :** 🐞 assure-toi que ton code correspond exactement et que tu as indenté le code à l'intérieur de ta déclaration `if`. - -**Débogage :** 🐞 assure-toi d'avoir entré le nom de couleur correct que tu as utilisé pour **ton** cercle extérieur. +**Test :** clique sur le bouton **Run** . Tu devrais voir les couleurs imprimées dans **Text output**, au format hexadécimal. --- /task --- -`elif` (else - if) peut être utilisé pour ajouter des conditions supplémentaires à ta déclaration `if`. Elles seront lues de haut en bas. Dès qu'une condition **True** est trouvée, elle sera traitée. Toutes les conditions restantes seront ignorées. +### Exécuter le code lorsque la souris est pressée --- task --- -Marque des points si la flèche atterrit sur les cercles `interieur` ou `centre` 🎯 : +Commente la ligne qui imprime la couleur. Cela signifie qu'elle ne s'exécuteras pas. --- code --- --- language: python -filename: main.py - mouse_pressed() line_numbers: true -line_number_start: 6 -line_highlights: 9-12 +line_number_start: 13 +line_highlights: 14 --- - -def mouse_pressed(): - if touche_couleur == Color('blue').hex: - print('Tu as touché le cercle extérieur, 50 points !') - elif touche_couleur == Color('red').hex: - print('Tu as touché le cercle intérieur, 200 points !') - elif touche_couleur == Color('yellow').hex: - print('Tu as touché le centre, 500 points !') + couleur_touchee = get(fleche_x, fleche_y).hex + # print(couleur_touchee) + circle(fleche_x, fleche_y, 15) --- /code --- @@ -108,59 +62,29 @@ def mouse_pressed(): --- task --- -**Test :** 🔄 exécute ton projet. Essaie de tirer la flèche sur les cercles intérieurs et intermédiaires pour voir leurs messages. - -![La zone de sortie avec une flèche touchant le cercle intérieur. Le message des points s'affiche dans la zone de sortie.](images/yellow-points.png) - -**Débogage :** 🐞 vérifie que ton indentation correspond à l'exemple. - -**Débogage :** 🐞 si tu vois un message indiquant que `touche_couleur` n'est pas « défini », reviens à `draw()` et vérifie que la ligne déclaration `touche_couleur` comme une variable globale. - -**Débogage :** 🐞 assure-toi d'avoir entré le nom de couleur correct pour **tes** cercles. - -**Débogage :** 🐞 assure-toi d'avoir utilisé la chaîne `.hex` pour **tes** couleurs de cercle. - ---- /task --- - -### Manquer la cible - -Il te reste une décision à prendre : que se passe-t-il si la flèche n'atterrit sur aucun des cercles cibles ? ❌ - -Pour faire cette dernière vérification, tu utilises `else`. - ---- task --- - -Ajoute du code à `print` un message `else` si aucune des déclarations `if` et `elif` n'ont été remplies. +Ajoute du code pour imprimer l'emoji cible 🎯 **quand la souris est cliquée**. --- code --- --- language: python -filename: main.py line_numbers: true -line_number_start: 6 -line_highlights: 13-14 +line_number_start: 5 +line_highlights: 6-7 --- - +# La fonction souris_pressee vient ici def mouse_pressed(): - if touche_couleur == Color('blue').hex: - print('Tu as touché le cercle extérieur, 50 points !') - elif touche_couleur == Color('red').hex: - print('Tu as touché le cercle intérieur, 200 points !') - elif touche_couleur == Color('yellow').hex: - print('Tu as touché le centre, 500 points !') - else: - print('Tu as loupé la cible ! Aucun point !') + print('🎯') --- /code --- --- /task --- ---- task --- +--- task --- -**Test :** 🔄 exécute ton projet. Tire la flèche dans l'herbe ou dans le ciel pour voir le message manqué. +**Test :** clique sur le bouton **Run**. Tu dois voir le caractère 🎯 s'imprimer lorsque tu cliques sur la cible avec la souris. -**Choisir :** 💭 modifie le nombre de points marqués pour les différentes couleurs. +![emoji cible imprimé lorsque l'on clique sur la souris](images/target_printed.gif) --- /task --- ---- save --- +--- save --- \ No newline at end of file diff --git a/fr-FR/step_6.md b/fr-FR/step_6.md index 80a2ca5cd..d586cecc3 100644 --- a/fr-FR/step_6.md +++ b/fr-FR/step_6.md @@ -1 +1,131 @@ -## Questionnaire rapide \ No newline at end of file +## Marquer des points + +
+
+Ajoute un score en fonction de l'endroit où la flèche frappe. +
+
+ +![Une animation de la cible, avec la flèche apparaissant dans diverses positions et les scores apparaissant sous forme de texte sous le jeu.](images/points-scored.gif){:width="300px"} + +
+
+ +--- task --- + +Commente la ligne pour imprimer le caractère 🎯 afin qu'il ne s'exécute plus. + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 6 +line_highlights: 7 +--- +def mouse_pressed(): + # print('🎯') + +--- /code --- + +--- /task --- + +--- task --- + +Affiche un message **if** la `touche_couleur`{:.language-python} est égale à la couleur du cercle `extérieur` (bleu). + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 6 +line_highlights: 8-9 +--- +def mouse_pressed(): + # print('🎯') + if touche_couleur == Color('blue').hex: + print('Tu as touché le cercle extérieur, 50 points !') + +--- /code --- + +**Astuce :** si tu as modifié la couleur de ton cercle extérieur, tu dois remplacer `blue` par le nom de la couleur que tu as choisie. + +--- /task --- + +--- task --- + +**Test :** clique sur le bouton **Run** . Attends que la flèche atterrisse sur le cercle bleu, puis clique sur le bouton gauche de la souris. +![points marqués lorsque le cercle bleu est cliqué](images/blue_circle_points.gif) + +--- /task --- + +`elif`{:.language-python} peut être utilisé pour ajouter plus de conditions à ton instruction `if`{:.language-python}. + +--- task --- + +Ajoute un peu de code pour marquer des points si la flèche tombe sur les cercles **intérieure** ou **milieu**. + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 6 +line_highlights: 10-14 +--- + +def mouse_pressed(): + # print('🎯') + if touche_couleur == Color('blue').hex: + print('Tu as touché le cercle extérieur, 50 points !') + elif touche_couleur == Color('red').hex: + print('Tu as touché le cercle intérieur, 200 points !') + elif touche_couleur == Color('yellow').hex: + print('Tu as touché le milieu, 500 points !') + +--- /code --- + +--- /task --- + +--- task --- + +**Test :** clique sur le bouton **Run**. Tu devrais marquer des points chaque fois que tu atteins la cible. + +![points marqués sur n'importe quelle zone de la cible](images/yellow-points.png) + +--- /task --- + +### Manquer la cible + +Il te reste une décision à prendre : que se passe-t-il si la flèche n'atterrit sur aucun des cercles de la cible ? + +Pour faire cette dernière vérification, tu utiliseras `else`{:.language-python}. + +--- task --- + +Ajoute du code pour `imprimer` un message lorsque aucune des déclarations `if` et `elif` n'est vraie. + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 12 +line_highlights: 14-15 +--- + + elif touche_couleur == Color('yellow').hex: + print('Tu as touché le milieu, 500 points !') + else: + print('Tu as loupé la cible ! Aucun point !') + +--- /code --- + +--- /task --- + +--- task --- + +**Test :** clique sur le bouton **Run** . Tire la flèche dans l'herbe ou dans le ciel pour voir le message qui te dit que tu as loupé la cible. + +![aucun point imprimé en dehors de la cible](images/missed_no_points.gif) + +--- /task --- + +--- save --- diff --git a/fr-FR/step_7.md b/fr-FR/step_7.md index 5975120cf..80a2ca5cd 100644 --- a/fr-FR/step_7.md +++ b/fr-FR/step_7.md @@ -1,34 +1 @@ -## Améliorer ton projet - -
-
-Personnalise et ajoute plus à ton projet. Peut-être pourrais-tu changer le niveau de difficulté ou ajouter plus de cercles à ta cible. -
-
- -![La zone de sortie montrant une cible avec cinq cercles.](images/five_circles.png){:width="300px"} - -
-
- ---- task --- - -Tu pourrais : - -+ Ajouter un `quatrième` et `cinquième` cercle, dans de nouvelles couleurs, qui marquent différents nombres de points en fonction de leur position 🟠🟣 -+ Mettre des emojis dans tes messages imprimés ([voici une liste d'emojis](https://unicode.org/emoji/charts/full-emoji-list.html){:target="_blank"} que tu peux copier) -+ Rendre le jeu plus facile ou plus difficile en modifiant la valeur `frame_rate(2)` 💨 -+ Utiliser `input()` pour demander à l'utilisateur à quel niveau de difficulté il veut jouer 🗣️ - ---- /task --- - -![Trois idées de projet, une avec cinq cercles, une avec une question de difficulté et une avec des emojis dans le message des points.](images/upgrade-ideas.png) - ---- collapse --- ---- -title: Le projet terminé ---- - -Tu peux voir le [projet terminé ici](https://editor.raspberrypi.org/fr-FR/projects/target-practice-solution){:target="_blank"}. - ---- /collapse --- +## Questionnaire rapide \ No newline at end of file diff --git a/fr-FR/step_8.md b/fr-FR/step_8.md index 06361b4e8..541f8c878 100644 --- a/fr-FR/step_8.md +++ b/fr-FR/step_8.md @@ -1,39 +1,36 @@ -## Et ensuite ? +## Défi -Si tu suis le parcours [Introduction à Python](https://projects.raspberrypi.org/fr-FR/raspberrypi/python-intro) , tu peux passer au projet [Lancement de fusée](https://projects.raspberrypi.org/fr-FR/projects/rocket-launch). Dans ce projet, tu réaliseras une animation interactive d'une fusée lançant un satellite en orbite. +--- challenge --- ---- print-only --- -![Projet de lancement de fusée.](images/showcase_rocket.png){:width="600px"} +Tu pourrais : ---- /print-only --- ---- no-print --- +--- task --- + +Ajouter un `quatrième` et un `cinquième` cercle, dans de nouvelles couleurs, qui rapportent différents points en fonction de leur position + +--- /task --- --- task --- -**Essaie-le :** ton programme ajustera l'animation en fonction de la quantité de carburant que tu lui donneras et réussira ou échouera à atteindre l'orbite. Quelle quantité de carburant veux-tu utiliser pour atteindre l'orbite sans gaspiller trop de carburant supplémentaire ? +Mettre des emojis dans tes messages imprimés ([voici une liste d'emojis](https://unicode.org/emoji/charts/full-emoji-list.html){:target="_blank"} que tu peux copier) -**Astuce :** environ 25 000 kg devraient suffire, mais expérimente avec les nombres pour voir ce qui se passe. +--- /task --- -Clique sur le bouton **Run** pour afficher un exemple de ce projet. +--- task --- - +Rendre le jeu plus facile ou plus difficile en modifiant la valeur `frame_rate=2` -![Projet de lancement de fusée](images/showcase_rocket.png){:width="600px"} --- /task --- ---- /no-print --- +--- task --- -Si tu veux t'amuser davantage en explorant Python, tu peux essayer n'importe lequel de [ces projets](https://projects.raspberrypi.org/fr-FR/projects?software%5B%5D=python). +Ajouter une variable pour suivre le score total, en y ajoutant le nombre correct de points à chaque fois. -*** +--- /task --- -Ce projet a été traduit par des bénévoles: -Michel Arnols -Jonathan Vannieuwkerke -Grâce aux bénévoles, nous pouvons donner aux gens du monde entier la chance d'apprendre dans leur propre langue. Vous pouvez nous aider à atteindre plus de personnes en vous portant volontaire pour la traduction - plus d'informations sur [rpf.io/translate](https://rpf.io/translate). +--- /challenge --- diff --git a/fr-FR/step_9.md b/fr-FR/step_9.md new file mode 100644 index 000000000..e065de3b1 --- /dev/null +++ b/fr-FR/step_9.md @@ -0,0 +1,30 @@ +## Que peux-tu faire maintenant ? + +Si tu suis le parcours [Introduction à Python](https://projects.raspberrypi.org/fr-FR/raspberrypi/python-intro), tu peux passer au projet [Lancement de fusée](https://projects.raspberrypi.org/fr-FR/projects/rocket-launch). Dans ce projet, tu réaliseras une animation interactive d'une fusée lançant un satellite en orbite. + +--- print-only --- + +![Projet de lancement de fusée.](images/showcase_rocket.png){:width="600px"} + +--- /print-only --- + +--- no-print --- + +Clique sur le bouton **Run** pour afficher un exemple de ce projet. + + + +--- /no-print --- + +Ou pourquoi ne pas essayer un autre projet [Python](https://projects.raspberrypi.org/fr-FR/projects?software%5B%5D=python). + +*** + +Ce projet a été traduit par des bénévoles: + +Michel Arnols +Jonathan Vannieuwkerke + +Grâce aux bénévoles, nous pouvons donner aux gens du monde entier la chance d'apprendre dans leur propre langue. Vous pouvez nous aider à atteindre plus de personnes en vous portant volontaire pour la traduction - plus d'informations sur [rpf.io/translate](https://rpf.io/translate). + diff --git a/nl-NL/code/target-practice-solution/main.py b/nl-NL/code/target-practice-solution/main.py index 4429ff39a..31763538a 100644 --- a/nl-NL/code/target-practice-solution/main.py +++ b/nl-NL/code/target-practice-solution/main.py @@ -1,47 +1,55 @@ # Bibliotheekcode importeren! + from p5 import * from random import randint + # De mouse_pressed functie komt hier def mouse_pressed(): - if raak_kleur == Color('blue').hex: # Net als bij functies worden 'if'-instructies ingesprongen - print('Je hebt de buitenste cirkel geraakt, 50 punten!') - elif raak_kleur == Color('red').hex: - print('Je hebt de binnenste cirkel geraakt, 200 punten!') - elif raak_kleur == Color('yellow').hex: - print('In de roos, 500 punten!') + # print('🎯') + if raak_kleur == Color("blue").hex: + print("Je hebt de buitenste cirkel geraakt, 50 punten!") + elif raak_kleur == Color("red").hex: + print("Je hebt de binnenste cirkel geraakt, 200 punten!") + elif raak_kleur == Color("yellow").hex: + print("In de roos, 500 punten!") else: - print('Je hebt gemist! Geen punten!') + print("Je hebt gemist! Geen punten!") + # De schiet_pijl functie komt hier def schiet_pijl(): - global raak_kleur # Kan in andere functies worden gebruikt - pijl_x = randint(100, 300) # Bewaar een willekeurig getal tussen 100 en 300 - pijl_y = randint(100, 300) # Bewaar een willekeurig getal tussen 100 en 300 - raak_kleur = get(pijl_x, pijl_y).hex # Haal de geraakte kleur op - fill('sienna') # Stel vulkeur van de pijl in op bruin - circle(pijl_x, pijl_y, 15) # Teken een kleine cirkel op willekeurige coördinaten + global raak_kleur + pijl_x = randint(100, 300) + pijl_y = randint(100, 300) + raak_kleur = get(pijl_x, pijl_y).hex + # print(raak_kleur) + fill("brown") + circle(pijl_x, pijl_y, 15) + def setup(): # Stel je spel hier in - size(400, 400) # breedte en hoogte + size(400, 400) no_stroke() + def draw(): # Dingen om te doen in elk frame - fill('cyan') - rect(0, 0, 400, 250) # Lucht - fill('lightgreen') - rect(0, 250, 400, 150) # Gras - fill('sienna') - triangle(150, 350, 200, 150, 250, 350) # Standaard - fill('blue') - circle(200, 200, 170) # Buitenste cirkel - fill('red') + fill("cyan") + rect(0, 0, 400, 250) + fill("lightgreen") + rect(0, 250, 400, 150) + fill("brown") + triangle(150, 350, 200, 150, 250, 350) + fill("blue") + circle(200, 200, 170) + fill("red") circle(200, 200, 110) # Binnenste cirkel - fill('yellow') + fill("yellow") circle(200, 200, 30) # Middelste cirkel schiet_pijl() + # Bewaar dit om je code uit te voeren run(frame_rate=2) diff --git a/nl-NL/code/target-practice-starter/main.py b/nl-NL/code/target-practice-starter/main.py index cb33e8dc7..916b0dce1 100644 --- a/nl-NL/code/target-practice-starter/main.py +++ b/nl-NL/code/target-practice-starter/main.py @@ -4,16 +4,21 @@ # De mouse_pressed functie komt hier + # De schiet_pijl functie komt hier + def setup(): # Stel je spel hier in - size(400, 400) # breedte en hoogte + size(400, 400) + no_stroke() + def draw(): # Dingen om te doen in elk frame - fill('cyan') # Stel de vulkleur voor de lucht in op cyaan - rect(0, 0, 400, 250) # Teken een rechthoek voor de lucht met deze waarden voor x, y, breedte, hoogte + fill("cyan") + rect(0, 0, 400, 250) + # Bewaar dit om je code uit te voeren run(frame_rate=2) diff --git a/nl-NL/images/arrow-centre.png b/nl-NL/images/arrow-centre.png new file mode 100644 index 000000000..14dba17ee Binary files /dev/null and b/nl-NL/images/arrow-centre.png differ diff --git a/nl-NL/images/blue_circle_points.gif b/nl-NL/images/blue_circle_points.gif new file mode 100644 index 000000000..086b59da7 Binary files /dev/null and b/nl-NL/images/blue_circle_points.gif differ diff --git a/nl-NL/images/missed_no_points.gif b/nl-NL/images/missed_no_points.gif new file mode 100644 index 000000000..b4ce1d3d8 Binary files /dev/null and b/nl-NL/images/missed_no_points.gif differ diff --git a/nl-NL/images/target_printed.gif b/nl-NL/images/target_printed.gif new file mode 100644 index 000000000..b29a244fe Binary files /dev/null and b/nl-NL/images/target_printed.gif differ diff --git a/nl-NL/meta.yml b/nl-NL/meta.yml index f7cf99002..71ee8fe5d 100644 --- a/nl-NL/meta.yml +++ b/nl-NL/meta.yml @@ -10,11 +10,12 @@ copyedit: true last_tested: "2021-10-06" steps: - title: Wat ga je maken - - title: Een achtergrond maken + - title: Teken het gras - title: Teken je doelwit completion: - engaged - title: Schiet de pijl af + - title: Welke kleur heb je geraakt? - title: Punten scoren completion: - internal @@ -26,5 +27,6 @@ steps: passing_score: 3 completion: - external - - title: Verbeter je project + - title: Uitdaging + challenge: true - title: Wat kun je verder nog doen? diff --git a/nl-NL/python-comments.txt b/nl-NL/python-comments.txt index 73498a56f..667891143 100644 --- a/nl-NL/python-comments.txt +++ b/nl-NL/python-comments.txt @@ -1,68 +1,27 @@ -Stel je spel hier in - -Breedte en hoogte van het scherm - Dingen om te doen in elk frame -Stel de kleur voor de lucht in op cyaan - -Teken een rechthoek voor de lucht met deze waarden voor x, y, breedte en hoogte - -Stel de kleur voor het gras in op lichtgroen - -Teken een rechthoek voor het gras met deze waarden voor x, y, breedte en hoogte - -Bruine kleur - -Teken een driehoek voor de standaard van het doel - -Stel de kleur van de cirkel in op blauw - -Teken de buitenste cirkel - -Stel de kleur voor de cirkel in op rood - -Teken de binnenste cirkel met x, y, breedte - -Stel de kleur voor de cirkel in op geel - -Teken de middelste cirkel met x, y, breedte +Teken de binnenste cirkel -Lucht - -Grond - -Standaard - -Buitenste cirkel - -Binnenste cirkel - -Middelste cirkel +Teken de middelste cirkel De schiet_pijl functie komt hier -Sla een willekeurig getal op tussen 100 en 300 - -Stel de pijl in om de kleur op bruin te zetten - -Teken een kleine cirkel op willekeurige coördinaten - -Kan ook gebruikt worden in andere functies - -Pak de kleur van de hit - De mouse_pressed functie komt hier -Net als de code in functies, is de code in 'if' statements ingesprongen - Je raakt de buitenste cirkel, 50 punten! Je hebt de binnenste cirkel geraakt, 200 punten! Je raakt het midden, 500 punten! +Je hebt het midden geraakt, 500 punten! + Je hebt gemist! Geen punten! +Supersnel + +Vrij snel +Zeer snel +Snelheid niet herkend! \ No newline at end of file diff --git a/nl-NL/python-translatable.txt b/nl-NL/python-translatable.txt index 762e033bd..d9c20db15 100644 --- a/nl-NL/python-translatable.txt +++ b/nl-NL/python-translatable.txt @@ -1,4 +1,4 @@ -schiet_pijl +pijl_y pijl_x @@ -6,5 +6,4 @@ pijl_y hit_kleur -muis_ingedrukt - +snelheid \ No newline at end of file diff --git a/nl-NL/quiz1/question_1.md b/nl-NL/quiz1/question_1.md index a36894d58..809550ea7 100644 --- a/nl-NL/quiz1/question_1.md +++ b/nl-NL/quiz1/question_1.md @@ -10,42 +10,43 @@ Veel plezier! --- legend: Vraag 1 van 3 --- -In je project heb je no_stroke() aan je setup-functie toegevoegd. Wat doet de functie no_stroke()? +In je project heb je `randint(100, 300)` toegevoegd aan je `schiet_pijl()` functie. Wat doet `randint(100, 300)`? --- code --- --- language: python --- -def setup(): - size(400, 400) - no_stroke() - +def schiet_pijl(): + global raak_kleur + pijl_x = randint(100, 300) + pijl_y = randint(100, 300) + --- /code --- --- choices --- -- ( ) Het tekent een vorm met behulp van de opgegeven coördinaten. +- (x) Er wordt een willekeurig geheel getal tussen 100 en 300 gekozen. --- feedback --- -Niet helemaal. De functie size() doet dit in dit voorbeeld. +Dat klopt. Hiermee kies je een willekeurige x-coördinaat voor jouw pijl. --- /feedback --- -- ( ) Het vult de vorm met een bepaalde kleur. +- ( ) Hierdoor beweegt de pijl willekeurig over het scherm. --- feedback --- -Niet helemaal. De functie fill() doet dit en bevat meestal een bepaalde kleur. +Niet helemaal. Deze code bepaalt gedeeltelijk hoe de pijl willekeurig beweegt, maar om dat doel te bereiken, heb je ook nog andere code nodig. --- /feedback --- -- (x) Het schakelt de rand (stroke) voor alle vormen uit. +- () Het haalt de kleur op die door de pijl werd geraakt. --- feedback --- - Dat klopt. Als je deze functie niet gebruikt, wordt er een zwarte rand rond je vormen getekend. + Niet helemaal. De functie get() wordt gebruikt om de kleur op te halen. --- /feedback --- diff --git a/nl-NL/quiz1/question_2.md b/nl-NL/quiz1/question_2.md index f7f489e9c..81d80c223 100644 --- a/nl-NL/quiz1/question_2.md +++ b/nl-NL/quiz1/question_2.md @@ -1,10 +1,10 @@ --- question --- --- -legend: Vraag 2 van 3 +legenda: Vraag 2 van 3 --- -In je project heb je `if` , `elif`en `else` condities gebruikt om te controleren op welke kleur de pijl terechtkwam. +In je project heb je `if`, `elif`en `else` condities gebruikt om te controleren op welke kleur de pijl terechtkwam. In het onderstaande voorbeeld is in een variabele met de naam `snelheid` het getal `6` opgeslagen. Als dit `if` commando wordt uitgevoerd, wat wordt er dan afgedrukt in het uitvoergebied? @@ -15,13 +15,13 @@ language: python snelheid = 6 if snelheid == 7: - print('Super snel') + print('Supersnel') elif snelheid == 5: - print('Aardig snel') + print('Vrij snel') elif snelheid == 6: print('Zeer snel') else: - print( 'Snelheid niet herkend!') + print('Snelheid niet herkend!') --- /code --- diff --git a/nl-NL/quiz1/question_3.md b/nl-NL/quiz1/question_3.md index 8f79dbec1..ea5cbbaa0 100644 --- a/nl-NL/quiz1/question_3.md +++ b/nl-NL/quiz1/question_3.md @@ -1,7 +1,7 @@ --- question --- --- -legend: Vraag 3 van 3 +legenda: Vraag 3 van 3 --- Een cirkel wordt getekend met behulp van de volgende code: @@ -14,10 +14,10 @@ language: python def setup(): size(400, 400) fill(0, 255, 0) - no_stroke() - + no_stroke() + def draw(): - circle(0, 0, 300) + circle(0, 0, 300) run() diff --git a/nl-NL/step_1.md b/nl-NL/step_1.md index d09587f3e..7afbc2477 100644 --- a/nl-NL/step_1.md +++ b/nl-NL/step_1.md @@ -1,47 +1,29 @@ -
- Vul onze enquête in om onze Code Editor te helpen verbeteren! -
- ## Wat ga je maken -Gebruik Python, met de `p5` grafische bibliotheek, om een doel te tekenen en punten te scoren door het met pijlen te raken. - -Je gaat: - + Je spel personaliseren met **RGB-kleuren** - + **Voorwaardelijke instructies** (`if`, `elif`, `else`) gebruiken om beslissingen te nemen - + Vormen positioneren met **x, y-coördinaten** +Gebruik Python om een doel te tekenen en punten te scoren door het met pijlen te raken. ---- no-print --- +--- print-only --- -### Afspelen ▶️ +![Een boogschietdoel met een trefpunt op de buitenste cirkel. De tekst 'Je raakt de buitenste cirkel, 50 punten!' wordt eronder weergegeven](images/blue-points.png){:width="640px"} ---- task --- +--- /print-only --- +--- no-print ---
Klik op de knop **Run** hieronder om het spel te starten. Wanneer de stip op het doel 🎯 komt, klik je met de muis (of tik je op je tablet) om je pijl af te schieten. -Probeer een paar keer. Je score verschijnt in het uitvoergebied onder het doel. Hoe verandert je score als de pijl op de verschillende kleuren landt?
-**Tip:** 💡 Wanneer je op **Stop** drukt, ziet je een prompt met de tekst 'Execution Interrupted'. Dit betekent alleen maar dat je het programma hebt gestopt terwijl de code nog actief was. - ---- /task --- - --- /no-print --- ---- print-only --- - -![Een boogschietdoel met een trefpunt op de buitenste cirkel. De tekst 'Je raakt de buitenste cirkel, 50 punten!' wordt eronder weergegeven](images/blue-points.png){:width="640px"} +
+ Vul onze enquête in om onze Code Editor te helpen verbeteren! +
---- /print-only --- -

-Het oudste bewijs voor boogschieten komt uit de Sibudu-grot in KwaZulu-Natal, Zuid-Afrika. Er zijn overblijfselen gevonden van pijlpunten van steen en been, die dateren van 60.000 tot 70.000 jaar geleden. -

-![](http://code.org/api/hour/begin_coderdojo_target.png) diff --git a/nl-NL/step_2.md b/nl-NL/step_2.md index 73a4e574b..4714693e6 100644 --- a/nl-NL/step_2.md +++ b/nl-NL/step_2.md @@ -1,73 +1,11 @@ -## Een achtergrond maken - -
-
-Je spel heeft een kleurrijke achtergrond nodig. -
-
- -![Het uitvoergebied met een luchtkleurige rechthoek boven een graskleurige rechthoek om de achtergrond te maken.](images/background.png){:width="300px"} - -
-
- -### Open het startproject - ---- task --- - -Open het project [Doelpraktijk-start](https://editor.raspberrypi.org/nl-NL/projects/target-practice-starter){:target="_blank"}. De code-editor wordt geopend in een ander browsertabblad. - -Als je een Raspberry Pi-account hebt, kun je op de knop **Save** klikken om een kopie op te slaan in je **Projecten**. - ---- /task --- - -### Bewerk de lucht - ---- task --- - -Het startproject heeft al wat code voor je geschreven. - -Klik op **'Run'** om een blauw gevulde rechthoek te zien die is getekend van x=`0`, y=`0` (de bovenkant van het scherm). Deze rechthoek van `400` x `250` pixels is de lucht. - -![Een blauwe rechthoek met een zwarte rand eromheen, daarboven een grijze rechthoek. De linkerbovenhoek van het canvas is gemarkeerd als x=0, y=0 dit is de oorsprong van de rechthoek. De breedte wordt gemarkeerd als 400 en de hoogte als 250. De code rect(0, 0, 400, 250) wordt weergegeven.](images/sky_stroke.png){:width="300px"} - -**Tip:** 💡 Coördinaten beginnen vanaf (x=0, y=0) in de linkerbovenhoek. Dit kan anders zijn dan andere coördinatenstelsels die je hebt gebruikt. - ---- /task --- - ---- task --- - -De lucht is getekend met een zwarte rand (lijn). - -Om de lijn voor alle vormen uit te schakelen, voeg je `no_stroke()` toe aan de `setup` functie: - ---- code --- ---- -language: python -filename: main.py — setup() -line_numbers: true -line_number_start: 9 -line_highlights: 12 ---- -def setup(): -# Stel je spel hier in - size(400, 400) # Breedte en hoogte van het scherm - no_stroke() - ---- /code --- - ---- /task --- +## Teken het gras --- task --- -**Run** je code opnieuw en merk 👀 op dat de rand (lijn) nu is verdwenen. - -**Tip:** 💡 Je moet op **Stop** drukken om je programma te stoppen. Hierdoor zal de **Run** knop opnieuw verschijnen. +Open het project [Doelpraktijk-start](https://editor.raspberrypi.org/nl-NL/projects/target-practice-starter){:target="_blank"}. --- /task --- -### Teken het gras - --- task --- **Voeg** code toe om een groene rechthoek onder aan het scherm te tekenen. @@ -77,22 +15,19 @@ def setup(): --- code --- --- language: python -filename: main.py — draw() line_numbers: true -line_number_start: 14 -line_highlights: 18-19 +line_number_start: 17 +line_highlights: 21-22 --- def draw(): -# Dingen om te doen in elk frame - fill('cyan') # Stel de kleur voor de lucht in op cyaan - rect(0, 0, 400, 250) # Teken een rechthoek voor de lucht met deze waarden voor x, y, breedte en hoogte - fill('lightgreen') # Stel de kleur voor het gras in op lichtgroen - rect(0, 250, 400, 150) # Teken een rechthoek voor het gras met deze waarden voor x, y, breedte en hoogte + # Dingen om te doen in elk frame + fill('cyan') + rect(0, 0, 400, 250) + fill('lightgreen') + rect(0, 250, 400, 150) --- /code --- -**Tip:** 💡 We hebben opmerkingen aan onze code toegevoegd, zoals `# Stel de vulkleur voor de lucht in op cyaan`, om je te vertellen wat dit doet. Je hoeft deze opmerkingen niet aan je code toe te voegen, maar ze zijn nuttig om je eraan te herinneren wat coderegels doen. - --- /task --- --- task --- diff --git a/nl-NL/step_3.md b/nl-NL/step_3.md index 893062ed4..65931f819 100644 --- a/nl-NL/step_3.md +++ b/nl-NL/step_3.md @@ -15,7 +15,7 @@ Je spel heeft een doel nodig om pijlen op te schieten. --- task --- -Stel de vulkleur in op `sienna` (bruin). +Stel de vulkleur in op `brown` (bruin). Teken een driehoek met de x- en y-coördinaten voor elk van de hoeken. @@ -24,15 +24,14 @@ Teken een driehoek met de x- en y-coördinaten voor elk van de hoeken. --- code --- --- language: python -filename: main.py - draw() line_numbers: true -line_number_start: 18 -line_highlights: 20, 21 +line_number_start: 21 +line_highlights: 23-24 --- - fill('lightgreen') # Stel de kleur voor het gras in op lichtgroen - rect(0, 250, 400, 150) # Teken een rechthoek voor het gras met deze waarden voor x, y, breedte en hoogte - fill('sienna') # Bruine kleur - triangle(150, 350, 200, 150, 250, 350) # Teken een driehoek voor de standaard van het doel + fill('lightgreen') + rect(0, 250, 400, 150) + fill('brown') + triangle(150, 350, 200, 150, 250, 350) --- /code --- @@ -61,17 +60,15 @@ Teken een cirkel met x- en y-coördinaten voor het midden en de breedte. --- code --- --- language: python -filename: main.py - draw() line_numbers: true -line_number_start: 20 -line_highlights: 22, 23 +line_number_start: 23 +line_highlights: 25-26 --- - - fill('sienna') # Bruine kleur - triangle(150, 350, 200, 150, 250, 350) # Teken een driehoek voor de stand van het doelwit - fill('blue') # Stel de vulkleur van cirkel naar blauw - circle(200, 200, 170) # Teken de buitenste cirkel - + fill('brown') + triangle(150, 350, 200, 150, 250, 350) + fill('blue') + circle(200, 200, 170) + --- /code --- --- /task --- @@ -95,20 +92,17 @@ Het doel is gemaakt van cirkels van verschillende grootte met dezelfde centrale --- code --- --- language: python -filename: main.py - draw() line_numbers: true -line_number_start: 20 -line_highlights: 24, 25, 26, 27 +line_number_start: 25 +line_highlights: 27-30 --- - fill('sienna') # Bruine kleur - triangle(150, 350, 200, 150, 250, 350) # Teken een driehoek voor de standaard van het doel - fill('blue') # Stel de kleur van de cirkel in op blauw - circle(200, 200, 170) # Teken de buitenste cirkel - fill('red') # Stel de kleur voor de cirkel in op rood - circle(200, 200, 110) # Teken de binnenste cirkel met x, y, breedte - fill('yellow') # Stel de kleur voor de cirkel in op geel - circle(200, 200, 30) # Teken de middelste cirkel met x, y, breedte + fill('blue') + circle(200, 200, 170) + fill('red') + circle(200, 200, 110) # Teken de binnenste cirkel + fill('yellow') + circle(200, 200, 30) # Teken de middelste cirkel --- /code --- @@ -122,45 +116,4 @@ line_highlights: 24, 25, 26, 27 --- /task --- ---- task --- - -**Kies:** 💭 Verander een van de kleuren met een andere kleurnaam. Je kunt een lijst met alle beschikbare kleurnamen vinden op [W3 Schools](https://www.w3schools.com/colors/colors_names.asp){:target="blank"}. - -![Een bruine driehoek op gras en tegen een lucht met de coördinaatpunten gelabeld. De kleuren zijn veranderd in verschilende tinten roze en paars.](images/alternative-colours.png){:width="400px"} - ---- collapse --- ---- -title: Voorbeeldcode met verschillende kleuren ---- - ---- code --- ---- -language: python -filename: main.py - draw() -line_numbers: false -line_number_start: 14 -line_highlights: ---- -def draw(): -# Dingen om te doen in elk frame - - fill('BlueViolet') - rect(0, 0, 400, 250) # Lucht - fill('DeepSkyBlue') - rect(0, 250, 400, 150) # Grond - fill('FireBrick') - triangle(150, 350, 200, 150, 250, 350) # Standaard - fill('LemonChiffon') - circle(200, 200, 170) # Buitenste cirkel - fill('DeepPink') - circle(200, 200, 110) # Binnenste cirkel - fill('BlueViolet') - circle(200, 200, 30) # Middelste cirkel - ---- /code --- - ---- /collapse --- - ---- /task --- - --- save --- diff --git a/nl-NL/step_4.md b/nl-NL/step_4.md index 7a862305b..8290456ca 100644 --- a/nl-NL/step_4.md +++ b/nl-NL/step_4.md @@ -2,7 +2,7 @@
-Wanneer je klikt of tikt, zal er een pijl worden afgevuurd op de positie van een bewegende doelcirkel. +Voeg een nog kleinere cirkel toe die een pijlt voorstelt.
@@ -11,33 +11,25 @@ Wanneer je klikt of tikt, zal er een pijl worden afgevuurd op de positie van een
-### Teken elk frame een doelcirkel - -

Computerspelletjes, video's en animaties creëren het effect van beweging door veel afbeeldingen achter elkaar te laten zien. Elke afbeelding wordt een frame genoemd. -

+### Waar ga je schieten? --- task --- -Definieer je `schiet_pijl()` functie onder de opmerking **# De schiet_pijl functie komt hier**. - -Voeg code toe om een bruine cirkel binnen een doelgebied willekeurig te tekenen: - -![Een rechthoek met de coördinaten van het doelgebied in een semi-transparante rechthoek. Het doelgebied ligt tussen x=100 en y=100 tot x=300 en y=300 dus beslaat het hele doel en breder.](images/target_area.png) +Voeg een functie toe om een bruine cirkel te tekenen op de coördinaten `200`, `200`. --- code --- --- language: python -filename: main.py — shoot_arrow() line_numbers: true -line_number_start: 7 -line_highlights: 8-12 +line_number_start: 8 +line_highlights: 9-13 --- -# De schiet_pijl functie komt hier +# De schiet_pijl functie komt hier def schiet_pijl(): - pijl_x = randint(100, 300) # Bewaar een willekeurig getal tussen 100 en 300 - pijl_y = randint(100, 300) # Bewaar een willekeurig getal tussen 100 en 300 - fill('sienna') # Stel vulkeur van de pijl in op bruin - circle(pijl_x, pijl_y, 15) # Teken een kleine cirkel op willekeurige coördinaten + pijl_x = 200 + pijl_y = 200 + fill('brown') + circle(pijl_x, pijl_y, 15) --- /code --- @@ -45,18 +37,17 @@ def schiet_pijl(): --- task --- -Ga naar de functie `draw` en roep je nieuwe `schiet_pijl` functie aan. +Ga naar de functie `draw()`{:.language-python} en roep je nieuwe `schiet_pijl()`{:.language-python} functie aan. --- code --- --- language: python -filename: main.py — draw() line_numbers: true -line_number_start: 31 -line_highlights: 33 +line_number_start: 33 +line_highlights: 35 --- - fill('yellow') # Stel de kleur voor de cirkel in op geel - circle(200, 200, 30) # Teken de middelste cirkel met x, y, breedte + fill('yellow') + circle(200, 200, 30) schiet_pijl() --- /code --- @@ -65,90 +56,45 @@ line_highlights: 33 --- task --- -**Test:** 🔄 Voer je code uit en zie de pijl in elk frame op een willekeurige positie verschijnen. +**Test:** Klik op de knop **Run**. Je zou de pijl in het midden moeten zien. -![Het doelwit op de achtergrond met een bruine cirkelpijl erop.](images/fire_arrow.gif) +![een bruine pijlcirkel in het midden van het doel](images/arrow-centre.png) -De achtergrond en het doel worden over de oude pijl getekend. Dit betekent dat je maar één pijl tegelijk ziet. --- /task --- -### Bij welke kleur raakt de pijl het doel +De pijl moet willekeurig bewegen. -De functie `get()` retourneert de kleur van een pixel. - -

-Een pixel, een afkorting van picture element, is een enkele gekleurde stip in een afbeelding. Afbeeldingen zijn opgebouwd uit veel gekleurde pixels. -

--- task --- -Voeg een **globale variabele** toe met de naam `raak_kleur` die in je hele code kan worden gebruikt. - -Voeg code toe om de `raak_kleur` op te slaan. Gebruik de functie `get()` om de kleur van de pixel te vinden op de coördinaten `pijl_x` en `pijl_y` — het midden van de pijl. Om de kleuren te vergelijken, moeten we de hexadecimale code gebruiken. Dit kan gedaan worden met de string `.hex`. +Wijzig de `pijl_x`{:.language-python} en `pijl_y`{:.language-python} variabelen om een willekeurig getal tussen 100 en 300 te kiezen. --- code --- --- language: python -filename: main.py — shoot_arrow() line_numbers: true -line_number_start: 7 -line_highlights: 9, 12 +line_number_start: 9 +line_highlights: 10-11 --- -# De schiet_pijl functie komt hier def schiet_pijl(): - global raak_kleur # Kan ook gebruikt worden in andere functies - pijl_x = randint(100, 300) # Bewaar een willekeurig getal tussen 100 en 300 - pijl_y = randint(100, 300) # Bewaar een willekeurig getal tussen 100 en 300 - raak_kleur = get(pijl_x, pijl_y).hex # Haal de geraakte kleur op - fill('sienna') # Stel vulkeur van de pijl in op bruin - circle(pijl_x, pijl_y, 15) # Teken een kleine cirkel op willekeurige coördinaten + pijl_x = randint(100, 300) + pijl_y = randint(100, 300) + fill('brown') + circle(pijl_x, pijl_y, 15) --- /code --- -**Tip:** 💡 De `get`-code om de kleur op te halen en op te slaan moet **vóór** de code om de `cirkel` te tekenen staan, anders bewaar je altijd de (hout) kleur van de pijl! - --- /task --- -### Druk de kleur af wanneer de muis wordt ingedrukt - -De `p5` bibliotheek 'luistert' naar bepaalde gebeurtenissen, één daarvan is het indrukken van de muisknop. Wanneer het detecteert dat de muis knop is ingedrukt, zal het de code uitvoeren die het is gegeven in de `mouse_pressed()` functie. --- task --- -Definieer je `mouse_pressed()` functie onder de opmerking **# De mouse_pressed functie komt hier**. -Voeg code toe om de doel-emoji 🎯 af te drukken wanneer met de muis wordt geklikt. - ---- code --- ---- -language: python -filename: main.py - mouse_pressed() -line_numbers: true -line_number_start: 5 -line_highlights: 6 ---- - -# De mouse_pressed functie komt hier -def mouse_pressed(): - print('🎯') - ---- /code --- - ---- /task --- - ---- task --- - -**Test:** 🔄 Voer je project uit. - -Het project drukt 🎯 af telkens wanneer de pijl opnieuw wordt getekend. +**Test:** Klik op de knop **Run**. Je zou de pijl rond het doel moeten zien springen. ![Een animatie van een doelwit met een bruine cirkelpijl die in verschillende posities verschijnt.](images/fire_arrow.gif) -**Debuggen:** 🐞 Als je een bericht ziet dat `raak_kleur` 'niet gedefinieerd' is, ga dan terug naar `schiet_pijl()` functie en controleer of je de regel `global raak_kleur` hebt. - -**Debuggen:** 🐞 Controleer de `print` regel heel goed op komma's en haakjes. - --- /task --- --- save --- diff --git a/nl-NL/step_5.md b/nl-NL/step_5.md index 469010376..b65e84819 100644 --- a/nl-NL/step_5.md +++ b/nl-NL/step_5.md @@ -1,106 +1,60 @@ -## Punten scoren +## Welke kleur heb je geraakt? -
-
-In deze stap voeg je scores toe afhankelijk van waar de pijl raakt. -
-
+Vervolgens voeg je wat code toe om de kleur op de plek van de pijl op te halen. -![Het doel, met de pijl die op verschillende posities verschijnt, en scores die als tekst onder het spel verschijnen.](images/points-scored.gif){:width="300px"} - -
-
- -

-We gebruiken steeds voorwaarden om beslissingen te nemen. We zouden kunnen zeggen 'als het potlood bot is, slijp het dan'. Net zo laten `if`-voorwaarden ons code schrijven die iets anders doet, afhankelijk van of een voorwaarde waar of onwaar is. -

- -### Geef de scores weer +### Haal de kleur op die door de pijl wordt geraakt --- task --- -Verwijder ❌ de coderegel `print('🎯')`. +Voeg een nieuwe **globale variabele** toe met de naam `raak_kleur`. ---- code --- ---- -language: python -filename: main.py -line_numbers: true -line_number_start: 5 -line_highlights: 7 ---- -# De mouse_pressed functie komt hier -def mouse_pressed(): +Voeg code toe om de kleur in het midden van de pijl `op te halen` en sla deze op in de variabele `raak_kleur`. ---- /code --- - ---- /task --- - ---- task --- - -Geef een bericht weer **als** de `raak_kleur` gelijk is aan de `buitenste` cirkelkleur (blauw) 🎯. - -Merk op 👀 dat de code twee gelijktekens `==` gebruikt om **gelijk aan** aan te duiden. - --- code --- --- language: python -filename: main.py - mouse_pressed() line_numbers: true -line_number_start: 5 -line_highlights: 7, 8 +line_number_start: 9 +line_highlights: 10, 13, 14 --- - -# De muis_ingedrukt functie komt hier -def mouse_pressed(): - if raak_kleur == Color('blue').hex: # Net als bij functies worden 'if'-instructies ingesprongen - print('Je hebt de buitenste cirkel geraakt, 50 punten!') +def schiet_pijl(): + global raak_kleur + pijl_x = randint(100, 300) + pijl_y = randint(100, 300) + raak_kleur = get(pijl_x, pijl_y).hex + print(raak_kleur) + fill('brown') + circle(pijl_x, pijl_y, 15) --- /code --- -**Tip:** 💡 Als je de kleur van je buitenste cirkel hebt gewijzigd, moet je `'blue'` vervangen door de kleurnaam die je hebt gekozen. +**Tip:** 💡 De `get`-code om de kleur op te halen en op te slaan moet **vóór** de code om de `cirkel` te tekenen staan, anders bewaar je altijd de bruin kleur van de pijl! --- /task --- --- task --- -**Test:** 🔄 Voer je project uit. Probeer de pijl op de blauwe buitenste cirkel af te vuren om het bericht te zien. - -**Tip:** 💡 `frame_rate=2`, in `run` onderaan je code uit, bepaalt hoe snel je spel tekent. Als het te snel gaat, stel het dan in op een lager getal. - -![Het uitvoergebied met de pijl die de buitenste cirkel raakt. De punten worden getoond in het uitvoergebied.](images/blue-points.png) - -**Debug:** 🐞 Controleer of je de Amerikaanse spelling van 'Color' hebt gebruikt (zonder 'u') en of 'Color' met een hoofdletter is geschreven. - -**Debug:** 🐞 Zorg ervoor dat je code exact overeenkomt en dat je de code hebt ingesprongen in je `if`-instructie. - -**Debug:** 🐞 Zorg ervoor dat je de juiste kleurnaam hebt ingevoerd die je hebt gebruikt voor je **buitenste** cirkel. +**Test:** Klik op de knop **Run**. --- /task --- -`elif` (else - if) kan worden gebruikt om meer voorwaarden toe te voegen aan je `if`-instructie. Deze worden van boven naar beneden gelezen. Zodra een **True** voorwaarde wordt gevonden, wordt hierop actie ondernomen. Eventuele resterende voorwaarden worden genegeerd. +### Code uitvoeren wanneer de muis wordt ingedrukt --- task --- -Scoor punten als de pijl op de `binnenste` of `middelste` cirkels terechtkomt 🎯: +Maak een comment van de regel die de kleur print. Dit betekent dat het niet zal werken. --- code --- --- language: python -filename: main.py - mouse_pressed() line_numbers: true -line_number_start: 6 -line_highlights: 9-12 +line_number_start: 13 +line_highlights: 14 --- - -def mouse_pressed(): - if hit_kleur == Color('blue').hex: - print('Je raakt de buitenste cirkel, 50 punten!') - elif hit_kleur == Color('red').hex: - print('Je hebt de binnenste cirkel geraakt, 200 punten!') - elif hit_kleur == Color('yellow').hex: - print('Je raakt het midden, 500 punten!') + raak_kleur = get(pijl_x, pijl_y).hex + # print(raak_kleur) + circle(pijl_x, pijl_y, 15) --- /code --- @@ -108,59 +62,29 @@ def mouse_pressed(): --- task --- -**Test:** 🔄 Voer je project uit. Probeer de pijl op de binnenste en middelste cirkels te schieten om hun berichten te zien. - -![Het uitvoergebied met de pijl die de binnenste cirkel raakt. De punten worden getoond in het uitvoergebied.](images/yellow-points.png) - -**Debug:** 🐞 Controleer of je inspringing overeenkomt met het voorbeeld. - -**Debuggen:** 🐞 Als je een bericht ziet over `raak_kleur` die 'niet gedefinieerd' is, ga dan terug naar `draw()` en controleer de regel waarin `raak_kleur` als globale variabele gedeclareerd is. - -**Debuggen:** 🐞 Zorg ervoor dat je de juiste kleurnaam hebt ingevoerd voor **jouw** cirkels. - -**Debug:** 🐞 Zorg ervoor dat je de `.hex` string hebt gebruikt voor **jouw** cirkelkleuren. - ---- /task --- - -### Het doel missen - -Er is nog een beslissing die je moet nemen: wat gebeurt er als de pijl niet op een van de doelcirkels landt? ❌ - -Om deze laatste controle uit te voeren, gebruik je `else`. - ---- task --- - -Voeg code toe om een bericht `te tonen` `als` aan geen van de `if` en `elif` voorwaarden is voldaan. +Voeg code toe om de doel-emoji 🎯 af te drukken **wanneer met de muis wordt geklikt**. --- code --- --- language: python -filename: main.py line_numbers: true -line_number_start: 6 -line_highlights: 13-14 +line_number_start: 5 +line_highlights: 6-7 --- - -def mouse_pressed(): - if hit_kleur == Color('blue').hex: - print('Je raakt de buitenste cirkel, 50 punten!') - elif hit_kleur == Color('red').hex: - print('Je hebt de binnenste cirkel geraakt, 200 punten!') - elif hit_kleur == Color('yellow').hex: - print('Je raakt het midden, 500 punten!') - else: - print('Je hebt gemist! Geen punten!') +# De mouse_pressed functie komt hier +def mouse_pressed(): + print('🎯') --- /code --- --- /task --- ---- task --- +--- task --- -**Test:** 🔄 Voer je project uit. Probeer de pijl in het gras of de lucht te laten landen om het bericht 'Gemist' te zien. +**Test:** Klik op de knop **Run**. Wanneer je met de muis op het doel klikt, zou je het teken 🎯 moeten zien. -**Kies:** 💭 Verander het aantal punten dat voor de verschillende kleuren wordt gescoord. +![doel-emoji geprint wanneer met de muis wordt geklikt](images/target_printed.gif) --- /task --- ---- save --- +--- save --- \ No newline at end of file diff --git a/nl-NL/step_6.md b/nl-NL/step_6.md index 2097d0e6f..2bc41c338 100644 --- a/nl-NL/step_6.md +++ b/nl-NL/step_6.md @@ -1 +1,131 @@ -## Snelle quiz \ No newline at end of file +## Punten scoren + +
+
+Afhankelijk van waar de pijl terechtkomt, wordt er een score toegekend. +
+
+ +![Een animatie van het doel, waarbij de pijl in verschillende posities verschijnt en de scores als tekst onder het spel verschijnen.](images/points-scored.gif){:width="300px"} + +
+
+ +--- task --- + +Maak een comment van de regel die het teken 🎯 print, zodat deze niet meer wordt uitgevoerd. + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 6 +line_highlights: 7 +--- +def mouse_pressed(): + # print('🎯') + +--- /code --- + +--- /task --- + +--- task --- + +Geef een bericht weer **als** de `raak_kleur`{:.language-python} gelijk is aan de `buitenste` cirkelkleur (blauw). + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 6 +line_highlights: 8-9 +--- +def mouse_pressed(): + # print('🎯') + if raak_kleur == Color('blue').hex: + print('Je raakt de buitenste cirkel, 50 punten!') + +--- /code --- + +**Tip:** Als je de kleur van je buitenste cirkel hebt gewijzigd, moet je `'blue'` vervangen door de kleurnaam die je hebt gekozen. + +--- /task --- + +--- task --- + +**Test:** Klik op de knop **Run**. Wacht tot de pijl in de blauwe cirkel terechtkomt en klik vervolgens op de linkermuisknop. +![punten gescoord toen op de blauwe cirkel werd geklikt](images/blue_circle_points.gif) + +--- /task --- + +`elif`{:.language-python} kan worden gebruikt om meer voorwaarden toe te voegen aan je `if`{:.language-python} statement. + +--- task --- + +Voeg wat meer code toe om punten te scoren als de pijl op de **binnenste** of **middelste** cirkel terechtkomt. + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 6 +line_highlights: 10-14 +--- + +def mouse_pressed(): + # print('🎯') + if raak_kleur == Color('blue').hex: + print('Je raakt de buitenste cirkel, 50 punten!') + elif raak_kleur == Color('red').hex: + print('Je hebt de binnenste cirkel geraakt, 200 punten!') + elif raak_kleur == Color('yellow').hex: + print('Je raakt het midden, 500 punten!') + +--- /code --- + +--- /task --- + +--- task --- + +**Test:** Klik op de knop **Run**. Je zou punten moeten scoren wanneer je het doel raakt. + +![punten die op een willekeurig gebied van het doel worden gescoord](images/yellow-points.png) + +--- /task --- + +### Het doel missen + +Er is nog een beslissing die je moet nemen: wat gebeurt er als de pijl niet op een van de doelcirkels landt? + +Om deze laatste controle uit te voeren, gebruikt je `else`{:.language-python}. + +--- task --- + +Voeg code toe aan het `print` commando om een bericht weer te geven wanneer geen van de `if` en `elif` statements waar zijn. + +--- code --- +--- +language: python +line_numbers: true +line_number_start: 12 +line_highlights: 14-15 +--- + + elif raak_kleur == Color('yellow').hex: + print('Je raakt het midden, 500 punten!') + else: + print('Je hebt gemist! Geen punten!') + +--- /code --- + +--- /task --- + +--- task --- + +**Test:** Klik op de knop **Run**. Probeer de pijl in het gras of de lucht te laten landen om het gemist bericht te zien. + +![geen punten weergegeven wanneer buiten het doelgebied](images/missed_no_points.gif) + +--- /task --- + +--- save --- diff --git a/nl-NL/step_7.md b/nl-NL/step_7.md index 1844fabda..2097d0e6f 100644 --- a/nl-NL/step_7.md +++ b/nl-NL/step_7.md @@ -1,34 +1 @@ -## Verbeter je project - -
-
-Nu is het jouw beurt! Wat kun jij nog meer toevoegen aan je project? Misschien kun je de moeilijkheidsgraad aanpassen of meer cirkels aan je doel toevoegen. -
-
- -![Het uitvoergebied toont een doel met vijf cirkels.](images/five_circles.png){:width="300px"} - -
-
- ---- task --- - -Je kunt: - -+ Een `vierde` en `vijfde` cirkel toevoegen, in nieuwe kleuren, die verschillende punten scoren op basis van hun positie 🟠🟣 -+ Emoji in je gedrukte berichten zetten ([hier is een lijst met emoji](https://unicode.org/emoji/charts/full-emoji-list.html){:target="_blank"} waaruit je kunt kopiëren) 🎯 -+ Het spel gemakkelijker of moeilijker maken door de waarde van `frame_rate=2` te wijzigen 💨 -+ `input()` gebruiken om de gebruiker te vragen op welk moeilijkheidsniveau ze willen spelen 🗣️ - ---- /task --- - -![Drie projectideeën, één heeft vijf cirkels, één heeft een moeilijkheidsinvoervraag en één heeft emoji's in het puntenbericht.](images/upgrade-ideas.png) - ---- collapse --- ---- -title: Voltooid project ---- - -Je kunt het [voltooide project hier](https://editor.raspberrypi.org/nl-NL/projects/target-practice-solution){:target="_blank"} bekijken. - ---- /collapse --- +## Snelle quiz \ No newline at end of file diff --git a/nl-NL/step_8.md b/nl-NL/step_8.md index 21f098221..ac37fce08 100644 --- a/nl-NL/step_8.md +++ b/nl-NL/step_8.md @@ -1,41 +1,36 @@ -## Wat kun je verder nog doen? +## Uitdaging -Als je het [Inleiding tot Python](https://projects.raspberrypi.org/nl-NL/raspberrypi/python-intro) pad volgt, kun je doorgaan naar het [Raket lanceren](https://projects.raspberrypi.org/nl-NL/projects/rocket-launch) project. In dit project maak je een interactieve animatie van een raket die een satelliet in een baan om de aarde lanceert. +--- challenge --- ---- print-only --- -![Raket lancering-project.](images/showcase_rocket.png){:width="600px"} +Je kunt: ---- /print-only --- ---- no-print --- +--- task --- + +Een `vierde` en `vijfde` cirkel toevoegen, in nieuwe kleuren, die verschillende punten scoren op basis van hun positie + +--- /task --- --- task --- -**Probeer het:** Je programma zal de animatie aanpassen op basis van de hoeveelheid brandstof die je het geeft en het zal er wel of niet in slagen om een baan om de aarde te bereiken. Hoeveel brandstof wil je gebruiken om de baan te bereiken, maar niet te veel extra brandstof te verspillen? +Emoji in je geprinte berichten zetten ([hier is een lijst met emojis](https://unicode.org/emoji/charts/full-emoji-list.html){:target="_blank"} waaruit je kunt kopiëren) -**Tip:** Ongeveer 25.000 kg zou genoeg moeten zijn, maar experimenteer met de cijfers om te zien wat er gebeurt. +--- /task --- -Klik op de knop **Run** om een voorbeeld van dit project te bekijken. +--- task --- - +Het spel gemakkelijker of moeilijker maken door de waarde van `frame_rate=2` te wijzigen -![Raket lancering-project](images/showcase_rocket.png){:width="600px"} --- /task --- ---- /no-print --- +--- task --- -Als je meer plezier wilt hebben bij het verkennen van Python, dan kun je een van [deze projecten](https://projects.raspberrypi.org/nl-NL/projects?software%5B%5D=python) uitproberen. +Voeg een variabele toe om de totaalscore bij te houden en tel er elke keer het juiste aantal punten bij op. -*** +--- /task --- -Dit project werd vertaald door vrijwilligers: -Max Schaaper -Robert-Jan Kempenaar -Iny van Beuningen -Jeroen Wernsen -Dankzij vrijwilligers kunnen we mensen over de hele wereld de kans geven om in hun eigen taal te leren. Jij kunt ons helpen meer mensen te bereiken door vrijwillig te starten met vertalen - meer informatie op [rpf.io/translate](https://rpf.io/translate). +--- /challenge --- diff --git a/nl-NL/step_9.md b/nl-NL/step_9.md new file mode 100644 index 000000000..a1ad68f78 --- /dev/null +++ b/nl-NL/step_9.md @@ -0,0 +1,33 @@ +## Wat kun je verder nog doen? + +Als je het [Inleiding tot Python](https://projects.raspberrypi.org/nl-NL/raspberrypi/python-intro) pad volgt, kun je doorgaan naar het [Raket lanceren](https://projects.raspberrypi.org/nl-NL/projects/rocket-launch) project. In dit project maak je een interactieve animatie van een raket die een satelliet in een baan om de aarde lanceert. + +--- print-only --- + +![Raket lanceren-project.](images/showcase_rocket.png){:width="600px"} + +--- /print-only --- + +--- no-print --- + +Klik op de knop **Run** om een voorbeeld van dit project te bekijken. + + + +--- /no-print --- + +Of waarom probeer je geen ander [Python](https://projects.raspberrypi.org/nl-NL/projects?software%5B%5D=python) project? + +*** + +Dit project werd vertaald door vrijwilligers: + +Max Schaaper +Robert-Jan Kempenaar +Iny van Beuningen +Jeroen Wernsen +Eric van Doorn + +Dankzij vrijwilligers kunnen we mensen over de hele wereld de kans geven om in hun eigen taal te leren. Jij kunt ons helpen meer mensen te bereiken door vrijwillig te starten met vertalen - meer informatie op [rpf.io/translate](https://rpf.io/translate). +