from random import shuffle, choice
L = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, '']]
LL = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, '']]
arrow_keys = ["I", "L", "K", "J"]
def distribute():
for ctr in range(1000):
for i in range(4):
flag = 0
for j in range(4):
if L[i][j] == '':
r, c = i, j
flag = 1
break
if flag == 1:
break
key = choice(arrow_keys)
if key == 'I' and r != 3:
L[r+1][c], L[r][c] = L[r][c], L[r+1][c]
elif key == 'L' and c != 0:
L[r][c-1], L[r][c] = L[r][c], L[r][c-1]
elif key == 'K' and r != 0:
L[r][c], L[r-1][c] = L[r-1][c], L[r][c]
elif key == 'J' and c != 3:
L[r][c+1], L[r][c] = L[r][c], L[r][c+1]
def display():
print("/===========================\\")
print("| | | | |")
print("| %2s | %2s | %2s | %2s |" % (L[0][0], L[0][1], L[0][2], L[0][3]))
print("| | | | |")
print("|======|======|======|======|")
print("| | | | |")
print("| %2s | %2s | %2s | %2s |" % (L[1][0], L[1][1], L[1][2], L[1][3]))
print("| | | | |")
print("|======|======|======|======|")
print("| | | | |")
print("| %2s | %2s | %2s | %2s |" % (L[2][0], L[2][1], L[2][2], L[2][3]))
print("| | | | |")
print("|======|======|======|======|")
print("| | | | |")
print("| %2s | %2s | %2s | %2s |" % (L[3][0], L[3][1], L[3][2], L[3][3]))
print("| | | | |")
print("\===========================/")
def play():
while LL != L:
r, c = 0, 0
for i in range(4):
flag = 0
for j in range(4):
if L[i][j] == '':
r, c = i, j
flag = 1
break
if flag == 1:
break
key = input().upper()
if key == 'I' and r != 3:
L[r+1][c], L[r][c] = L[r][c], L[r+1][c]
elif key == 'L' and c != 0:
L[r][c-1], L[r][c] = L[r][c], L[r][c-1]
elif key == 'K' and r != 0:
L[r][c], L[r-1][c] = L[r-1][c], L[r][c]
elif key == 'J' and c != 3:
L[r][c+1], L[r][c] = L[r][c], L[r][c+1]
display()
print("You won!!")
distribute()
display()
play()
No comments:
Post a Comment