elif event.type == KEYUP:
lives -= 1
key_pressed = True
if event.key in (K_LEFT, K_a) and is_valid_move(LEFT):
move = LEFT
(boxx,boxy) = (BLANK[0]+1,BLANK[1])
elif event.key in (K_RIGHT, K_d) and is_valid_move(RIGHT):
move = RIGHT
(boxx,boxy) = (BLANK[0]-1,BLANK[1])
elif event.key in (K_UP, K_w) and is_valid_move(UP):
move = UP
(boxx,boxy) = (BLANK[0],BLANK[1]+1)
elif event.key in (K_DOWN, K_s) and is_valid_move(DOWN):
move = DOWN
(boxx,boxy) = (BLANK[0],BLANK[1]-1)
draw_boxs(BOARD,boxs)
if (boxx,boxy) != (None,None) and (mouse_clicked or key_pressed) and (boxx,boxy) != BLANK :
anim_side(boxs,boxx,boxy,move)
boxs[BLANK[0]][BLANK[1]].num = boxs[boxx][boxy].num
boxs[BLANK[0]][BLANK[1]].is_blank = False
boxs[boxx][boxy].move_to(move)
lives -= 1
key_pressed = True
if event.key in (K_LEFT, K_a) and is_valid_move(LEFT):
move = LEFT
(boxx,boxy) = (BLANK[0]+1,BLANK[1])
elif event.key in (K_RIGHT, K_d) and is_valid_move(RIGHT):
move = RIGHT
(boxx,boxy) = (BLANK[0]-1,BLANK[1])
elif event.key in (K_UP, K_w) and is_valid_move(UP):
move = UP
(boxx,boxy) = (BLANK[0],BLANK[1]+1)
elif event.key in (K_DOWN, K_s) and is_valid_move(DOWN):
move = DOWN
(boxx,boxy) = (BLANK[0],BLANK[1]-1)
draw_boxs(BOARD,boxs)
if (boxx,boxy) != (None,None) and (mouse_clicked or key_pressed) and (boxx,boxy) != BLANK :
anim_side(boxs,boxx,boxy,move)
boxs[BLANK[0]][BLANK[1]].num = boxs[boxx][boxy].num
boxs[BLANK[0]][BLANK[1]].is_blank = False
boxs[boxx][boxy].move_to(move)