diff --git a/Un taquin sans trou.py b/Un taquin sans trou.py new file mode 100644 index 0000000..e931fba --- /dev/null +++ b/Un taquin sans trou.py @@ -0,0 +1,134 @@ +from PIL import Image + +img = "m-taquin-m.png" +input = """h, 0, 23 +v, 7, -10 +h, 23, -18 +h, 18, 3 +h, 0, -19 +h, 7, 8 +h, 17, -12 +v, 7, 4 +v, 0, 24 +h, 22, 3 +v, 8, -15 +h, 24, -3 +h, 2, 0 +h, 11, -2 +v, 1, 22 +v, 17, -17 +v, 2, 11 +v, 20, 15 +v, 18, -12 +h, 1, 18 +h, 24, -6 +h, 7, -18 +v, 8, 5 +v, 5, -1 +v, 6, 18 +v, 22, 19 +h, 19, 16 +h, 17, 22 +h, 5, 5 +v, 8, 16 +h, 21, -4 +h, 7, -22 +v, 12, -7 +h, 6, 12 +v, 6, 17 +v, 12, 17 +v, 4, -8 +h, 7, 23 +v, 23, 13 +v, 18, 1 +v, 7, -16 +v, 2, 24 +h, 3, -15 +h, 21, 3 +h, 12, 0 +v, 16, -8 +h, 21, 22 +h, 21, 10 +v, 24, 17 +v, 3, -6 +v, 5, 5 +h, 23, 22 +v, 16, 24 +h, 16, -18 +v, 20, 8 +h, 4, -1 +h, 17, 9 +h, 19, -4 +v, 0, -17 +v, 9, -9 +h, 7, 12 +h, 2, 22 +v, 2, 24 +h, 4, 18 +v, 17, -14 +v, 16, 14 +v, 6, 10 +h, 22, -5 +v, 21, 17 +v, 14, 9 +v, 3, -9 +h, 2, -3 +h, 18, 11 +h, 18, -10 +h, 2, 21 +h, 7, -20 +h, 10, -20 +h, 8, 18 +v, 6, 10 +h, 23, 12 +v, 7, 6 +v, 6, -18 +h, 21, 3 +v, 13, 2 +v, 23, -21 +h, 1, 1 +v, 3, -9 +h, 6, 10 +v, 4, 3 +h, 8, 5 +h, 2, 4 +h, 1, 17 +h, 2, 24 +h, 5, 2 +v, 15, -11 +v, 1, -14 +v, 0, 0 +v, 14, -6 +v, 22, 22 +v, 4, -12""" + +bandelettes = 25 + +img = Image.open(img) + +width, height = img.size +bandelette_largeur = width//bandelettes + +img_h = Image.new(img.mode, (width, bandelette_largeur)) +img_v = Image.new(img.mode, (bandelette_largeur, height)) + +for move in input.split("\n")[::-1]: + move_type, move_band, move_size = move.replace(" ", "").split(",") + print(move_type, move_band, move_size) + move_band = int(move_band) + move_size = (-int(move_size))%bandelettes + + if move_type == "h": + region1 = img.crop((width - move_size*bandelette_largeur, move_band*bandelette_largeur, width, (move_band+1)*bandelette_largeur)) + region2 = img.crop((0, move_band*bandelette_largeur, width - move_size*bandelette_largeur, (move_band+1)*bandelette_largeur)) + + img.paste(region1, (0, move_band*bandelette_largeur)) + img.paste(region2, (move_size*bandelette_largeur, move_band*bandelette_largeur)) + else: + region1 = img.crop((move_band*bandelette_largeur, height - move_size*bandelette_largeur, (move_band+1)*bandelette_largeur, height)) + region2 = img.crop((move_band*bandelette_largeur, 0, (move_band+1)*bandelette_largeur, height - move_size*bandelette_largeur)) + + img.paste(region1, (move_band*bandelette_largeur, 0)) + img.paste(region2, (move_band*bandelette_largeur, move_size*bandelette_largeur)) + +img.show() diff --git a/m-taquin-m.png b/m-taquin-m.png new file mode 100644 index 0000000..108c2bc Binary files /dev/null and b/m-taquin-m.png differ