diff --git a/2022/day10.py b/2022/day10.py new file mode 100755 index 0000000..1400b5f --- /dev/null +++ b/2022/day10.py @@ -0,0 +1,58 @@ +#!/usr/bin/python3 +""" +Jour 10 du défi Advent Of Code pour l'année 2022 +""" + +def read_sample(): + """récupère les entrées depuis le fichier texte correspondant""" + with open('inputs/day10.txt', 'r') as f: + sample = f.read().split('\n') + sample = [ i for i in sample if i != '' ] + return sample + + +def generate(sample): + cursor = 0 + X_values = [1] + X = 1 + + for instr in sample: + if instr.split(" ")[0] == "noop": + X_values.append(X) + else: + X_values.append(X) + X_values.append(X) + X += int(instr.split(" ")[1]) + + return X_values + + +def part1(sample): + """Partie 1 du défi""" + checks = [20, 60, 100, 140, 180, 220] + X_values = generate(sample) + + return sum([X_values[i]*i for i in range(len(X_values)) if i in checks]) + +def part2(sample): + """Partie 2 du défi""" + checks = [20, 60, 100, 140, 180, 220] + positions = [[' ' for _ in range(40)] for _ in range(6)] + X_values = generate(sample)[1:] + + for i in range(6): + for j in range(40): + if j in [X_values[i*40+j]-1, X_values[i*40+j], X_values[i*40+j]+1]: + positions[i][j] = '#' + + return ("\n"+"\n".join(["".join(positions[i]) for i in range(len(positions))])) + + +def main(): + """Fonction principale""" + sample = read_sample() + print(f"part1: {part1(sample)}") + print(f"part2: {part2(sample)}") + +if __name__ == "__main__": + main() \ No newline at end of file