Introduction

Tout au long des amicales, tu pourras te servir de ce site comme référence. Dans la barre de menu déroulant, tu y trouveras les défis des années précédentes ainsi que ceux de cette année, ainsi que quelques informations sur le langage Python et certaines notions de mathématiques dont nous aurons besoin.

Si tu as besoin de plus d'informations sur les différentes fonctionnalités de RSK, je t'invite à consulter le site officiel (clic ici) ,et notamment la section dédiée à la programming

N’hésite pas à nous appeler si tu as du mal à comprendre une consigne ou si tu es bloqué quelque part, nous nous ferons un plaisir de répondre à toutes tes questions 😄.

Les défis peuvent également être réalisés chez toi. Si c’est le cas, tu peux nous contacter sur Discord ou par email à clement.labbe33@gmail.com

Commencer les défis →

Installation

Prérequis

Si vous utilisez un ordinateur que nous vous avons fourni, veuillez passer directement à l'introduction.

  • Système d'exploitation : Windows ou Linux

  • Installer Python 3.12.7 : Téléchargez la version appropriée pour votre système depuis le site officiel python.org.

    📸 Procédure d'installation : Python 3.12.7 aperçu 1 aperçu 2 aperçu 3


  • utiliser Google Chrome : Téléchargez et installez Google Chrome depuis le site officiel. Définissez-le comme navigateur par défaut.

Installation du paquet Robot Soccer Kit

Dans un terminal, exécutez la commande suivante :

pip install robot-soccer-kit[gc]

Lancement

Pour démarrer le contrôleur de jeu, exécutez la commande suivante dans un terminal :

python -m rsk.game_controller -s

Après avoir exécuté la commande, la page suivante devrait s'afficher :

image.png

Félicitations tu es prêt ! →

Ressources - Soccer Cam Track

Supports pédagogiques

Matériel

À compléter

Conseils de mise en œuvre

À compléter

Vidéos - Soccer Cam Track

Vidéos pédagogiques

Liste des vidéos à venir

Démonstrations

Défis

🌐 Défi RSK 1 : Mission "Un monde de couleur" 🌐

Votre mission, si vous l'acceptez, est d'illuminer le monde digital avec une cascade de couleurs éblouissantes. Armé de votre expertise et du puissant client RSK, vous allez plonger dans un univers où la couleur est reine.

🎨 Lumière Verte, Action !

Une fois connecté, votre objectif est d’allumer les LEDS en vert éclatant. Utilisez la combinaison de couleurs suivante pour créer un vert pur :

  • Rouge (R) : 0
  • Vert (G) : 255
  • Bleu (B) : 0

Votre code ressemblera à ceci :

import rsk

with rsk.Client() as client:
    while True:
        client.blue1.leds(0, 255, 0)
🌈 Déchaînez votre Créativité :

N’hésitez pas à expérimenter avec différentes couleurs et intensités pour créer des effets visuels étonnants.

Bonne chance dans ce défi coloré, et que les meilleures couleurs gagnent!

🌐 Défi RSK 2 : Mission "Surveillance des Coordonnées" 🌐

Votre mission est de surveiller et d'afficher les coordonnées des agents sur le terrain : nos fidèles robots, codés "Bleu 1", "Bleu 2", "Vert 1" et "Vert 2". Chaque robot a sa propre trajectoire et position dans l'espace, et il est crucial de les suivre avec précision.

🎯 Surveillance de la Cible - La Balle :

En plus de suivre nos agents robots, une cible mobile - une balle - est en jeu. Votre mission inclut également de traquer et d'afficher en continu les coordonnées de cette balle.

🧩 Défi Technique :

Votre code devra récupérer et afficher les positions X, Y de chaque robot et de la balle. Cela nécessite une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel.

👁‍🗨 Visualisation des Données :

Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est la clé pour comprendre le champ de bataille numérique.

🌐 Défi RSK 3 : Mission "Navigation Stratégique" 🌐

Après avoir maîtrisé l'art de l'illumination et de la surveillance, il est temps de passer à la navigation et à la stratégie. Dans ce défi, vous allez diriger un robot dans une danse délicate de positionnement et de mouvement.

🌐 Votre Mission :

Au lieu de tourner autour d'une cible, votre tâche est de guider le robot vers des points cardinaux spécifiques autour de la balle. Pensez à cela comme un jeu de positionnement stratégique : Nord, Sud, Est, Ouest.

🤖 Manœuvres du Robot :

Vous contrôlerez le robot "Bleu 1" pour le déplacer vers des points prédéterminés autour de la balle, en utilisant des coordonnées relatives. Votre agilité en programmation et votre sens de la précision seront essentiels ici.

📍 Instructions de Navigation :
  1. Déplacez le robot de 0.25 mètres à l'ouest de la balle.
  2. Ensuite, dirigez-le 0.25 mètres au nord de la balle.
  3. Poursuivez en le déplaçant de 0.25 mètres à l'est.
  4. Enfin, amenez-le 0.25 mètres au sud de la position initiale.

🌐 Défi RSK 4 : Mission "Rotation Maîtrisée" 🌐

Votre quatrième mission dans l'arène numérique est une danse de précision et d'agilité. Dans ce nouveau défi, vous allez orchestrer une rotation élégante de votre robot, en mettant à l'épreuve votre maîtrise des commandes de mouvement.

🔄 Votre Mission :

Vous devez faire exécuter à votre robot une rotation complète sur lui-même. Cette manœuvre requiert un contrôle minutieux et une compréhension approfondie des commandes de votre robot.

🚨 Attention - Changement de Commande :

Pour ce défi, oubliez la commande goto habituelle. Vous allez plutôt utiliser la commande control pour diriger le robot. Cette approche vous donne un contrôle plus direct et précis sur les mouvements du robot, essentiel pour réussir une rotation parfaite.

🌐 Défi RSK 5 : Mission "Coup de Maître" 🌐

Votre cinquième mission dans cette aventure technologique consiste à manœuvrer votre robot de manière à frapper une balle placée au centre. Ce défi mettra à l'épreuve votre habileté à évaluer les distances et à contrôler le mouvement de votre robot.

⚽ Votre Mission :

Le but est de positionner et de faire avancer le robot pour qu'il frappe la balle située au centre. Cela nécessitera une compréhension fine de la dynamique et de la force nécessaire pour un impact efficace.

📐 Position de Départ :

Le robot commence sa mission depuis une position sur l'axe des x positifs (à une distance x quelconque du centre). Votre tâche est de le guider depuis cette position initiale jusqu'à la balle.

🌐 Défi RSK 6 : Mission "Passe Parfaite" 🌐

Votre sixième mission consiste à exécuter une passe précise entre deux robots. Ce défi nécessite une compréhension approfondie de la dynamique des mouvements et une synchronisation impeccable entre les deux robots.

⚽ Votre Mission :

Un robot doit envoyer la balle à un autre robot situé à une certaine distance. La clé est d'ajuster la force et l'angle de la passe pour assurer une réception réussie par le robot destinataire.

🌐 Défi RSK 7 : Mission "Orbite Circulaire" 🌐

Votre septième défi est de faire naviguer un robot autour d'une balle, en suivant la trajectoire d'un cercle parfait. Ce défi sollicitera vos compétences en géométrie et en programmation pour réaliser une orbite circulaire précise.

🔵 Votre Mission :

Faire tourner le robot autour de la balle en maintenant une distance constante, comme s'il suivait l'orbite d'un satellite. La trajectoire doit ressembler à un cercle parfait autour de la balle.

🏆 Défi RSK Final : Mission "Match Ultime" 🏆

Votre mission finale est de mettre en œuvre tout ce que vous avez appris pour orchestrer un match de robot. Ce défi combine stratégie, précision, coordination d'équipe, et adaptation en temps réel. Vous devrez faire preuve de créativité, de logique de programmation avancée et de compréhension tactique du jeu.

⚽ Votre Mission :

Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.

🤖 Stratégie et Exécution :
  • Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, passer à leurs coéquipiers, et tirer au but.
  • Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
  • Assurez une bonne communication et coordination entre les robots de la même équipe.

Défis

🌐 Défi RSK 1 : Mission "Au centre" ⭐★★★★ 🌐

Lors de votre match face à la redoutable équipe verte, vous avez calculé que la meilleure position pour marquer un but serait au centre du terrain.

Votre mission sera donc d'amener le robot Bleu 1 vers le centre du terrain afin qu'il puisse marquer ⚽⚽ !

🎯 Cours Forest ! Cours !

Une fois connecté, votre objectif est d'amener votre robot 1 vers le centre du terrain aux coordonnées x = 0 et y = 0.

Pour cela, vous utiliserez la redoutable commande Go To, qui ordonne à un robot d'aller à une position (x, y) avec une orientation theta.

client.<couleur><numeros>.goto((x,y,theta), wait=False)

Votre code ressemblera à ceci :

import rsk

with rsk.Client() as client: 
    while True:
        client.blue1.goto((0,0,0), wait=False)

💡 Astuce 💡 :

Vous pouvez aussi récupérer votre robot grâce à la commande robots, ce qui permet d'avoir un code plus facilement maintenable :

myRobot = client.robots['<couleur>'][<numeros>]

🌐 Défi RSK 2 : Mission "À l'œil" ⭐⭐★★★ 🌐

Votre match contre l'équipe verte est difficile, et il est nécessaire de vérifier les positions de vos ennemis pour adapter votre stratégie ! Votre mission : capturer un maximum d'informations afin de vaincre la redoutable équipe verte.

🎯 Surveillance Maximal :

Lors de cette mission, vous devrez récupérer toutes les informations dynamiques sur le terrain, ce qui inclut les coordonnées des 4 robots ainsi que celles de la balle, et les afficher.

🧩 Défi Technique :

Votre code devra récupérer et afficher les positions X, Y de chaque robot et de la balle. Cela nécessitera une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel. Il est conseillé de consulter la documentation de RSK pour compléter ce défi (Cliquez ici))

👁‍🗨 Visualisation des Données :

Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est essentielle pour comprendre le champ de bataille numérique.

Si vous êtes bloqué, voici un petit indice : indice

🌐 Défi RSK 3 : Mission "Mimétisme"⭐⭐★★★ 🌐

Lors de votre affrontement avec l'équipe verte, celle-ci utilise une technique mystérieuse qui désoriente vos robots ! Mais vous avez la solution : toujours regarder dans la même direction que votre ennemi !

🌐 Votre Mission :

Réutilisez et adaptez ce que vous avez réalisé lors de vos deux précédentes missions afin de Récupérer l'orientation du robot Vert 1 puis donner à votre robot Bleu 1 la même orientation.

🎯 Mime Mime Mime !

1 - Récupérez l'orientation theta du robot Vert 1 à l’aide des informations disponibles sur le terrain. 2 - Donnez l’ordre à votre robot Bleu 1 d’adopter la même orientation.

🌐 Défi RSK 4 : Mission "Adaptation Défensive !" ⭐⭐⭐★★ 🌐

L'attaquant de l'équipe verte ne cesse de marquer des buts. Pour l'arrêter, vous avez imaginé une méthode simple : placer votre deuxième robot en gardien de but.

🔄 Votre Mission :

Vous devrez utiliser la position en y de la balle pour contrer les tirs de l'équipe verte. Utilisez également les constantes fournies par la bibliothèque RSK afin de positionner votre gardien avec une précision optimale.

Voici un exemple pour récupérer les constantes :

import rsk
from rsk import constants

position_but = constants.defense_area_width # Correspond à la position en x des cages du côté positif du terrain
🧠 Curiosité 500% :

N'hésitez pas à explorer la bibliothèque RSK pour découvrir tout ce qu'elle contient ! Pourquoi ne pas commencer par examiner les différentes constantes disponibles ?

  • Astuce 1 : Tapez constants. et observez les propositions qui vous sont faites.
  • Astuce 2 : Pour une exploration plus poussée, appuyez sur CTRL + clic sur le mot constants. Vous accéderez directement aux fichiers de la bibliothèque 🤯.

Attention : Ne modifiez rien dans ces fichiers 🤭.

👀 TOUJOURS PLUS ! (Sous-défi facultatif - ⭐⭐⭐⭐⭐) :

Pour un défi supplémentaire, essayez de programmer votre défenseur pour qu'il se base sur l'orientation du robot Vert 1 plutôt que sur la position de la balle. Ce défi est optionnel, mais il nécessitera des notions avancées en trigonométrie.

🌐 Défi RSK 5 : Mission "Side Swap" ⭐⭐⭐★★ 🌐

La mi-temps du match contre l'équipe verte approche. Comme vous le savez, les côtés du terrain sont échangés entre les mi-temps, mais vous n’avez pas encore pris cela en compte dans votre code.

Vous devez rapidement mettre en place une solution permettant de modifier facilement ce paramètre pour adapter votre stratégie !

⚽ Votre Mission :

Votre mission sera de distinguer le côté positif et négatif du terrain afin de pouvoir vous adapter à toutes les circonstances et éviter d'attaquer dans votre propre camp !

Pour cela, vous pouvez utiliser la fonction input de Python, qui permet de saisir des valeurs à la main pendant l’exécution de votre programme.

Voici comment utiliser input :

réponse = input('Que voulez vous faire ?')

Voici le résultat dans votre terminal

Que voulez vous faire ?
>| 

Ici, le programme attend une réponse de l’utilisateur, qui sera ensuite stockée dans la variable réponse.

⚠️ ATTENTION ⚠️ :

La réponse fournie par l’utilisateur est sous forme de chaîne de caractères. Ainsi, si vous entrez un nombre, le programme le considérera comme une chaîne :

réponse = '1'

Pour résoudre ce problème, vous pouvez convertir la chaîne en nombre à l’aide des fonctions int ou float :

réponseEntiere = int('1')
réponseFlottante = float('3.14') 

💡 Indice

Si vous ne savez pas par où commencer, essayez de voir comment positionner votre robot défensif du défi précédent dans les buts opposés.

Il se pourrait que vous ayez besoin de multiplier certaines valeurs par -1 😉.

🌐 Défi RSK 6 : Mission " Des placements " ⭐⭐⭐⭐★ 🌐

Maintenant qu'une muraille protège votre camp, il est temps de passer à l’attaque contre l’équipe verte !

Votre robot 1 est prêt à en découdre et à marquer des BUTS ⚽⚽⚽ !

⚽ Votre Mission :

Votre objectif sera de positionner votre robot derrière la balle, à une distance optimale pour tirer sans la pousser immédiatement puis de tirer. Pour cela, vous devrez prendre en compte trois paramètres :

  • Le rayon du robot.
  • Le rayon de la balle.
  • Une marge d’imprécision arbitraire sur la distance entre le robot et la balle. Vous devrez effectuer plusieurs essais jusqu’à ce que le robot reste bien positionné derrière la balle sans bouger inutilement.

⚠️ Points importants :

  • Si vous vous placez trop loin, vous risquez de perdre en puissance de frappe.
  • Effectuez un maximum de tests pour trouver la distance optimale !

Pour simplifier cet objectif, placez la balle au centre du terrain et positionnez votre robot à mi-distance entre vos cages et la balle. Cela vous permettra de travailler dans des conditions simples et prévisibles.

Maintenant que vous etes bien positionné, 💥💥 TRIEZ 💥💥 !

🌐 Défi RSK 7 : Mission " Panne d'énergie ! " ⭐⭐⭐⭐⭐ 🌐

Suite à votre précédente mission, vous avez sûrement remarqué que la balle ne va pas très loin lorsque vous utilisez la commande kick du robot.

⚽ Votre Mission :

Utilisez un timer pour éviter le déchargement trop régulier du condensateur. En effet, le kickeur met un certain temps à se charger à 100 %, et il est important de s’assurer qu’il soit complètement chargé avant de tirer. Sinon, vous risquez de simplement donner la balle à vos ennemis !

Utilisez donc un timer pour vous assurer que le kickeur soit prêt avant chaque tir, afin d’optimiser la puissance et la précision de vos frappes.

💡 Indice

Allez consulter la documentation de time !

🏆 Défi RSK Final : Mission "Match Ultime" ⭐⭐⭐⭐⭐ 🏆

Combinez tout ce que vous avez appris, et plus encore, pour créer un programme imparable. Que toutes les équipes vertes tremblent rien qu'en entendant votre nom ! 😈

C’est l’occasion de mettre en pratique toutes vos compétences et de créer une stratégie gagnante. Allez, faites briller votre robot et montrez à l’équipe verte qui est le vrai champion ! 💪⚽

⚽ Votre Mission :

Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.

🤖 Stratégie et Exécution :
  • Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, et tirer au but.
  • Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
  • Assurez une bonne communication et coordination entre les robots de la même équipe.

🌐 Les Défi RSK Continuent ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ ! 🌐

Maintenant que votre match est passé, corrigez ce qui ne fonctionne pas, améliorez ce qui marche bien et inventez de nouvelles stratégies de jeu pour surprendre vos adversaires !

C’est le moment de peaufiner votre programme et d’explorer de nouvelles idées pour être encore plus performant. Gardez à l'esprit que l'innovation et l'adaptabilité sont les clés du succès ! 🚀

Défis

🌐 Défi RSK 1 : "Mission Prêt ! Partez !" ⭐★★★★ 🌐

Afin d'avoir une vue d'ensemble sur le match et d'être dans une position optimale pour recevoir la balle de n'importe où, vous avez décidé d'accompagner votre robot bleu n°1 jusqu'au centre du terrain.

🎯 Réception à toute épreuve !

Une fois connecté, votre objectif est d'amener votre robot 1 vers le centre du terrain aux coordonnées x = 0 et y = 0.

Pour cela, vous utiliserez la redoutable commande Go To, qui ordonne à un robot d'aller à une position (x, y) avec une orientation theta.

Terrain d'exemple coordonnées
client.<couleur><numeros>.goto((x,y,theta), wait=False)

Votre code ressemblera à ceci :

import rsk

with rsk.Client() as client: 
    while True:
        client.blue1.goto((0,0,0), wait=False)

💡 Astuce 💡 :

Vous pouvez aussi récupérer votre robot grâce à la commande robots, ce qui permet d'avoir un code plus facilement maintenable :

myRobot = client.robots['<couleur>'][<numeros>]

🌐 Défi RSK 2 : "Dos à dos" ⭐⭐★★★ 🌐

Afin de couvrir une zone encore plus grande, vous avez décidé d'utiliser vos deux robots comme tours de garde.

🎯 I've got you in my sights

Votre mission sera de faire collaborer vos deux robots afin qu'ils couvrent la zone la plus large possible.

Tandis que l'un couvre la première partie du terrain avec x>0, l'autre se charge de la zone avec x<0.

Pour cela, vous pouvez réutiliser le programme précédemment écrit afin de positionner le robot bleu 1 en (1,0) et le robot bleu 2 en (−1,0). Veillez également à ce que les deux robots regardent dans des directions opposées.

💡 Indice 💡 :

Vous pouvez donner des instructions à deux robots en même temps dans le même programme !

Si vous n’arrivez pas à faire en sorte que les deux robots regardent dans des directions opposées, pensez que l’orientation des robots est exprimée en radians !

🌐 Défi RSK 3 : "Mission Scan" ⭐⭐★★★ 🌐

Maintenant que vos robots sont prêts à s'adapter à toutes les situations, il reste à identifier ces situations ! Pour cela, vous devez connaître votre environnement.

🎯 Surveillance Maximal :

Lors de cette mission, vous devrez récupérer toutes les informations dynamiques sur le terrain, ce qui inclut les coordonnées des 4 robots ainsi que celles de la balle, et les afficher.

🧩 Défi Technique :

Votre code devra récupérer et afficher les positions X, Y de chacun des robots et de la balle. Cela nécessitera une attention méticuleuse aux données et une capacité à interpréter les informations en temps réel. Il est conseillé de consulter la documentation de RSK pour compléter ce défi (Cliquez ici))

👁‍🗨 Visualisation des Données :

Assurez-vous que les données soient présentées de manière claire et précise. Une bonne visualisation est essentielle pour comprendre le champ de bataille numérique.

Si vous êtes bloqué, voici un petit indice : indice

🌐 Défi RSK 4 : Mission "Défense offensive !"⭐⭐★★★ 🌐

Vous avez repérer que votre ennemi vert s'apprêtait a tirr dans vos cages ! Votre meilleur façon d'empêcher se tir est de foncer le plus vite possible vers la balle !

🔄 Votre Mission :

Réutilisez et adaptez ce que vous avez réalisé lors de vos deux précédentes missions afin de Récupérer la position de la balle donner à votre robot Bleu 1 la même position

🎯 Arrete la !

1 - Récupérez la position (x,y) de la balle à l’aide des informations disponibles sur le terrain. 2 - Donnez l’ordre à votre robot Bleu 1 d'aller vers cette position

🌐 Défi RSK 5 : Mission "Retour à la réalité"⭐⭐⭐★★ 🌐

Pour l'instant vous vous etes concentré a réaliser vos tests dans le simulateur, ne serait-il pas tant de tester en réalité !

🔄 Votre Mission :

Votre mission consistera en l'utilisation du game controlleur en l'apprentissage de la connexion avec celui-ci afin de faire bouger les robots en vrai ! Votre seconde mission sera de voir ce qu'il se passe lorsque l'un des robot n'est pas sur le terrain

💥 😱 COMMENT ÇA, VOTRE PROGRAMME CRASH ?!

cela veut dire que vous n'avez pas gérer les erreurs ! le fait que l'un des robot ou meme la balle sorte du terrain vous enleve une donnée a votre programme ! pour le corriger il suffi de faire un test si il manque une valeur votre programme fera quelque chose d'autre en conséquences

try:
    #Votre code

except rsk.client.ClientError as e:
    print(e)
    #autre chose 

💡 Astuce 💡 :

Vous pouvez aussi gérer chacune des erreurs afin de pouvoir continuer a bouger malgré la perte d'information par exemple vous pouvez definir d'une autre maniere les données perdu !

🌐 Défi RSK 6 : Mission "Sur mesure" ⭐⭐⭐⭐★ 🌐

Maintenant que vos robots sont prêts à attaquer, il est temps de leur apprendre l'art du positionnement précis pour devenir des attaquants redoutables ! Votre mission : placer votre robot juste derrière la balle sans la toucher, afin de pouvoir effectuer un tir parfait.

🎯 Derrière mais prêt à frapper !

Votre objectif est de positionner votre robot à une distance optimale de la balle, prenant en compte les dimensions suivantes :

Le rayon du robot (robot_radius), Le rayon de la balle (ball_radius), Une marge d’imprécision arbitraire que vous devrez mesurer par des tests en situation réelle.

La distance idéale correspondra à la somme des rayons plus cette marge d’imprécision.

🔄 Votre Mission :

Mesurez la marge d’imprécision en effectuant plusieurs essais avec votre robot derrière la balle. Placez votre robot derrière la balle, en vous basant sur les constantes robot_radius et ball_radius, ainsi que sur la marge calculée. Vérifiez que votre robot est bien positionné sans toucher la balle, si tel est le cas essayé de le faire un tir et voyez le résultat !

💡 Astuce :

Utilisez les constantes de la bibliothèque RSK pour simplifier votre code. Ces constantes sont disponibles dans le module rsk.constants

Voici un exemple d'utilisation :

import rsk
from rsk import constants

rayon_du_robot = constants.robot_radius

Pour une exploration rapide des constantes, tapez constants. et observez les suggestions. Si vous êtes curieux, appuyez sur CTRL + clic sur le mot constants pour accéder directement au code source. Attention : Ne modifiez rien dans ces fichiers 🤭.

🌐 Défi RSK 7 : Mission "Carton jaune" ⭐⭐⭐⭐⭐ 🌐

Maintenant que votre robot suit la balle vous vous rendez compte durant votre match qu'il ne peux pas rester a coté d'elle durant trop de temps sous peine de se prendre une pénalité ! mais on peux faire de cette penalité aussi un avantage !

🔄 Votre Mission :

Votre mission sera de detecter lorsque un robot est pénaliser, de cette maniere vous pourrez lorsque les deux robot attaquant sont pénaliser faire monter votre defenseur pour qu'il attaque ! Pour cela vous avez acces aux information du referee referee

🎯 A l'attaque !

1 - Récupérez les information de l'arbitre 2 - Vérifiez que les deux robot vert 1 et bleu 1 sont penalisés 3 - Faites monter votre defenseur en attaquant

Voici un exemple d'utilisation du referee :

import rsk

with rsk.Client() as client: 
    while True:
        client.referee["game_is_running"] #Cette ligne renvoie True si la partie est débuté False sinon

🌐 Défi RSK 8 : Mission "visée a toute epreuve !" ⭐⭐⭐⭐⭐ 🌐

Lors de vos péripécie il vous vient a l'idée de cree un outils vous permettant de faire en sorte que l'un de vos robot regarde un point donné

🔄 Votre Mission :

Votre mission sera de réaliser une fonction python prenant 2 points en entrée en renvoyant un angle delta en sortie Voici un exemple de fonction réalisant une addition :

def addition(a,b): # Ici a et b sont les entrés
    c = a+b # ici on réalise l'addition de a + b
    return c # et ici on renvoie en sortie le résultat c

résultat = addition(2,3) # ainsi cette ligne réalisera l'addition de 2+3
print(résultat) # le print affichera alors 5

Afin de réaliser le calcul permettant à votre robot regarde un point il vous faudra faire de la trigonométrie !

💡 Indice 💡 :

Renseignez-vous sur la fonction arc tangente 2 ou atan2. En python vous pourrez utiliser math.atan2 sous reserve de import math.

🏆 Défi RSK Final : Mission "Match Ultime" ⭐⭐⭐⭐⭐ 🏆

Combinez tout ce que vous avez appris, et plus encore, pour créer un programme imparable. Que toutes les équipes vertes tremblent rien qu'en entendant votre nom ! 😈

C’est l’occasion de mettre en pratique toutes vos compétences et de créer une stratégie gagnante. Allez, faites briller votre robot et montrez à l’équipe verte qui est le vrai champion ! 💪⚽

⚽ Votre Mission :

Organiser un match impliquant deux équipes de robots. Chaque équipe doit essayer de marquer des buts tout en défendant son propre but.

🤖 Stratégie et Exécution :
  • Programmez les robots pour qu'ils puissent se déplacer sur le terrain, contrôler la balle, et tirr au but.
  • Implémentez des stratégies défensives pour que les robots puissent bloquer les tentatives de but de l'équipe adverse.
  • Assurez une bonne communication et coordination entre les robots de la même équipe.

🌐 Les Défi RSK Continuent ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ ! 🌐

Maintenant que votre match est passé, corrigez ce qui ne fonctionne pas, améliorez ce qui marche bien et inventez de nouvelles stratégies de jeu pour surprendre vos adversaires !

C’est le moment de peaufiner votre programme et d’explorer de nouvelles idées pour être encore plus performant. Gardez à l'esprit que l'innovation et l'adaptabilité sont les clés du succès ! 🚀

Défi 01 - Suivi de ligne basique

Objectifs d'apprentissage

  • Comprendre le fonctionnement d'un capteur de ligne
  • Programmer un robot pour suivre une ligne droite
  • Découvrir les bases de la régulation

Description du parcours

Le robot doit suivre une ligne noire sur fond blanc. Le parcours est simple : une ligne droite avec quelques légères courbes.

    ┌─────────────────────────────────────┐
    │                                     │
    │   START                             │
    │     ●═══════════════════════●       │
    │                           END       │
    │                                     │
    └─────────────────────────────────────┘

Tâches à accomplir

  • Calibrer le(s) capteur(s) de ligne
  • Programmer un suivi de ligne simple (tout ou rien)
  • Améliorer avec une régulation proportionnelle
  • Atteindre la zone d'arrivée sans sortir de la ligne

Matériel nécessaire

  • Robot avec un ou plusieurs capteurs de ligne (à vous de voir...)
  • Piste d'entraînement avec ligne noire

Conseils

  1. Commencez par tester vos capteurs : affichez leurs valeurs sur la ligne et hors de la ligne
  2. Un algorithme simple "si ligne à gauche, tourner à gauche" suffit pour commencer
  3. La régulation proportionnelle améliore la fluidité du suivi

Questions de réflexion

  1. Quelle est la différence entre 1 ou plusieurs capteurs de ligne ?
  2. Pourquoi la vitesse du robot influence-t-elle la qualité du suivi ?
  3. Qu'est-ce qu'une régulation proportionnelle ?

Barème indicatif

CritèrePoints
Le robot suit la ligne50
Le robot atteint l'arrivée30
Fluidité du mouvement20
Total100

Défi 02 - Virages serrés

Objectifs d'apprentissage

  • Gérer les virages à 90° et les courbes serrées
  • Adapter la vitesse du robot selon la situation
  • Améliorer la robustesse de l'algorithme de suivi

Description du parcours

Le parcours comporte plusieurs virages serrés à 90° et des courbes prononcées. Le robot doit maintenir le suivi de ligne malgré ces difficultés.

    ┌─────────────────────────────────────┐
    │                                     │
    │   START                             │
    │     ●════╗                          │
    │          ║                          │
    │          ╚════════╗                 │
    │                   ║                 │
    │          ╔════════╝                 │
    │          ║                          │
    │          ●  END                     │
    │                                     │
    └─────────────────────────────────────┘

Tâches à accomplir

  • Détecter les virages serrés
  • Réduire la vitesse dans les virages
  • Maintenir le suivi de ligne dans les courbes à 90°
  • Compléter le parcours sans sortie de piste

Matériel nécessaire

  • Robot avec capteurs de ligne
  • Piste avec virages à 90°

Conseils

  1. La gestion de la vitesse est cruciale dans les virages
  2. Avec plusieurs capteurs, utilisez les capteurs extérieurs pour anticiper...
  3. Un PID bien réglé aide énormément dans les courbes

Questions de réflexion

  1. Comment détecter qu'un virage approche ?
  2. Faut-il tourner sur place ou en avançant dans un virage serré ?
  3. Quelle est la vitesse optimale pour les virages ?

Barème indicatif

CritèrePoints
Le robot suit la ligne droite20
Le robot gère les virages à 90°40
Le robot atteint l'arrivée25
Fluidité et vitesse15
Total100

Défi 03 - Croisements simples

Objectifs d'apprentissage

  • Détecter et traverser les intersections
  • Comprendre la notion de "ligne verte" comme indicateur
  • Programmer une logique de décision aux croisements

Description du parcours

Le parcours comporte des intersections (croisements). Des marqueurs verts indiquent la direction à prendre. Le robot doit interpréter ces marqueurs pour choisir le bon chemin.

    ┌─────────────────────────────────────┐
    │                                     │
    │   START        [G]=marqueur vert    │
    │     ●════════╦════════●             │
    │              ║       END            │
    │         [G]  ║                      │
    │              ║                      │
    │              ●                      │
    │            (autre chemin)           │
    │                                     │
    └─────────────────────────────────────┘

Règles des marqueurs verts

  • Vert à gauche : tourner à gauche
  • Vert à droite : tourner à droite
  • Vert des deux côtés : faire demi-tour
  • Pas de vert : aller tout droit

Tâches à accomplir

  • Détecter les intersections (tous les capteurs sur noir)
  • Identifier les marqueurs verts
  • Implémenter la logique de décision
  • Naviguer correctement à travers 3 intersections minimum

Matériel nécessaire

  • Robot avec capteurs de ligne
  • Capteur(s) de couleur pour détecter le vert
  • Piste avec intersections et marqueurs verts

Conseils

  1. L'intersection est détectée quand tous les capteurs voient du noir
  2. Après détection, avancez légèrement pour lire les marqueurs verts
  3. Testez chaque direction séparément avant le parcours complet

Questions de réflexion

  1. Comment distinguer une intersection d'une ligne épaisse ?
  2. À quel moment faut-il lire les marqueurs verts ?
  3. Que faire si aucun marqueur n'est détecté ?

Barème indicatif

CritèrePoints
Détection des intersections25
Lecture correcte des marqueurs30
Choix de direction correct30
Parcours complet15
Total100

Défi 04 - Rampe

Objectifs d'apprentissage

  • Adapter le robot pour gravir une pente
  • Gérer l'adhérence et la puissance des moteurs
  • Maintenir le suivi de ligne sur un plan incliné

Description du parcours

Le parcours comporte une rampe (pente de 15° à 25°). Le robot doit monter et/ou descendre la rampe tout en suivant la ligne.

    Vue de profil :

                        ╱────────╲
                      ╱            ╲
                    ╱                ╲
    START ●═══════╱                    ╲═══════● END

    Pente : 15° à 25°

Tâches à accomplir

  • Tester la capacité du robot à monter la pente
  • Ajuster la puissance des moteurs pour la montée
  • Maintenir le suivi de ligne sur la rampe
  • Gérer la descente de manière contrôlée
  • Compléter le parcours (montée + descente)

Matériel nécessaire

  • Robot avec bonne adhérence (pneus adaptés)
  • Moteurs suffisamment puissants
  • Rampe d'entraînement (15-25°)

Conseils

  1. Vérifiez que votre robot ne bascule pas en arrière sur la pente
  2. Augmentez la puissance pour la montée, réduisez pour la descente
  3. Le centre de gravité du robot est important : poids vers l'avant aide à monter
  4. Attention au décrochage de la ligne lors du changement de pente

Problèmes courants

ProblèmeSolution possible
Robot reculeAugmenter la puissance, améliorer l'adhérence
Robot basculeRevoir la répartition du poids
Perte de ligneAjuster les capteurs, ralentir

Questions de réflexion

  1. Pourquoi le robot a-t-il besoin de plus de puissance en montée ?
  2. Comment détecter que le robot est sur une pente ?
  3. Quels ajustements mécaniques peuvent aider ?

Barème indicatif

CritèrePoints
Le robot monte la rampe35
Suivi de ligne maintenu25
Le robot descend la rampe25
Fluidité du parcours15
Total100

Défi 05 - Bascule mobile

Objectifs d'apprentissage

  • Gérer un obstacle mobile et instable
  • Adapter la vitesse et l'approche selon l'obstacle
  • Développer des stratégies pour les surfaces instables

Description du parcours

Le parcours comporte une bascule (balancelle) que le robot doit traverser. La bascule pivote sous le poids du robot, créant un défi d'équilibre.

    Vue de profil (bascule au repos) :

    START ●═══════╲      ╱═══════● END
                   ╲    ╱
                    ╲  ╱
                     ╲╱
                      ▲ (pivot)

    Vue de profil (robot engagé) :

    START ●═══════════[robot]═══════● END
                   ──────────
                        ▲

Tâches à accomplir

  • Détecter l'approche de la bascule
  • Adapter la vitesse pour ne pas faire basculer violemment
  • Traverser la bascule en maintenant le suivi de ligne
  • Gérer le changement d'inclinaison pendant la traversée
  • Sortir de la bascule en douceur

Matériel nécessaire

  • Robot stable avec bon centre de gravité
  • Bascule d'entraînement (pivot central)
  • Piste avec ligne traversant la bascule

Conseils

  1. Approchez lentement pour éviter un basculement brusque
  2. Maintenez une vitesse constante pendant la traversée
  3. Le moment critique est quand le robot passe le point de pivot
  4. Un robot plus long est généralement plus stable sur la bascule

Stratégies possibles

StratégieAvantagesInconvénients
Vitesse lente constanteStable, prévisibleTemps long
Accélération au pivotRapideRisque de perte de ligne
Arrêt au milieuTrès stableComplexe à programmer

Questions de réflexion

  1. Pourquoi la vitesse est-elle cruciale sur la bascule ?
  2. Comment le poids et la longueur du robot influencent-ils le passage ?
  3. Comment détecter qu'on est sur une surface instable ?

Barème indicatif

CritèrePoints
Approche contrôlée20
Traversée de la bascule40
Suivi de ligne maintenu25
Sortie en douceur15
Total100

Défi 06 - Détection de victime

Objectifs d'apprentissage

  • Utiliser des capteurs pour détecter des objets (victimes)
  • Distinguer différents types de victimes (vivantes/mortes)
  • Signaler la détection de manière appropriée

Description du parcours

Le parcours comporte des "victimes" (billes ou petits objets) placées sur les côtés de la ligne. Le robot doit les détecter et les signaler sans les toucher.

    ┌─────────────────────────────────────┐
    │                                     │
    │   START       ○ = victime vivante   │
    │     ●═══════════════════════●       │
    │         ○           ●      END      │
    │                                     │
    │     ● = victime morte (noire)       │
    │                                     │
    └─────────────────────────────────────┘

Types de victimes

TypeApparenceAction requise
Victime vivanteBille argentée/réfléchissanteSignaler (LED/son)
Victime morteBille noireSignaler différemment

Tâches à accomplir

  • Installer un capteur de détection (ultrasons, infrarouge, etc.)
  • Calibrer le capteur pour détecter les victimes
  • Programmer la distinction vivante/morte (si capteur couleur)
  • Signaler la détection (allumer LED, émettre son)
  • Continuer le parcours après signalement

Matériel nécessaire

  • Robot avec capteurs de ligne
  • Capteur de distance (ultrasons ou infrarouge)
  • Optionnel : capteur de couleur pour distinguer les victimes
  • LED et/ou buzzer pour le signalement

Conseils

  1. Les victimes sont à 5-10 cm de la ligne, pas dessus
  2. Balayez régulièrement avec le capteur de distance
  3. Le signalement doit être visible/audible pendant au moins 1 seconde
  4. Ne vous arrêtez pas trop longtemps, continuez à suivre la ligne

Questions de réflexion

  1. Quel type de capteur est le plus adapté pour détecter les victimes ?
  2. Comment éviter les faux positifs (murs, obstacles) ?
  3. Faut-il s'arrêter pour signaler ou le faire en mouvement ?

Barème indicatif

CritèrePoints
Détection des victimes35
Distinction vivante/morte20
Signalement correct25
Parcours complété20
Total100

Défi 07 - Accroche de victime

Objectifs d'apprentissage

  • Concevoir et utiliser un mécanisme de préhension
  • Coordonner le mouvement du robot et du mécanisme
  • Manipuler des objets avec précision

Description du parcours

Le robot doit non seulement détecter les victimes, mais aussi les récupérer à l'aide d'un mécanisme (pince, pelle, aimant, etc.).

    ┌─────────────────────────────────────┐
    │                                     │
    │   START                             │
    │     ●══════════════════════●        │
    │              ○            END       │
    │           (victime)                 │
    │                                     │
    │   Le robot doit récupérer la        │
    │   victime et continuer              │
    │                                     │
    └─────────────────────────────────────┘

Tâches à accomplir

  • Concevoir un mécanisme de récupération
  • Programmer l'approche vers la victime
  • Activer le mécanisme pour saisir la victime
  • Vérifier que la victime est bien récupérée
  • Reprendre le suivi de ligne avec la victime

Types de mécanismes possibles

MécanismeAvantagesInconvénients
Pince servoPrécis, polyvalentComplexe, lent
Pelle/ramasseSimple, rapideMoins fiable
Électro-aimantTrès efficace si billes métalliquesLimité au métal
VentouseDoux pour les victimesNécessite pompe

Matériel nécessaire

  • Robot avec capteurs de ligne et de distance
  • Servo-moteur ou actionneur pour le mécanisme
  • Mécanisme de préhension adapté aux victimes (billes)

Conseils

  1. Testez d'abord le mécanisme seul, puis intégrez-le au robot
  2. L'alignement avec la victime est crucial avant la saisie
  3. Prévoyez une vérification (capteur) pour confirmer la prise
  4. Un mécanisme simple mais fiable vaut mieux qu'un complexe qui échoue

Séquence recommandée

  1. Détecter la victime
  2. S'aligner avec la victime
  3. S'approcher à distance de saisie
  4. Activer le mécanisme
  5. Vérifier la prise
  6. Reprendre le parcours

Questions de réflexion

  1. Quel mécanisme est le plus adapté à votre robot ?
  2. Comment garantir que la victime ne tombe pas pendant le transport ?
  3. Faut-il sortir de la ligne pour récupérer la victime ?

Barème indicatif

CritèrePoints
Détection de la victime15
Approche et alignement20
Saisie réussie35
Transport sécurisé15
Reprise du parcours15
Total100

Défi 08 - Dépose dans une zone

Objectifs d'apprentissage

  • Localiser et atteindre une zone de dépose
  • Déposer les victimes de manière contrôlée
  • Gérer la séquence complète : détection → saisie → transport → dépose

Description du parcours

Après avoir récupéré une victime, le robot doit la transporter jusqu'à une zone de dépose spécifique (souvent marquée par une couleur ou un motif) et l'y déposer délicatement.

    ┌─────────────────────────────────────┐
    │                                     │
    │   START                             │
    │     ●══════════════╦════════●       │
    │              ○     ║       END      │
    │           (victime)║                │
    │                    ║                │
    │                ┌───╨───┐            │
    │                │ ZONE  │            │
    │                │DÉPOSE │            │
    │                └───────┘            │
    │                                     │
    └─────────────────────────────────────┘

Tâches à accomplir

  • Récupérer la victime (cf. Défi 07)
  • Détecter la zone de dépose (couleur, marqueur)
  • Naviguer vers la zone de dépose
  • Déposer la victime dans la zone
  • Reprendre le parcours principal

Zone de dépose - Caractéristiques

ÉlémentDescription
CouleurGénéralement rouge ou verte
TailleEnviron 15x15 cm minimum
PositionAdjacent à la ligne ou en dérivation
EntréeMarquée par un indicateur sur la ligne

Matériel nécessaire

  • Robot équipé pour la saisie de victime
  • Capteur de couleur pour détecter la zone
  • Mécanisme de dépose (peut être le même que la saisie)

Conseils

  1. La zone de dépose est généralement signalée sur la ligne (marqueur vert spécial)
  2. Entrez dans la zone en quittant temporairement la ligne
  3. Déposez au centre de la zone pour être sûr
  4. Sortez de la zone et retrouvez la ligne principale

Séquence complète

Suivre ligne → Détecter victime → Saisir victime →
Continuer ligne → Détecter entrée zone → Entrer dans zone →
Déposer victime → Sortir de zone → Retrouver ligne →
Continuer vers arrivée

Questions de réflexion

  1. Comment savoir quand entrer dans la zone de dépose ?
  2. Comment être sûr que la victime est bien dans la zone ?
  3. Comment retrouver la ligne après la dépose ?

Barème indicatif

CritèrePoints
Saisie de la victime20
Détection zone de dépose15
Navigation vers la zone15
Dépose dans la zone30
Reprise du parcours20
Total100

Défi 09 - Multivictimes

Objectifs d'apprentissage

  • Gérer plusieurs victimes sur un même parcours
  • Optimiser les trajets et l'ordre de récupération
  • Gérer la capacité de stockage du robot

Description du parcours

Le parcours comporte plusieurs victimes (3 à 5) que le robot doit toutes récupérer et déposer dans la zone appropriée. Certaines victimes peuvent être vivantes, d'autres mortes.

    ┌─────────────────────────────────────┐
    │                                     │
    │   START     ○ = vivante             │
    │     ●═══════════════════════════●   │
    │        ○         ●         ○   END  │
    │              ●                      │
    │         ● = morte                   │
    │                    ┌───────┐        │
    │                    │ ZONE  │        │
    │                    └───────┘        │
    │                                     │
    └─────────────────────────────────────┘

Tâches à accomplir

  • Concevoir un système de stockage multiple (ou faire plusieurs voyages)
  • Détecter et récupérer toutes les victimes
  • Distinguer victimes vivantes et mortes
  • Déposer les victimes dans les zones appropriées
  • Optimiser le parcours pour le temps

Stratégies possibles

StratégieDescriptionDifficulté
SéquentielleUne victime à la foisFacile mais lent
Stockage multiplePlusieurs victimes stockéesMécanique complexe
Tri sur placeSéparer vivantes/mortesLogique complexe

Zones de dépose

  • Zone verte : victimes vivantes
  • Zone rouge : victimes mortes (si distinction requise)
  • Zone unique : toutes les victimes (si pas de distinction)

Matériel nécessaire

  • Robot avec capacité de stockage (simple ou multiple)
  • Capteurs de couleur pour distinction des victimes
  • Mécanisme de saisie/dépose fiable

Conseils

  1. Même avec un stockage simple, vous pouvez faire plusieurs voyages
  2. Comptez les victimes récupérées pour savoir quand vous avez fini
  3. Si stockage multiple, attention à ne pas faire tomber les victimes déjà stockées
  4. Planifiez l'ordre de récupération pour minimiser les allers-retours

Défis supplémentaires

  • Bonus vitesse : Temps limité pour toutes les victimes
  • Bonus distinction : Points extra pour bon tri vivantes/mortes
  • Malus : Victime tombée hors zone

Questions de réflexion

  1. Vaut-il mieux un stockage multiple complexe ou plusieurs voyages simples ?
  2. Comment optimiser l'ordre de récupération des victimes ?
  3. Comment s'assurer qu'aucune victime n'est oubliée ?

Barème indicatif

CritèrePoints
Victimes détectées (×5)5 chacune = 25
Victimes récupérées (×5)8 chacune = 40
Victimes déposées correctement (×5)5 chacune = 25
Bonus distinction vivante/morte10
Total100

Défi 10 - Parcours complet autonome

Objectifs d'apprentissage

  • Intégrer toutes les compétences des défis précédents
  • Développer un robot entièrement autonome
  • Optimiser les performances globales

Description du parcours

C'est le défi ultime ! Le parcours combine tous les éléments des défis précédents :

  • Suivi de ligne avec virages serrés
  • Intersections avec marqueurs verts
  • Rampe et/ou bascule
  • Plusieurs victimes à récupérer
  • Zones de dépose
    ┌─────────────────────────────────────────────────┐
    │                                                 │
    │   START                                         │
    │     ●══════════╦═══════════════╗               │
    │         ○      ║        ╱      ║               │
    │               [G]      ╱rampe  ║               │
    │                ║      ╱        ●               │
    │       ╔════════╝               ║   END         │
    │       ║     ●                  ║               │
    │       ║            [bascule]   ║               │
    │       ╚═══════════════════════╝               │
    │                   ○                            │
    │              ┌─────────┐                       │
    │              │  ZONE   │                       │
    │              └─────────┘                       │
    │                                                 │
    └─────────────────────────────────────────────────┘

Éléments du parcours

ÉlémentQuantitéPoints max
Virages 90°4-610
Intersections2-315
Rampe115
Bascule115
Victimes3-525
Zones de dépose1-210
Arrivée110

Tâches à accomplir

  • Suivre la ligne avec tous types de virages
  • Gérer correctement toutes les intersections
  • Franchir la rampe
  • Traverser la bascule
  • Récupérer toutes les victimes
  • Déposer les victimes dans les zones
  • Atteindre la zone d'arrivée

Contraintes de compétition

ContrainteValeur typique
Temps maximum8 minutes
Taille max robot25×25×25 cm
Poids max2 kg
Tentatives2 (meilleur score)

Conseils pour l'expert

  1. Fiabilité > Vitesse : Un robot lent mais fiable bat un robot rapide qui échoue ?
  2. Testez chaque module : Vérifiez chaque fonction séparément avant l'intégration
  3. Prévoyez les pannes : Que fait le robot s'il perd la ligne ? S'il rate une victime ?
  4. Calibration : Recalibrez les capteurs juste avant le défi (lumière ambiante)
  5. Batteries : Vérifiez la charge, le comportement change avec des batteries faibles

Check-list pré-défi

  • Batteries chargées
  • Capteurs calibrés
  • Mécanisme de saisie testé
  • Programme correct chargé
  • Robot dans les dimensions
  • Pièces de rechange prêtes

Gestion des erreurs

ErreurRécupération possible
Perte de ligneRecherche en spirale / demi-tour
Victime ratéeContinuer (pénalité acceptée)
Blocage obstacleMarche arrière + réessai
Bascule ratéeRetry avec vitesse différente

Questions de réflexion

  1. Quel est l'équilibre optimal vitesse/fiabilité pour votre robot ?
  2. Quelles sont les parties les plus risquées du parcours ?
  3. Comment prioriser les points si le temps manque ?

Barème indicatif

CritèrePoints
Suivi de ligne complet15
Intersections correctes15
Franchissement rampe15
Traversée bascule15
Victimes récupérées et déposées25
Arrivée atteinte10
Bonus temps (< 5 min)5
Total100

Félicitations !

Si vous avez complété ce défi, vous maîtrisez les bases de la Rescue Line !

Bonne chance pour la compétition ! 🤖

Vidéos - Rescue Line

Vidéos pédagogiques

Liste des vidéos à venir

Démonstrations

Vidéos de démonstration à ajouter

Code - Rescue Line

Exemples de programmes

Cette section contient des exemples de code pour Rescue Line.

Structure des exemples

Chaque exemple est commenté pour guider les élèves dans la compréhension du code.

Ressources - Rescue Line

Supports pédagogiques

À compléter

Matériel

Description du matériel nécessaire

Conseils de mise en œuvre

Conseils pour la mise en place des défis

Défi 01 - Rescue Maze

Objectifs d'apprentissage

À définir

Description du parcours

Description du scénario et du labyrinthe

Tâches à accomplir

  • Tâche 1
  • Tâche 2
  • Tâche 3

Questions de réflexion

  1. Question 1
  2. Question 2

Vidéos - Rescue Maze

Vidéos pédagogiques

Liste des vidéos à venir

Démonstrations

Vidéos de démonstration à ajouter

Code - Rescue Maze

Exemples de programmes

Cette section contient des exemples de code pour Rescue Maze.

Structure des exemples

Chaque exemple est commenté pour guider les élèves dans la compréhension du code.

Ressources - Rescue Maze

Supports pédagogiques

Matériel

À compléter

Conseils de mise en œuvre

À compléter

Défi 01 - Rescue Simulation

Objectifs d'apprentissage

À définir

Description du parcours

Description du scénario de simulation

Tâches à accomplir

  • Tâche 1
  • Tâche 2
  • Tâche 3

Questions de réflexion

  1. Question 1
  2. Question 2

Vidéos - Rescue Simulation

Vidéos pédagogiques

Liste des vidéos à venir

Démonstrations

Vidéos de démonstration à ajouter

Code - Rescue Simulation

Exemples de programmes

Cette section contient des exemples de code pour Rescue Simulation.

Structure des exemples

Chaque exemple est commenté pour guider les élèves dans la compréhension du code.

Ressources - Rescue Simulation

Supports pédagogiques

Matériel

À compléter

Conseils de mise en œuvre

À compléter

Python

Introduction

Python est un langage de programmation de haut niveau créé par Guido van Rossum en 1991. Son nom s'inspire de la série télévisée "Monty Python's Flying Circus". Il est géré par la Python Software Foundation, une organisation qui soutient son développement et sa communauté.

Installation

Pour installer Python, visitez le site officiel de Python et téléchargez la dernière version, Python 3.12.

Premiers Pas

Hello World

print("Hello, World!")

Caractéristiques Principales

  • Langage de haut niveau : Python est conçu pour être facile à lire et à écrire.
  • Gratuit : Python est open source et gratuit.
  • Orienté objet : Python supporte la programmation orientée objet.
  • Polyvalent : Utilisé dans de nombreux domaines comme l'analyse de données, la bioinformatique, et la robotique

Exemples de Code

Variables

Python possède plusieurs types de données courants :

Nombres entiers (int)

a = 5
print(type(a))
# >> int

Nombres décimaux (float)

En informatique, les nombres décimaux sont souvent représentés en nombre à virgule flottante, encore appelés nombres flottants.

b = 3.14
print(type(b))
# >> float

Compte tenu de la manière dont les nombres à virgule flottante sont stockés en mémoire, ils sont souvent approximés, ce qui peut entraîner des erreurs de calcul. Il faut donc éviter de tester l'égalité de deux nombres flottants.

Chaînes de caractères (str)

c = "Salut"
print(type(c))
# >> str

Booléens (bool)

d = True
print(type(d))
# >> bool

En Python, il n'est pas nécessaire de déclarer le type d'une variable, le langage se charge de le déterminer automatiquement.

Conditions et boucles

Les conditions (Structures de décision)

Les structures conditionnelles permettent de prendre des décisions dans un programme. En fonction de certaines conditions, différentes parties du code peuvent être exécutées.

  • if : vérifie une condition et exécute le bloc de code associé si elle est vraie.
  • elif : vérifie une autre condition lorsque la première est fausse et exécute le bloc de code associé si cette nouvelle condition est vraie.
  • else : exécute un bloc de code si toutes les conditions précédentes sont fausses.

Exemple :

if condition:
    # Bloc de code exécuté si la condition est vraie
elif autre_condition:
    # Bloc exécuté si la première condition est fausse et l’autre condition est vraie
else:
    # Bloc exécuté si toutes les conditions précédentes sont fausses

Les boucles (Structures itératives)

1. La boucle for

La boucle for permet de répéter un bloc de code un nombre déterminé de fois. Elle est souvent utilisée pour parcourir des séquences (listes, chaînes de caractères, etc.).

Exemple :

for variable in séquence:
    # Bloc de code exécuté pour chaque élément de la séquence

for i in range(3):
    print(i)
>> 0
>> 1
>> 2

2. La boucle while

La boucle while exécute un bloc de code tant qu’une condition est vraie.

Exemple :

while condition:
    # Bloc de code exécuté tant que la condition est vraie

compteur = 0
while compteur < 4:
    print(compteur)
    compteur += 1
>> 0
>> 1
>> 2
>> 3

3. Boucle infinie et sortie de boucle

Une boucle infinie se produit quand la condition de sortie n’est jamais atteinte. Cela peut bloquer l’exécution du programme. On peut interrompre une boucle avec l’instruction break.

Exemple :

compteur = 0
while True:
    print(compteur)
    compteur += 1
    if compteur == 4:
        break
>> 0
>> 1
>> 2
>> 3

Fonctions

def saluer(nom):
    return f"Bonjour, {nom}!"

print(saluer("Alice"))

Ressources supplémentaires

Maths

Soon..