Le doodle Google d'aujourd'hui concerne les 50 ans du codage des enfants : l'objectif est de programmer le chemin d'un petit lapin afin qu'il puisse manger toutes les carottes. Il existe 4 types de blocs (voir photos ci-dessous):
De gauche à droite:
O("...", k)
= pièce orange: ce sont desfor
boucles qui exécutent k fois le programme"..."
.G
= pièce verte: faites un pas en avant si vous le pouvez, sinon ne faites rienBl
= pièce bleue: tourner à droite et rester sur le même blocBr
= pièce bleue: tourner à gauche et rester sur le même bloc
Le code ci-dessus peut être écrit comme
O(O(G G Br, 4) Bl Bl, 23)
Chaque bloc ( G, Bl, Br, O(...,k)
) compte pour 1 unité, donc ce programme est de longueur 7. Notez que la valeur de k
est incluse dans l'unité 1 de O
.
Il y a 6 niveaux. Pour terminer un niveau, vous devez manger toutes les carottes. Ce n'est pas un problème si votre programme n'est pas complètement exécuté, le niveau se termine directement lorsque vous mangez la dernière carotte.
Nous supposons que les 4 types de blocs sont disponibles à tous les niveaux.
Votre tâche consiste à trouver un seul programme qui résout tous les niveaux du jeu.
Le programme le plus court en blocs gagne.
Captures d'écran de chaque niveau:
Niveau 1:
Niveau 2:
Niveau 3:
Niveau 4:
Niveau 5:
Niveau 6:
En fait, j'ai trouvé une solution avec 8 blocs
la source
Trouvé manuellement, 9 blocs
O(O(GRGLGR,4)L,4)
J'ai commencé par l'évidence
O(O(GGR,4)L,4)
qui résout les niveaux 1 à 5, puis j'ai essayé quelques variantes en ajoutant des mouvements effectivement nuls sur ces niveaux pour en trouver un qui terminerait le niveau 6. Le plus court était un simple avant-gauche-gauche au milieu de chaque "pont" "donc le mouvement en avant n'a eu aucun effet.la source
O(O(GGR,4)L,4)
" démontre que la solution la plus courte pour le niveau 4 est 7, comme indiqué dans le jeu.