import curses
import random

stdscr = curses.initscr()
curses.curs_set(0)
sh, sw = stdscr.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
w.keypad(1)
w.timeout(100)

tetrominoes = [
    [[(0, 0), (1, 0), (0, 1), (1, 1)]],
    [[(0, 0), (1, 0), (2, 0), (3, 0)], [(0, 0), (0, 1), (0, 2), (0, 3)]],
    [[(0, 0), (1, 0), (1, 1), (1, 2)], [(1, 0), (0, 1), (1, 1), (2, 1)]],
    [[(1, 0), (1, 1), (0, 1), (0, 2)], [(0, 0), (1, 0), (1, 1), (2, 1)]],
    [[(0, 0), (1, 0), (1, 1), (2, 1)], [(1, 0), (0, 1), (1, 1), (0, 2)]],
    [[(0, 0), (0, 1), (1, 1), (1, 2)], [(1, 0), (1, 1), (2, 1), (2, 2)]],
]

def rotate(piece):
    return [[x[1], -x[0]] for x in piece]

def check_piece(board, piece, x, y):
    for px, py in piece:
        if x + px < 0 or x + px >= len(board[0]) or y + py < 0 or y + py >= len(board) or board[y + py][x + px]:
            return False
    return True

def add_piece(board, piece, x, y):
    for px, py in piece:
        board[y + py][x + px] = 1

def clear_lines(board):
    new_board = [[0] * 10 for _ in range(20)]
    new_y = 19
    for y in range(19, -1, -1):
        if not all(board[y]):
            new_board[new_y] = board[y]
            new_y -= 1
    return new_board

board = [[0] * 10 for _ in range(20)]
tetromino = random.choice(tetrominoes)
x, y = 3, 0

while True:
    key = w.getch()
    dx, dy = 0, 1
    new_tetromino = tetromino

    if key == curses.KEY_LEFT:
        dx = -1
    elif key == curses.KEY_RIGHT:
        dx = 1
    elif key == curses.KEY_DOWN:



응답시간 제한때매 짧게 해달라 해도 이쯤에서 멈추는데 이정도면 다 짰네