Exercices Papers animés - La fourmi de Langton - Solutions
Pedro77
711 views
Exercice 2 - La fourmi de langton, v2 : 96 étapes, grille de 15 x 15 (centrée en 7,7), cases de 25 pixels de côtés, une étape dure 0.1s, fourmi initialement tête à gauche
Tout est dans le titre, pour réaliser cette animation : https://youtu.be/qZRYGxF6D3w?t=118 (Télécharger)
Note importante, pour l'exercice précédent, on a suivi la première animation (non programmée) de David Louapre en plaçant la fourmi tête vers le haut. Mais pour sa simulation informatique (dans laquelle la fourmi devient une flèche), David a commencé son animation avec une fourmi tête à droite. Il faudra donc (pour cette version 2 du programme) positionner notre fourmi tête à droite avant de démarrer la première étape, afin d'obtenir les mêmes résultats (dans le même sens) que ceux de la vidéo.
On doit donc ici modifier légèrement l'exercice précédent (fourmi v1) pour obtenir (après 96 itérations) le résultat suivant :
Exercice 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <stdio.h>
#include <stdlib.h>
#include "paper.h"
#define up 1
#define right 2
#define down 3
#define left 4
int ant_looks = right; // (up is 1 / right is 2 / down is 3 / left is 4)
void ant_turns_left_then_move();
void ant_turns_right_then_move();
int main()
{
init_paper(15,15,25,0.1,0);
move_to(7,7);
repeat(96) {
if (!is_colored()) {
colorize();
ant_turns_right_then_move();
} else {
erase();
ant_turns_left_then_move();
}
} loop;
display_paper();
return 0;
}
void ant_turns_right_then_move() {
switch (ant_looks) {
case up : // ant looks up
ant_looks = right;
move_right();
break;
case right : // ant looks right
ant_looks = down;
move_down();
break;
case down : // ant looks down
ant_looks = left;
move_left();
break;
case left : // ant looks left
ant_looks = up;
move_up();
break;
}
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD Online Participants