Compare commits

...

2 commits

Author SHA1 Message Date
rick b8e99d9d88
Ajout jour3 2021-04-18 03:15:09 +02:00
rick 44dc331f6e
Ajout première partie 2021-04-18 03:13:04 +02:00
3 changed files with 80 additions and 1 deletions

View file

@ -13,7 +13,7 @@ mono jour10.exe
|-----:|------------:|------------:|----------------------:|----------------:|--:|
| 1 | C | gcc | gcc jour1.c | ./a.out | |
| 2 | Java | jdk 11 | javac *.java | java Main | |
| 3 | | | | | |
| 3 | Go | | | go run jour3.go | |
| 4 | Python | | | python3 run.py | |
| 5 | Cobol | gnucobol | cobc -x jour5.cob | ./jour5 | |
| 6 | | | | | |
@ -61,6 +61,12 @@ java Main
## Jour 3
Pour ce jour, le **Go** a été utilisé. Un langage qui fait beaucoup pensé au C mais aussi au Python ! Bien quil soit possible de compiler le fichier, jai utilisé la partie interpréteure du langage.
```bash
go run jour3.go
```
## Jour 4
Le langage le plus simple ! Juste un fichier dune vingtaine de ligne : merci au **Python** ! Jai décidé de faire une approche bruteforce au lieu de chercher un moyen de « casser » le MD5. Pardonnez ma fainéantise.

1
jour03/input Normal file

File diff suppressed because one or more lines are too long

72
jour03/jour3.go Normal file
View file

@ -0,0 +1,72 @@
package main
import (
"bufio"
"fmt"
"io"
"os"
"container/list"
)
type Coord struct {
x int
y int
}
func check(e error) {
if e != nil {
panic(e)
}
}
func coordDansListe(l *list.List, e Coord) (bool) {
var tmp Coord
for elem := l.Front(); elem != nil; elem = elem.Next() {
tmp = Coord(elem.Value.(Coord))
if tmp.x == e.x && tmp.y == e.y {
return true
}
}
return false
}
func p_partie(file *os.File) {
reader := bufio.NewReader(file)
var pred Coord
pred.x = 0
pred.y = 0
nbMaison := 1
listeMaison := list.New()
listeMaison.PushFront(pred)
char, _, err := reader.ReadRune()
for err != io.EOF {
switch string(char) {
case "^":
pred.y++
case ">":
pred.x++
case "<":
pred.x--
case "v":
pred.y--
}
if !coordDansListe(listeMaison, pred) {
listeMaison.PushFront(pred)
nbMaison++
}
char, _, err = reader.ReadRune()
}
fmt.Printf("Il y a %d maisons déservies\n", nbMaison)
}
func main() {
inputFile, err := os.Open("input")
check(err)
p_partie(inputFile)
inputFile.Close()
}