diff --git a/.gitignore b/.gitignore index dbe9c82..18aad80 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.vscode/ \ No newline at end of file +.vscode/ +chocogrenouille/ diff --git a/L'écharpe de Mme Weasley.png b/L'écharpe de Mme Weasley.png new file mode 100644 index 0000000..7b6e2f9 Binary files /dev/null and b/L'écharpe de Mme Weasley.png differ diff --git a/L'écharpe de Mme Weasley.py b/L'écharpe de Mme Weasley.py new file mode 100644 index 0000000..91bd277 --- /dev/null +++ b/L'écharpe de Mme Weasley.py @@ -0,0 +1,24 @@ +from PIL import Image + +image = Image.open("L'écharpe de Mme Weasley.png") +#image = Image.open("L'écharpe de Mme Weasley_exemple.png") + +block = 8 + +width, height = image.size + +xmax = width // block +ymax = height // block + +res = "" + +for x in range(xmax): + for y in range(ymax): + colors = {} + for i in range(block): + for j in range(block): + pixel = image.getpixel((x*block+i,y*block+j)) + colors[pixel] = None + res = res + f"{len(colors)-1:1X}" + +print(bytearray.fromhex(res).decode()) diff --git a/L'écharpe de Mme Weasley_exemple.png b/L'écharpe de Mme Weasley_exemple.png new file mode 100644 index 0000000..5ce25a7 Binary files /dev/null and b/L'écharpe de Mme Weasley_exemple.png differ diff --git a/Le retourneur de temps.py b/Le retourneur de temps.py new file mode 100644 index 0000000..433fc48 --- /dev/null +++ b/Le retourneur de temps.py @@ -0,0 +1,14 @@ +ctr = 0 +uctr = 0 +umax = uctr + +while True: + ctr = ctr + 1 + if ctr > 1 and sum([int(i) for i in str(uctr)])%7 == 0: + uctr = uctr - 7 + else: + uctr = uctr + 2 + + if uctr > umax: + umax = uctr + print("MAX = ", umax) diff --git a/Les cartes chocogrenouille à trier (1).py b/Les cartes chocogrenouille à trier (1).py new file mode 100644 index 0000000..9ad4a84 --- /dev/null +++ b/Les cartes chocogrenouille à trier (1).py @@ -0,0 +1,54 @@ +import requests +import os +import time + +url_get = "https://pydefis.callicode.fr/defis/MLPotter01/intern/aMI7JVIH+mN1UYdaODx1mtD6QQVrpTvKjVyFbfcqBW9gwm1qWxv4LTI%3D/card.png" +url_post = "https://pydefis.callicode.fr/defis/MLPotter01/intern/aMI7JVIH+mN1UYdaODx1mtD6QQVrpTvKjVyFbfcqBW9gwm1qWxv4LTI%3D/reponse" + +card_folder = os.path.join(os.path.dirname(__file__), "chocogrenouille") + +ctr = 0 + +#Preload already dopwnloaded cards +cards = {} +for (dirpath, dirnames, filenames) in os.walk(card_folder): + for filename in filenames: + with open(os.path.join(card_folder, filename), mode='rb') as file_obj: + cards[file_obj.read()] = filename.replace(".png", "") + break + +while True: + req_card = requests.get(url = url_get) + + if req_card.content in cards: + name = cards[req_card.content] + found = True + else: + name = "unknown" + found = False + + req_res = requests.get(url = f"{url_post}/{name}") + + response = req_res.content.decode("utf-8").strip().replace('"', '') + + if "Password" in response: + print(f"La reponse est: {response}") + break + + if found and response == name: + ctr = ctr + 1 + print(f"J'ai bon: '{name}' ({ctr})") + elif found: + ctr = 0 + print(f"J'ai pas bon: '{response}' alors que j'avais prévu '{name}'") + else: + ctr = 0 + print(f"Un nouveau venu: '{response}'") + + if not found: + cards[req_card.content] = response + with open(os.path.join(card_folder, response+".png"), "wb") as binary_file: + # Write bytes to file + binary_file.write(req_card.content) + + time.sleep(1.1) diff --git a/Monnaie de sorcier.py b/Monnaie de sorcier.py new file mode 100644 index 0000000..26c6ce2 --- /dev/null +++ b/Monnaie de sorcier.py @@ -0,0 +1,34 @@ +print("Exemple:") +noises = 125*17*29 + +gallions = 125 +mornilles = gallions * 17 +noises = mornilles * 29 + +digits_noises = "".join(sorted(list({key:None for key in str(noises)}.keys()))) +digits_mornilles = "".join(sorted(list({key:None for key in str(mornilles)}.keys()))) +digits_gallions = "".join(sorted(list({key:None for key in str(gallions)}.keys()))) + +print("noises", noises) +print("mornilles", mornilles) +print("gallions", gallions) + + +print("Maintenant, les choses sérieuses:") +gallions = 1 + +while True: + mornilles = gallions * 17 + noises = mornilles * 29 + + digits_noises = "".join(sorted(list({key:None for key in str(noises)}.keys()))) + digits_mornilles = "".join(sorted(list({key:None for key in str(mornilles)}.keys()))) + digits_gallions = "".join(sorted(list({key:None for key in str(gallions)}.keys()))) + + if digits_noises == digits_mornilles and digits_noises == digits_gallions: + print("noises", noises) + print("mornilles", mornilles) + print("gallions", gallions) + break + + gallions = gallions + 1 diff --git a/On a brouillé la carte du Maraudeur.py b/On a brouillé la carte du Maraudeur.py new file mode 100644 index 0000000..a984645 --- /dev/null +++ b/On a brouillé la carte du Maraudeur.py @@ -0,0 +1,19 @@ +from PIL import Image + +a = 53911 +b = 15677 + +image = Image.open("maraudeur_cr.png") + +width, height = image.size +res = Image.new(image.mode, (width, height)) + +n = width * height + +for pos in range(n): + new_pos = (a*pos+b)%n + pixel = image.getpixel((new_pos%width,new_pos//width)) + res.putpixel((pos%width,pos//width), pixel) + +#res.save("maraudeur_cr_res.png") +res.show() diff --git a/maraudeur_cr.png b/maraudeur_cr.png new file mode 100644 index 0000000..7398944 Binary files /dev/null and b/maraudeur_cr.png differ