Added article AoC2021-Day0
Signed-off-by: Louis Vallat <louis@louis-vallat.xyz>
This commit is contained in:
parent
d933650332
commit
dcab374962
73
src/aoc-2021-jour-0-commencement.md
Normal file
73
src/aoc-2021-jour-0-commencement.md
Normal file
@ -0,0 +1,73 @@
|
||||
# AoC 2021 Jour 0: Commencement
|
||||
|
||||
> Le début d'une grande aventure !
|
||||
|
||||
Cette année, j'ai découvert l'[Advent Of Code](https://adventofcode.com/).
|
||||
Ce site géré de manière bénévole par [Eric Wastl](http://was.tl/) sur son temps
|
||||
libre met à disposition des puzzles sur un thème différent d'une année sur
|
||||
l'autre. Ces petits puzzles sont à résoudre à l'aide d'un programme informatique
|
||||
ou d'un algorithme que l'on est sensé imaginer et mettre en oeuvre, pour, à partir
|
||||
d'un fichier d'entrée qui nous est propre, donner un résultat à troquer sur le site
|
||||
du challenge en échange d'une étoile. Le langage et la manière d'obtenir le
|
||||
résultat sont libres, mais faire les défis "à la main" est rarement possible
|
||||
(en tous cas en temps humain). Pendant tout le mois de décembre, un défi est publié
|
||||
chaque jour du 1er au 25. Ils sont systématiquement découpés en 2 parties, la
|
||||
seconde n'étant accessible qu'une fois la première résolue.
|
||||
En échange d'une réponse valide au problème, une étoile nous est donnée, pour avoir
|
||||
un total de 50 étoiles par an.
|
||||
|
||||
Il n'y a pas de pénalité si le puzzle n'est pas résolu dans la journée, mais un
|
||||
*leaderboard* est disponible, et les 100 premiers à résoudre les puzzles obtiennent
|
||||
des points sur leur profil. C'est comme cela que j'ai découvert qu'il existait
|
||||
une discipline de [Programmation Compétitive](https://en.wikipedia.org/wiki/Competitive_programming).
|
||||
|
||||
Cette année, le thème c'était la quête de la clé du traîneau du Père Noël au fond
|
||||
d'une crevasse sous-marine, armé d'un petit sous-marin, et rencontrant au passage
|
||||
une faune et flore locale diverse.
|
||||
|
||||
![Vue de l'intérieur d'un sous-marin d'exploration. Photo par Michael Mrozek pour Unsplash.](./assets/images/aoc-2021-day-0/michal-mrozek-BEUd36I1-f8-unsplash.jpg)
|
||||
|
||||
J'ai déjà résolu les 25 jours et obtenu mes 50 étoiles, je souhaite maintenant
|
||||
raconter ici mon aventure, jour après jour, et les algorithmes que j'ai mis en
|
||||
place.
|
||||
|
||||
## Pourquoi
|
||||
|
||||
J'ai choisi de participer à cet évènement pour différentes raisons :
|
||||
|
||||
- j'aime les défis, je trouve amusant et plaisant d'avoir un but à atteindre en code
|
||||
- je voulais m'exercer, j'aime travailler sur des projets sur mon temps libre
|
||||
|
||||
## Comment
|
||||
|
||||
Mes algorithmes sont implémentés en [Rust](https://www.rust-lang.org/), un langage
|
||||
que j'aime beaucoup, pour différentes raisons qui sont hors sujet par rapport à
|
||||
cette série d'articles. Un article spécifique sur ce qui me plaît dans ce
|
||||
langage de programmation arrivera peut-être plus tard.
|
||||
|
||||
Mon but était de résoudre les puzzles en temps limité, si possible en moins d'une
|
||||
journée, et que le programme final donne sa réponse le plus rapidement possible.
|
||||
Si après 3 jours à travailler sur un puzzle, il donne une réponse en 300ms, cela
|
||||
me convient. **Le but n'étant pas ici de faire des algorithmes optimaux.**
|
||||
|
||||
Chaque jour a été mis à disposition sur [gitlab](https://gitlab.com/lovallat/advent-of-code-2021).
|
||||
|
||||
## Beurk
|
||||
|
||||
Vous trouvez le code illisible ? C'est **normal**.
|
||||
|
||||
J'ai tendance dans mes programmes à avoir de mauvaises habitudes, *hostiles* à
|
||||
la relecture de code. J'ai tendance à utiliser par exemple des variables dont le
|
||||
nom se résume à une unique lettre. J'ai aussi tendance à vouloir produire un
|
||||
fichier source le plus court possible (tout en respectant les standards du langage
|
||||
utilisé). Le code fourni est alors un bloc compact **difficile à lire**.
|
||||
|
||||
J'ai donc décidé de me faire subir le même sort que celui réservé à mes collègues
|
||||
lorsqu'il doivent relire mon code, afin de me faire **perdre** ces mauvaises
|
||||
habitudes. (*spoiler: c'était efficace*)
|
||||
|
||||
## À suivre
|
||||
|
||||
Seront publiés sur ce blog différents articles retraçant et expliquant jour après
|
||||
jour ce que mes algorithmes et programmes font pour résoudre les différents défis.
|
||||
|
@ -143,10 +143,6 @@ em, i {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.articles {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
footer {
|
||||
font-size: 14px;
|
||||
margin-bottom: 100px;
|
||||
@ -171,12 +167,6 @@ code {
|
||||
font-family: 'IBM Plex Mono', monospace;
|
||||
}
|
||||
|
||||
.date {
|
||||
display: inline;
|
||||
margin-left: 10px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 992px) {
|
||||
body {
|
||||
margin-right: 10vw;
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 511 KiB |
@ -1,6 +1,5 @@
|
||||
#### Articles
|
||||
|
||||
<ul class="articles">
|
||||
<li><a href="git_flow.html">Git Workflow</a><p class="date">10/05/2021</p></li>
|
||||
</ul>
|
||||
- [Advent of Code 2021 Jour 0 : le commencement](./aoc-2021-jour-0-commencement.html) - *17/01/2022*
|
||||
- [Git workflow](./git_flow.html) - *10/05/2021*
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user