Compare commits
3 commits
8b0b6e1890
...
dee1b30eb3
Author | SHA1 | Date | |
---|---|---|---|
dee1b30eb3 | |||
ba6d6b5f5a | |||
6a9a9220b7 |
3 changed files with 67 additions and 2 deletions
23
README.md
23
README.md
|
@ -22,7 +22,7 @@ mono jour10.exe
|
|||
| 9 | | | | | |
|
||||
| 10 |Visual Basic | vbnc | vbnc jour10.vbs | mono jour10.exe | |
|
||||
| 11 | Lua | | | lua jour11.lua | |
|
||||
| 12 | | | | | |
|
||||
| 12 | Node.JS | | | node jour12.js | |
|
||||
| 13 | | | | | |
|
||||
| 14 | | | | | |
|
||||
| 15 | | | | | |
|
||||
|
@ -132,6 +132,26 @@ lua jour11.lua
|
|||
```
|
||||
|
||||
## Jour 12
|
||||
|
||||
Avant d’écrire le script Node.JS, j’ai utilisé une REGEX pour la première partie. Il suffit d’additionner les nombres du fichier ! Ça se fait très facilement en Bash. Par contre, la REGEX de la partie 2, si elle existe, est beaucoup plus complexe. J’ai préféré réécrire ma réponse à la question 1 en Node.JS, langage logique pour du JSON.
|
||||
|
||||
Voici la ligne bash décortiquée en script pour une meilleure compréhension :
|
||||
|
||||
```bash
|
||||
sum=0
|
||||
for i in $(grep -oE '(-)?[[:digit:]]+' input)
|
||||
do
|
||||
sum=$(($sum + $i))
|
||||
done
|
||||
echo $sum
|
||||
```
|
||||
|
||||
Sinon, il suffit d’installer `node` et de lancer avec la commande suivante, aucune dépendance n’est requise :
|
||||
|
||||
```bash
|
||||
node jour12.js
|
||||
```
|
||||
|
||||
## Jour 13
|
||||
## Jour 14
|
||||
## Jour 15
|
||||
|
@ -167,7 +187,6 @@ Liste des langages utilisés
|
|||
* PHP
|
||||
* Pony
|
||||
* Ruby
|
||||
* Lua
|
||||
* Pawn
|
||||
* Squirrel
|
||||
* Scala
|
||||
|
|
1
jour12/input
Normal file
1
jour12/input
Normal file
File diff suppressed because one or more lines are too long
45
jour12/jour12.js
Normal file
45
jour12/jour12.js
Normal file
|
@ -0,0 +1,45 @@
|
|||
const fs = require('fs');
|
||||
const file = fs.readFileSync("input", "utf8");
|
||||
const data = JSON.parse(file);
|
||||
|
||||
try {
|
||||
console.log("Traitement de la première partie…");
|
||||
console.log("La somme totate est " + parseJsonPrem(data));
|
||||
} catch(err) {
|
||||
console.log("Une erreur a été rencontrée !");
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
function parseJsonPrem(obj) {
|
||||
let ret = 0;
|
||||
let value;
|
||||
|
||||
for (const index in obj) {
|
||||
value = obj[index];
|
||||
if (value instanceof Object) {
|
||||
ret += parseJsonPrem(value);
|
||||
} else if (Number.isInteger(value)) {
|
||||
ret += value;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
function parseObject(objet) {
|
||||
let ret = 0;
|
||||
let value;
|
||||
|
||||
for (const index in obj) {
|
||||
value = obj[index];
|
||||
if (value instanceof Array) {
|
||||
ret += parseArray(value);
|
||||
} else if (value instanceof Object) {
|
||||
ret += parseObject(value);
|
||||
} else if (Number.isInteger(value)) {
|
||||
ret += value;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
*/
|
Loading…
Add table
Reference in a new issue