Blocs disponibles
13 blocsSéquence
- 1.1Vert
- 2.2Blanc3Blanc
- 3.4Jaune5Jaune6Jaune
- 4.7Bleu
- 5.8Vert9Vert
- 6.10Blanc11Blanc
- 7.12Jaune
Respecte la matrice de gauche à droite, quatre blocs par glissade et les paires de droite à gauche.
Robot
1
2
3
Glisse un bloc dans une glissade. Maximum 4 blocs par glissade.
Au clavier : sélectionne un bloc avec Tab, puis appuie sur 1, 2 ou 3.
Matrice de couleurs
3 × 4Priorité
- Privilégier les trajets courts :
- Blanc ↔ Vert, Vert ↔ Bleu, Bleu ↔ Jaune : 1 point.
- Blanc ↔ Bleu, Vert ↔ Jaune : 2 points.
- Blanc ↔ Jaune : 3 points.
- Blanc ↔ Rouge : 4 points.
- Vert ↔ Rouge : 6 points.
- Bleu ↔ Rouge : 8 points.
- Jaune ↔ Rouge : 10 points.
- Commencer par la couleur la plus proche : Vert ou Bleu.
Départ entre Vert et Bleu. Si aucune de ces couleurs ne peut être chargée en premier, le robot commence par la couleur autorisée la plus proche pour respecter la matrice.
Résultat
Couleur : glissades en ordre inversé.
- Vert : 2
- Blanc : 2, 1
- Jaune : 3, 1, 1
- Bleu : 2
- Vert : 3, 1
- Blanc : 3, 2
- Jaune : 3
Version 1 · caméra HUE12 sur le port E. La matrice vient de la caméra ; le plan minimise le score des déplacements après le départ le plus proche. INVERSER_GROUPES = False conserve l’ordre de prise de ton programme.
Le code suit trois étapes : préparer les coûts, comparer les suites possibles, puis produire les 12 prises. Il garde les calculs déjà faits en mémoire. Tes points servent à comparer les parcours ; le temps réel dépend des moteurs et des prises.
1. Calculer : appeler ALGOcalculer() et attendre sa réponse. Si elle vaut True, les 12 valeurs sont prêtes. Si elle vaut False, consulter ALGOgetErreur().
2. Lire : appeler ALGOgetValeur(1) à ALGOgetValeur(12). Ces appels lisent uniquement la mémoire. Chaque valeur contient couleur × 10 + glissade. Exemple : 31 = Vert, glissade 1. Couleurs : 1 Jaune, 2 Bleu, 3 Vert, 4 Blanc, 5 Rouge. Erreurs : 9 couleur inconnue, 0 aucun calcul valide ou numéro invalide.
ALGOgetCout() et ALGOestPret() consultent aussi uniquement la mémoire. Pour une nouvelle matrice, relancer ALGOcalculer().
Reste à faire
Avec ton code actuel, garde une valeur à la fois. Après un appel réussi à ALGOcalculer(), les 12 valeurs sont en mémoire : chaque appel à ALGOgetValeur() lit la couleur et la glissade d’un bloc, sans recalculer le parcours. Une chaîne ajouterait du découpage et des conversions.
Pour un transfert entre l’ESP32 et le hub LEGO, un envoi groupé serait généralement préférable pour réduire les échanges. La différence reste à mesurer sur ton matériel.