Un taquin sans trou
This commit is contained in:
134
Un taquin sans trou.py
Normal file
134
Un taquin sans trou.py
Normal file
@@ -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()
|
||||
Reference in New Issue
Block a user