import sys
import time
import random

WIDTH = 80
HEIGHT = 24

drops = [random.randint(0, HEIGHT) for _ in range(WIDTH)]

try:
    while True:
        print("\033[H", end="")

        for y in range(HEIGHT):
            row = []
            for x in range(WIDTH):
                row.append("!" if drops[x] == y else " ")
            print("".join(row))

        for i in range(WIDTH):
            drops[i] += 1
            if drops[i] > HEIGHT or random.random() < 0.03:
                drops[i] = random.randint(-HEIGHT, 0)

        time.sleep(0.05)

except KeyboardInterrupt:
    sys.exit()

