AsciiGlass/abrivan
AsciiGlass/Stephan
t1def input_handling():t1def input_handling():
2    a = "a's not empty"2    a = "a's not empty"
3    data = [1, 1, 1, 1, 1]3    data = [1, 1, 1, 1, 1]
4    wall_y = -14    wall_y = -1
5    wall_x = 05    wall_x = 0
6    water_y = 06    water_y = 0
7    glass_y = 07    glass_y = 0
8    while True:8    while True:
9        if a != "":9        if a != "":
10            wall_x = len(a)10            wall_x = len(a)
11            a = input()11            a = input()
12            if "#" in a:12            if "#" in a:
13                glass_y += 113                glass_y += 1
14            if "*" in a:14            if "*" in a:
15                water_y += 115                water_y += 1
16            if "###" in a:16            if "###" in a:
17                glass_x = a.count('#')17                glass_x = a.count('#')
1818
19        else:19        else:
20            break20            break
21        wall_y += 121        wall_y += 1
2222
23    data = [wall_x, wall_y, glass_y, glass_x, water_y]23    data = [wall_x, wall_y, glass_y, glass_x, water_y]
24    return data24    return data
2525
2626
27def handle_falling(wall_x, glass_x, water_y):27def handle_falling(wall_x, glass_x, water_y):
28    water_level = (glass_x - 2)*water_y28    water_level = (glass_x - 2)*water_y
29    water_heigth = water_level//wall_x29    water_heigth = water_level//wall_x
30    if (water_level/wall_x) != (water_level//wall_x):30    if (water_level/wall_x) != (water_level//wall_x):
31        water_heigth += 131        water_heigth += 1
32    return water_heigth32    return water_heigth
3333
3434
35def fallen_glass_draw(wall_x, wall_y, glass_x, glass_y, water_y):35def fallen_glass_draw(wall_x, wall_y, glass_x, glass_y, water_y):
36    water_heigth = handle_falling(wall_x, glass_y, water_y)36    water_heigth = handle_falling(wall_x, glass_y, water_y)
37    wall_with_water_y = wall_y-water_heigth37    wall_with_water_y = wall_y-water_heigth
38    for i in range(0, wall_with_water_y):38    for i in range(0, wall_with_water_y):
39        if i < (wall_y-glass_y):39        if i < (wall_y-glass_y):
40            dot = "."40            dot = "."
41        else:41        else:
42            dot = "#"42            dot = "#"
43        for j in range(1, wall_x):43        for j in range(1, wall_x):
44            if (i == (wall_y - glass_y) or (water_heigth ==44            if (i == (wall_y - glass_y) or (water_heigth ==
45                                            0 and i == wall_y-1)) and j < glass_x:45                                            0 and i == wall_y-1)) and j < glass_x:
46                dot += "#"46                dot += "#"
47            else:47            else:
48                dot += "."48                dot += "."
49        print(dot)49        print(dot)
5050
51    for i in range(0, water_heigth):51    for i in range(0, water_heigth):
52        star = "*"52        star = "*"
53        for j in range(1, wall_x):53        for j in range(1, wall_x):
54            star += "*"54            star += "*"
55        print(star)55        print(star)
56    return56    return
5757
5858
59data = input_handling()59data = input_handling()
60fallen_glass_draw(data[0], data[1], data[2], data[3], data[4])60fallen_glass_draw(data[0], data[1], data[2], data[3], data[4])
6161
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op