june__Park 2021. 3. 1. 01:24
# 테트리스(심화)
# 0은 빈칸 1은 테트리스 블록이고 2는 벽이다 
data = [[0,0,0,0,0,0],
        [0,0,1,0,0,0],
        [0,1,1,1,2,0],
        [0,0,0,2,2,0],
        [0,0,0,2,0,0],
        [0,0,0,2,0,0]]
# 1) 왼쪽 2) 아래 3) 오른쪽
# 넘버를 입력받고 "이동가능" , "이동불가" 출력
block = 1
wall = 2
size = len(data)
while True:
    for i in range(size):
        for j in range(size):
            if data[i][j] == 0:
                print("ㅇ",end = "")
            elif data[i][j] == 1:
                print("▣",end = "")
            elif data[i][j] == 2:
                print("▦",end = "")
        print()
    print("[menu]")
    print("1) 왼쪽 2) 아래 3) 오른쪽 4) 종료")
    sel = int(input("입력: "))
    if sel == 1:
        cnt = 0
        for i in range(size):
            for j in range(size):
                if data[i][j] == block:
                    if j == 0 or data[i][j-1] == 2:
                        print("이동불가")
                        cnt = 1
                        break
        if cnt == 0:
            for i in range(size):
                for j in range(size):
                    if data[i][j] == block:
                        if data[i][j-1] != 1:
                            data[i][j-1] = 3
                        elif data[i][j+1] == 1:
                            data[i][j+1] = 3
                        data[i][j] = 0
            for i in range(size):
                for j in range(size):
                    if data[i][j] == 3:
                        data[i][j] = block
            print("이동가능")
    elif sel == 2:
        cnt = 0
        for i in range(size):
            for j in range(size):
                if data[i][j] == block:
                    if i == size-1 or data[i+1][j] == 2:
                        print("이동불가")
                        cnt = 1
                        break
        if cnt == 0:
            for i in range(size):
                for j in range(size):
                    if data[i][j] == block:
                        if data[i+1][j] != 1 and data[i-1][j] != 1:
                            data[i+1][j] = 3
                            data[i][j] = 0
                        elif data[i+1][j] != 1 and data[i-1][j] == 1:
                            data[i+1][j] = 3
                            data[i][j] = 3
                            data[i-1][j] = 0
                            
                            
            for i in range(size):
                for j in range(size):
                    if data[i][j] == 3:
                        data[i][j] = block
            print("이동가능")
    elif sel == 3:
        cnt = 0
        for i in range(size):
            for j in range(size):
                if data[i][j] == block:
                    if j == size-1 or data[i][j+1] == 2:
                        print("이동불가")
                        cnt = 1
                        break
        if cnt == 0:
            for i in range(size):
                for j in range(size):
                    if data[i][j] == block:
                        if data[i][j+1] != 1:
                            data[i][j+1] = 3
                            if data[i][j-1] == 1:
                                data[i][j] = 3
                            else:
                                data[i][j] = 0
                        else:
                            if data[i][j+2] == 1 and j+2 != size-1:
                                continue    
                            elif data[i][j+2] != 1 and j+2 != size-1:
                               data[i][j-1] = 0
                           
                        
            for i in range(size):
                for j in range(size):
                    if data[i][j] == 3:
                        data[i][j] = block
            print("이동가능")
    elif sel == 4:
        print("종료합니다.")
        break