def get_all_words(board):
a=[]
b=[]
for i in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
s=''
for w in board[i]+['']:
s+=w
if w=='':
if len(s)>1:
if is_valid(s): a.append(s)
else: b.append(s)
s=''
for i2 in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
w=board[i2][i]
s+=w
if w=='' or i2==14:
if len(s)>1:
if is_valid(s): a.append(s)
else: b.append(s)
s=''
return [sorted(a),sorted(b)]
def get_all_wordspos(board):
a=[]
b=[]
for i in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
s=''
for i2 in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
w=board[i][i2]
s+=w
if w=='' or i2==14:
if len(s)>1:
if is_valid(s): a.append([s,0,i,i2])
else: b.append([s,0,i,i2])
s=''
for i2 in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
w=board[i2][i]
s+=w
if w=='' or i2==14:
if len(s)>1:
if is_valid(s): a.append([s,1,i2,i])
else: b.append([s,1,i2,i])
s=''
return [sorted(a),sorted(b)]
def get_play(board, new_board):
d=[]
for i in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
for e in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
if board[i][e]!=new_board[i][e]:
if d==[]: d=[i,e,1,'']
d2=i
d[3]+=new_board[i][e]
if d[0]==d2: d[2]=0
return d
def play(row,col,down,tiles,board):
a,b=place_tiles(row,col,down,tiles,board)
c=get_all_wordspos(board)[0]
d,d1=get_all_wordspos(b)
if d1!=[] or not a: return -1
for i in c:
if i in d:
d.remove(i)
a=0
for i in d:
for e in i[0]:
a+=get_value(e)
if len(tiles)>6: a+=50
return a
def best_play(tiles,board):
f=[-1,-1,-1,-1]
for i in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
for e in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]:
for w in [0,1]:
s=play(i,e,w,tiles,board)
if s>f[0]: f=[s,i,e,w]
return f
|