日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

minimax算法怎么在python中使用

發(fā)布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 minimax算法怎么在python中使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)minimax算法怎么在python中使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

完整代碼

fromfunctoolsimportwraps
importtime
importcsv


#1.初始化棋盤
#------------
definit_board():
'''
初始化棋盤

棋盤規(guī)格15*15

如下所示:
board=[[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............],
[...............]]

其中:
.–未被占用
X–被黑棋占用
O–被白棋占用
'''
print('Initboard...')
time.sleep(0.5)
n=15
board=[['.'for_inrange(n)]for_inrange(n)]

returnboard

#2.確定玩家,執(zhí)黑先走
#--------------------
defget_player():
'''
人類玩家選擇棋子顏色(黑'X'先走)
'''
humancolor=input("Enteryourcolor.(ex.'X'or'O'):").upper()
computercolor=['X','O'][humancolor=='X']

returncomputercolor,humancolor

#3.進入循環(huán)
#----------

#4.打印棋盤、提示走子
#------------------------------
defprint_board(board):#ok
'''
打印棋盤、比分

開局:
123456789abcdef
1...............
2...............
3...............
4...............
5...............
6...............
7...............
8...............
9...............
a...............
b...............
c...............
d...............
e...............
f...............
'''
axises=list('123456789abcdef')
print('',''.join(axises))
fori,vinenumerate(axises):
print(v,''.join(board[i]))

#5.思考走法、放棄終止
#--------------------
defget_human_move(board,color):#ok
'''
取人類玩家走法
'''
giveup=True#放棄標志

legal_moves=_get_legal_moves(board,color)

#print(','.join([translate_move(move)formoveinlegal_moves]),len(legal_moves))

whileTrue:
_move=input("Enteryourmove.(ex.'cd'meansrow=ccol=d):").lower()

move=translate_move(_move)

ifmoveinlegal_moves:
giveup=False#不放棄
break

returnmove,giveup

def_get_all_lianxin(board,move,color):#ok
'''
取當(dāng)前點位落子后連星

1.按照棋盤兩連、三連、四連的個數(shù)doubletriplequadrapenta
'''
n=len(board)
uncolor=['X','O'][color=='X']#反色

lianxin=[]#連星數(shù),len(lianxin)==4

directions=((0,1),(1,0),(1,1),(1,-1))#東,南,東南,西南
fordirectionindirections:
dr,dc=direction#步幅
#r,c=move#起點

count=1#連星數(shù),算上起點(落子位置)
jump_count=[0,0]#順、反方向跳開一個空格之后的連星數(shù)
jump_flag=[False,False]#順、反方向跳開一個空格的標志
block=[False,False]#順、反方向是否堵死
#name=['','']

fori,vinenumerate([1,-1]):#順、反方向分別用1、-1表示
dr,dc=v*dr,v*dc#步幅
r,c=move[0]+dr,move[1]+dc#先走一步
whileTrue:
ifnot_is_on_board(board,[r,c])orboard[r][c]==uncolor:#不在棋盤內(nèi),或?qū)Ψ狡遄?block[i]=True#被堵死
break
ifboard[r][c]=='.':#為空
ifnot_is_on_board(board,[r+dr,c+dc])orboard[r+dr][c+dc]!=color:#且下一格,不在棋盤內(nèi)、或者非己方棋子
break
ifjump_flag[i]==True:#前面已經(jīng)跳了一格了,則終止
break#能力所限,不考慮又跳一格的情況!!!
else:
jump_flag[i]=True
elifboard[r][c]==color:
ifjump_flag[i]==True:
jump_count[i]+=1
else:
count+=1

r,c=r+dr,c+dc#步進



lianxin.append([count,jump_count,block])

returnlianxin

def_move_score(board,move):#ok
'''
對該落子位置“打分”

這個邏輯太復(fù)雜了,代碼又長又臭!!暫時不考慮簡化

棋型分值:
0.活五+100000
1.死五+100000
2.活四+10000
3.死四+1000
4.活三+1000
5.死三+100
6.活二+100
7.死二+10
8.活一+10
9.死一+2

特別說明:
10.跳N兩邊棋型分相加*上一級分值的20%?商榷


lianxin==[[2,[0,0],[True,False]],
[1,[0,0],[True,False]],
[3,[1,0],[False,False]],
[3,[2,1],[True,False]]]
'''
#死一,活一,死二,活二,死三,活三,死四,活四,死五,活五
scores=[2,10,10,100,100,1000,1000,10000,100000,100000]
sum_score=0
forcolorin['X','O']:
forlianxinin_get_all_lianxin(board,move,color):
count,jump_count,block=lianxin
ifjump_count[0]>0andjump_count[1]>0:#情況一:兩邊跳
ifblock[0]==Trueandblock[1]==True:
ifcount+jump_count[0]+jump_count[1]+2<5:continue
else:
#這邊跳了
ifblock[0]==True:#有跳的,先把分數(shù)加了再說(查表加分)
sum_score+=scores[jump_count[0]*2-2]#加死的分
sum_score+=min(scores[(jump_count[0]+count)*2-2]*0.2,200)#上一級的20%
else:
sum_score+=scores[jump_count[0]*2-1]#加活的分
sum_score+=min(scores[(jump_count[0]+count)*2-1]*0.2,200)#上一級的20%

#這邊也跳了
ifblock[1]==True:#有跳的,先把分數(shù)加了再說(查表加分)
sum_score+=scores[jump_count[1]*2-2]#加死的分
sum_score+=min(scores[(jump_count[1]+count)*2-2]*0.2,200)#上一級的20%
else:
sum_score+=scores[jump_count[1]*2-1]#加活的分
sum_score+=min(scores[(jump_count[1]+count)*2-1]*0.2,200)#上一級的20%

#中間
sum_score+=scores[count*2-1]#中間加活的分

elifjump_count[0]>0andjump_count[1]==0:#情況二:有一邊跳
ifblock[0]==Trueandblock[1]==True:
ifcount+jump_count[0]+jump_count[1]+1<5:continue
else:
#跳的這邊
ifblock[0]==True:#先把跳那邊的分數(shù)加了再說(查表加分)
sum_score+=scores[jump_count[0]*2-2]#加死的分
sum_score+=min(scores[(jump_count[0]+count)*2-2]*0.2,200)#上一級的20%
else:
sum_score+=scores[jump_count[0]*2-1]#加活的分
sum_score+=min(scores[(jump_count[0]+count)*2-1]*0.2,200)#上一級的20%

#沒跳的那邊
ifblock[1]==True:
sum_score+=scores[count*2-2]#加死的分
else:
sum_score+=scores[count*2-1]#加活的分

elifjump_count[1]>0andjump_count[0]==0:#情況三:另一邊跳
ifblock[0]==Trueandblock[1]==True:
ifcount+jump_count[0]+jump_count[1]+1<5:continue
else:
#跳的這邊
ifblock[1]==True:#先把跳那邊的分數(shù)加了再說(查表加分)
sum_score+=scores[jump_count[1]*2-2]#加死的分
sum_score+=min(scores[(jump_count[1]+count)*2-2]*0.2,200)#上一級的20%
else:
sum_score+=scores[jump_count[1]*2-1]#加活的分
sum_score+=min(scores[(jump_count[1]+count)*2-1]*0.2,200)#上一級的20%

#沒跳的那邊
ifblock[0]==True:
sum_score+=scores[count*2-2]#加死的分
else:
sum_score+=scores[count*2-1]#加活的分

elifjump_count[0]==0andjump_count[1]==0:#情況四:兩邊都沒跳
ifblock[0]andblock[1]:#兩邊都堵死了
ifcount==5:#等于5才加,否則不加
sum_score+=scores[count*2-2]#-1,-2一樣
elifblock[0]orblock[1]:#只堵死一邊
sum_score+=scores[count*2-2]#加死的分
else:
sum_score+=scores[count*2-1]#加活的分

returnsum_score

def_get_center_enmpty_points(board):#ok
'''
取中心點附近的空位

從中心點逐圈順時針掃描,若連續(xù)兩圈未有棋子,則停止
'''
n=len(board)

center_point=[n//2,n//2]#中心點[7,7],即'88'

c1=0#空圈計數(shù)
legal_moves=[]#保存空位
foriinrange(8):#從內(nèi)到外掃描8圈
c2=True#空圈標志

ifi==0:
points=[[n//2,n//2]]
else:
#points=[第7-i行]+[第7+i列]+[第7+i行]+[第7-i列]#從左上開始,順時針一圈
points=[[7-i,c]forcinrange(7-i,7+i)]+\
[[r,7+i]forrinrange(7-i,7+i)]+\
[[7+i,c]forcinrange(7+i,7-i,-1)]+\
[[r,7-i]forrinrange(7+i,7-i,-1)]

forpointinpoints:
ifboard[point[0]][point[1]]=='.':#遇到空位,則
legal_moves.append(point)#保存點位
else:
c2=False#此圈非空

ifc2==True:#若此圈為空,空圈計數(shù)器加1
c1+=1
ifc1==2:break
else:#否則,清零
c1=0

returnlegal_moves#越前,棋盤點位分值越高!

defminimax(board,color,maximizingPlayer,depth):
'''
極大極小算法

其中:
maximizingPlayer=True#己方

用例:
_,move=minimax(board,'X',True,4)#假設(shè)計算機執(zhí)黑'X'

#參見:https://en.wikipedia.org/wiki/Minimax
functionminimax(node,depth,maximizingPlayer)is
ifdepth=0ornodeisaterminalnodethen
returntheheuristicvalueofnode
ifmaximizingPlayerthen
value:=?∞
foreachchildofnodedo
value:=max(value,minimax(child,depth?1,FALSE))
returnvalue
else(*minimizingplayer*)
value:=+∞
foreachchildofnodedo
value:=min(value,minimax(child,depth?1,TRUE))
returnvalue

(*Initialcall*)
minimax(origin,depth,TRUE)
'''
pass

defget_computer_move(board,color):
'''
取計算機玩家走法

計算機走子策略:
1.對所有合法的落子位置逐個“打分”(如何“打分”,決定了計算機下棋的水平)
2.取所有分值最高的落子位置
'''
print('Computeristhinking...',end='')
legal_moves=_get_legal_moves(board,color)

scores=[_move_score(board,move)formoveinlegal_moves]

max_score=max(scores)#最高分值
best_move=legal_moves[scores.index(max_score)]

print("'{}'".format(translate_move(best_move)))
returnbest_move

def_is_legal_move(board,move):#ok
'''
判斷落子位置是否合法

說明:只要在棋盤內(nèi),且為空,即合法

'''
if_is_on_board(board,move)andboard[move[0]][move[1]]=='.':
returnTrue

returnFalse

def_get_legal_moves(board,color):#ok
'''
取當(dāng)前顏色棋子所有的合法走法

返回格式:[[x1,y1],[x2,y2],...]
'''
legal_moves=_get_center_enmpty_points(board)

returnlegal_moves

def_is_on_board(board,move):#ok
'''
判斷點位是否在棋盤范圍內(nèi)
'''
n=len(board)

returnmove[0]inrange(n)andmove[1]inrange(n)

deftranslate_move(move):#ok
'''
轉(zhuǎn)換坐標

如'1a'可轉(zhuǎn)換為[0,9];又如[9,10]轉(zhuǎn)換為'ab'

此函數(shù),只是為了方便,不是必要的
'''
axises=list('123456789abcdef')

iftype(move)isstr:#如'cd'
row=axises.index(move[0])
col=axises.index(move[1])
_move=[row,col]#得[2,3]
eliftype(move)islist:#如[2,3]
row=axises[move[0]]
col=axises[move[1]]
_move='{}{}'.format(row,col)#得'cd'

return_move

#6.落子
#----------
defdo_move(board,move,color):#ok
'''
在當(dāng)前位置落子
'''
assertboard[move[0]][move[1]]=='.'

board[move[0]][move[1]]=color

#7.判斷局面、是否終止
#------------------------------
defcheck_board(board,color):#ok
'''
檢查棋盤

返回:是否勝利
'''
n=len(board)

directions=((0,1),(1,0),(1,1),(1,-1))#東,南,東南,西南
#四個搜索方向的起點(坐標),分四組。
#形如:[[第1列的點],[第1行的點],[第1列+第1行的點],[第1行+第n列的點]]
all_start_points=[[[i,0]foriinrange(n)],
[[0,j]forjinrange(n)],
[[i,0]foriinrange(n-4)]+[[0,j]forjinrange(1,n-4)],#排除了長度小于5,及重復(fù)的情況
[[0,j]forjinrange(4,n)]+[[i,n-1]foriinrange(1,n-4)]]

fordirection,start_pointsinzip(directions,all_start_points):
dr,dc=direction#步幅
forstart_pointinstart_points:
r,c=start_point#起點
count=0
while_is_on_board(board,[r,c]):
ifboard[r][c]==color:
count+=1
ifcount==5:
returnTrue
else:
count=0

r,c=r+dr,c+dc#步進

returnFalse

defcheck_board__(board,color):#廢棄!
'''
檢查棋盤(不如上面的方式簡潔)

返回是否勝利
'''
n=len(board)
uncolor=['X','O'][color=='X']#反色

#1.行搜索
foriinrange(n):
count=0
forjinrange(n):
ifboard[i][j]==color:
count+=1
ifcount==5:
returnTrue#'Winneris'+color
elifboard[i][j]==uncolor:
count=0

#2.列搜索
forjinrange(n):
count=0
foriinrange(n):
ifboard[i][j]==color:
count+=1
ifcount==5:
returnTrue#'Winneris'+color
elifboard[i][j]==uncolor:
count=0

#3.斜搜索k=1左上右下
#3.a.k=1對角線上方
forjinrange(n-4):#終止列n-4
count=0
foriinrange(n-j):#終止行n-j
ifboard[i][j+i]==color:
count+=1
ifcount==5:
returnTrue
elifboard[i][j+i]==uncolor:
count=0

#3.b.k=1對角線下方
foriinrange(1,n-4):#終止行n-4
count=0
forjinrange(n-i):#終止列n-i
ifboard[i+j][j]==color:
count+=1
ifcount==5:
returnTrue
elifboard[i+j][j]==uncolor:
count=0

#4.斜搜索k=-1左下右上
#4.a.k=-1對角線下方
forjinrange(n-4):#終止列n-4
count=0
foriinrange(n-j):#終止行n-j
ifboard[n-i-1][j+i]==color:
count+=1
ifcount==5:
returnTrue
elifboard[n-i-1][j+i]==uncolor:
count=0

#4.b.k=-1對角線上方
forjinrange(4,n):
count=0
foriinrange(n-1):
ifboard[i][j-i]==color:
count+=1
ifcount==5:
returnTrue
elifboard[i][j-i]==uncolor:
count=0
returnFalse




#8.游戲結(jié)束,返回信息
#--------------------


deflogging(func):#ok
'''
記錄游戲相關(guān)信息(裝飾器)

包括:
開始時間、比賽耗時、棋盤大小、黑棋玩家、白棋玩家、游戲比分、本局棋譜

保存到reversi.csv文件
'''
@wraps(func)
defwrap(*args,**kwargs):
try:
start=time.strftime("%Y%m%d%H:%M:%S",time.localtime())#開始時間

t1=time.time()
info=func(*args,**kwargs)#棋盤大小、黑棋玩家、白棋玩家、游戲比分、本局棋譜(主程序)
t2=time.time()
t=int(t2-t1)#比賽耗時

line=[start,t,*info]

withopen('gobang.csv','a')asf:
writer=csv.writer(f,lineterminator='\n')
writer.writerow(line)#寫入
exceptExceptionase:
pass

returnwrap

#==========================================
#主函數(shù)
#==========================================
#@logging
defmain():#ok
'''
主程序

人機對戰(zhàn)

流程:
1.初始化棋盤
2.確定棋手,黑先
3.進入循環(huán)
4.打印棋盤,提示走子
5.思考走法,放棄終止
6.落子
7.檢查棋盤,是否終止
8.切換棋手
9.游戲結(jié)束,返回信息
'''
#1.初始化棋盤
board=init_board()

#2.確定玩家,執(zhí)黑先走
computer_color,human_color=get_player()
current_color='X'

record=''#棋譜,如'X:abO:aaX:ba...'
#3.進入循環(huán)
whileTrue:
#4.打印棋盤、提示走子
print_board(board)
print("Nowturnto'{}'...".format(current_color))

#5.思考走法,記錄棋譜
ifcurrent_color==computer_color:
move=get_computer_move(board,current_color)
elifcurrent_color==human_color:
move,giveup=get_human_move(board,current_color)
ifgiveup==True:break#放棄則終止

record=record+'{}:{}'.format(current_color,translate_move(move))#錄入棋譜

#6.落子
do_move(board,move,current_color)

#7.判斷局面
done=check_board(board,current_color)#返回終止標志

#7_1.終止
ifdone==True:
print_board(board)
print("Gameover!Winneris'{}'".format(current_color))
break

#8.切換棋手
current_color=['X','O'][current_color=='X']


#測試
deftest_get_center_enmpty_points():
'''
#123456789abcdef
board=[[...............],#1
[...............],#2
[...............],#3
[...............],#4
[...............],#5
[...............],#6
[...............],#7
[...............],#8
[...............],#9
[...............],#a
[...............],#b
[...............],#c
[...............],#d
[...............],#e
[...............]]#f

#123456789abcdef
board=[[...............],#1
[...............],#2
[...............],#3
[...............],#4
[.........X.....],#5
[......X........],#6
[.....O..XO.....],#7
[.....XXOX......],#8
[.....XOX.......],#9
[..........X....],#a
[...X...........],#b
[..X............],#c
[.O.............],#d
[...............],#e
[...............]]#f
'''
print('Testing_get_center_enmpty_points()...')

#123456789abcdef
board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#1
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#2
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#3
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#4
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#5
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#6
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#7
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#8
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#9
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#a
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#b
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#c
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#d
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#e
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]#f
empty_points=_get_center_enmpty_points(board)

translate_points=[translate_move(move)formoveinempty_points]
#print(translate_points)
asserttranslate_points==['77','78','79','89','99','98','97','87','66','67','68','69','6a','7a','8a','9a','aa','a9','a8','a7','a6','96','86','76']

#123456789abcdef
board=[['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#1
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#2
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#3
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#4
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#5
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#6
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#7
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#8
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#9
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#a
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#b
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#c
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#d
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#e
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]#f
empty_points=_get_center_enmpty_points(board)

translate_points=[translate_move(move)formoveinempty_points]
print(translate_points)
assert'11'intranslate_points

#123456789abcdef
board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#1
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#2
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#3
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#4
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#5
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#6
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#7
['.','.','.','.','.','.','.','X','.','.','.','.','.','.','.'],#8
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#9
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#a
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#b
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#c
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#d
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#e
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]#f
empty_points=_get_center_enmpty_points(board)

translate_points=[translate_move(move)formoveinempty_points]
print(translate_points)
assert'11'intranslate_points

print('ok')

deftest_move_score():
'''
_move_score(board,move,color)
#123456789abcdef
board=[[...............],#1
[...............],#2
[...............],#3
[...............],#4
[...............],#5
[...............],#6
[...............],#7
[...............],#8
[...............],#9
[...............],#a
[...............],#b
[...............],#c
[...............],#d
[...............],#e
[...............]]#f

#123456789abcdef
board=[[...............],#1
[...............],#2
[...............],#3
[...............],#4
[.........X.....],#5
[......X........],#6
[.....O..XO.....],#7
[.....XXOX......],#8
[.....XOX.......],#9
[..........X....],#a
[...X...........],#b
[..X............],#c
[.O.............],#d
[...............],#e
[...............]]#f
'''
print('Testing_move_score()...')

#123456789abcdef
board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#1
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#2
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#3
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#4
['.','.','.','.','.','.','.','.','.','X','.','.','.','.','.'],#5
['.','.','.','.','.','.','X','.','.','.','.','.','.','.','.'],#6
['.','.','.','.','.','O','.','.','X','O','.','.','.','.','.'],#7
['.','.','.','.','.','X','X','O','X','.','.','.','.','.','.'],#8
['.','.','.','.','.','X','O','X','.','.','.','.','.','.','.'],#9
['.','.','.','.','.','.','.','.','.','.','X','.','.','.','.'],#a
['.','.','.','X','.','.','.','.','.','.','.','.','.','.','.'],#b
['.','.','X','.','.','.','.','.','.','.','.','.','.','.','.'],#c
['.','O','.','.','.','.','.','.','.','.','.','.','.','.','.'],#d
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#e
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]#f
#[count,jump_count,block]#東,南,東南,西南
lianxin=_get_all_lianxin(board,[6,7],'X')
#print(lianxin)
assertlianxin==[[2,[0,0],[True,False]],
[1,[0,0],[True,False]],
[3,[1,0],[False,False]],
[3,[2,1],[True,False]]]
#死一,活一,死二,活二,死三,活三,死四,活四,死五,活五
scores=[2,10,10,100,100,1000,1000,10000,100000,100000]
assert_move_score(board,[6,7],'X')==10+2+(1000+10+200)+(1000+10+10+200+200)

print('ok')

deftest_get_all_lianxin():
'''
get_all_lianxin(board,move,color)
#123456789abcdef
board=[[...............],#1
[...............],#2
[...............],#3
[...............],#4
[...............],#5
[...............],#6
[...............],#7
[...............],#8
[...............],#9
[...............],#a
[...............],#b
[...............],#c
[...............],#d
[...............],#e
[...............]]#f

#123456789abcdef
board=[[...............],#1
[...............],#2
[...............],#3
[...............],#4
[.........X.....],#5
[......X........],#6
[.....O..XO.....],#7
[.....XXOX......],#8
[.....XOX.......],#9
[..........X....],#a
[...X...........],#b
[..X............],#c
[.O.............],#d
[...............],#e
[...............]]#f
'''
print('Testing_get_all_lianxin()...')
#123456789abcdef
board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#1
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#2
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#3
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#4
['.','.','.','.','.','.','.','.','.','X','.','.','.','.','.'],#5
['.','.','.','.','.','.','X','.','.','.','.','.','.','.','.'],#6
['.','.','.','.','.','O','.','.','X','O','.','.','.','.','.'],#7
['.','.','.','.','.','X','X','O','X','.','.','.','.','.','.'],#8
['.','.','.','.','.','X','O','X','.','.','.','.','.','.','.'],#9
['.','.','.','.','.','.','.','.','.','.','X','.','.','.','.'],#a
['.','.','.','X','.','.','.','.','.','.','.','.','.','.','.'],#b
['.','.','X','.','.','.','.','.','.','.','.','.','.','.','.'],#c
['.','O','.','.','.','.','.','.','.','.','.','.','.','.','.'],#d
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#e
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]#f
#[count,jump_count,block]#東,南,東南,西南
lianxin=_get_all_lianxin(board,[6,7],'X')
#print(lianxin)
assertlianxin==[[2,[0,0],[True,False]],
[1,[0,0],[True,False]],
[3,[1,0],[False,False]],
[3,[2,1],[True,False]]]

#123456789abcdef
board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#1
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#2
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#3
['.','.','.','.','.','.','.','.','.','X','.','.','.','.','.'],#4
['.','.','.','.','.','.','X','.','.','.','.','.','.','.','.'],#5
['.','.','.','.','.','O','.','.','X','O','.','.','.','.','.'],#6
['.','.','.','.','.','X','X','O','X','.','.','.','.','.','.'],#7
['.','.','.','.','.','X','O','X','.','.','.','.','.','.','.'],#8
['.','.','.','.','.','.','.','.','.','.','X','.','.','.','.'],#9
['.','.','.','X','.','.','.','.','.','.','.','.','.','.','.'],#a
['.','.','X','.','.','.','.','.','.','.','.','.','.','.','.'],#b
['.','O','.','.','.','.','.','.','.','.','.','.','.','.','.'],#c
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#d
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],#e
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]#f
#[count,jump_count,block]#東,南,東南,西南
lianxin=_get_all_lianxin(board,[5,7],'X')
#print(lianxin)
assertlianxin==[[2,[0,0],[True,False]],
[1,[0,0],[True,False]],
[3,[1,0],[False,False]],
[3,[2,1],[True,False]]]


print('ok')

deftest_check_board():
'''

'''
print('Testingcheck_board()...')
board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]
assertcheck_board(board,'X')==False

board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['X','X','X','X','X','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]
assertcheck_board(board,'X')==True

board=[['X','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['X','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['X','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['X','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['X','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]
assertcheck_board(board,'X')==True

board=[['.','.','.','.','.','.','.','.','.','.','X','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','X','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','X','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','X','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','X'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]
assertcheck_board(board,'X')==True

board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['X','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','X','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','X','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','X','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','X','.','.','.','.','.','.','.','.','.','.']]
assertcheck_board(board,'X')==True

board=[['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','X'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','X','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','X','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','X','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','X','.','.','.','.']]
assertcheck_board(board,'X')==True

board=[['.','.','.','.','X','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','X','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','X','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','X','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['X','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.'],
['.','.','.','.','.','.','.','.','.','.','.','.','.','.','.']]
assertcheck_board(board,'X')==True

print('ok')

if__name__=='__main__':
main()
#test_check_board()
#test_get_all_lianxin()
#test_move_score()
#test_get_center_enmpty_points()

總結(jié)

以上是生活随笔為你收集整理的minimax算法怎么在python中使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

亚洲黄色免费在线看 | 91精品老司机久久一区啪 | 国产精品久久久久久吹潮天美传媒 | 99综合影院在线 | 99se视频在线观看 | 久草视频视频在线播放 | 91九色蝌蚪在线 | 天堂素人在线 | 人人爱人人添 | 黄色小说网站在线 | 丝袜美腿亚洲 | 久久福利剧场 | 国外调教视频网站 | 美女在线免费观看视频 | 中文字幕在线高清 | 久久精品99国产国产精 | 欧美久久九九 | 欧洲精品久久久久毛片完整版 | 国产成人精品一区二区三区在线观看 | 日韩女同一区二区三区在线观看 | 免费看的黄色 | 美女国产在线 | 91精品国产91p65 | 中文字幕网址 | 激情av网| 欧美成年人在线观看 | 国产欧美综合在线观看 | 日本高清免费中文字幕 | 日本xxxx裸体xxxx17 | 日本精品中文字幕在线观看 | 日韩欧美一区二区三区视频 | 国产日产亚洲精华av | 久久综合中文字幕 | 日韩免费视频一区二区 | 在线午夜 | 国产亚洲成人网 | 亚洲视频 在线观看 | 欧美日本啪啪无遮挡网站 | 国产小视频在线免费观看视频 | 亚洲精品国产自产拍在线观看 | 中文字幕免费高 | 亚洲精品乱码久久久久久蜜桃91 | 伊人在线视频 | 国产成人高清 | 天天干天天操天天射 | 久久成人免费 | 91精品在线观看视频 | 97av在线视频免费播放 | 日韩一区二区久久 | 在线观av | 欧美男男tv网站 | 亚洲黄色在线观看 | 日本中文字幕在线播放 | 国产视频二区三区 | 麻豆视频成人 | 能在线观看的日韩av | 在线观看国产成人av片 | 国产精品免费在线播放 | 国产香蕉久久精品综合网 | 成人性生交大片免费看中文网站 | av亚洲产国偷v产偷v自拍小说 | 在线 国产 日韩 | 成 人 黄 色 视频免费播放 | 欧美日韩高清在线观看 | 99精品在这里 | 综合色伊人 | 亚洲人成人在线 | 亚洲成a人片在线观看网站口工 | 国产中文视 | 九九九九热精品免费视频点播观看 | 国产精品一区二区三区在线播放 | 男女激情片在线观看 | 99久久精品日本一区二区免费 | 中文一二区 | 青青网视频 | 婷婷综合| 黄色大片日本免费大片 | 中文在线免费视频 | 亚洲精品在线观看中文字幕 | 婷婷久久五月天 | 丁香婷婷激情国产高清秒播 | 国产精品久久久av久久久 | 久久久久久久久久电影 | 久久99精品久久久久蜜臀 | 中文字幕免费 | www.天天成人国产电影 | 中文字幕一区2区3区 | 久久精品国产99国产 | 精品国模一区二区三区 | 91久久国产综合精品女同国语 | 亚洲欧美国产视频 | 97av在线视频免费播放 | 韩国精品视频在线观看 | 日韩精品专区在线影院重磅 | 综合天天色 | 午夜av免费在线观看 | 在线视频 国产 日韩 | 成人免费视频视频在线观看 免费 | www.日本色 | 久久久久欧美精品999 | 精品视频www | 激情在线免费视频 | 日韩久久精品一区二区 | 亚洲精品玖玖玖av在线看 | 三级av在线播放 | 亚洲国产视频a | 色操插| 天天干天天射天天爽 | 99婷婷狠狠成为人免费视频 | 在线观看黄色国产 | 亚洲午夜精品电影 | 四虎www com| 一区中文字幕 | 97超碰超碰久久福利超碰 | 天天操天天干天天爽 | 国内精品视频久久 | 在线观看精品视频 | 国产精品mv在线观看 | 99视频在线观看视频 | 日韩性片 | 亚洲成人精品久久久 | 黄色官网在线观看 | 欧美日韩国产一区二区三区 | av先锋中文字幕 | 精品v亚洲v欧美v高清v | 日韩美在线 | 亚洲精品午夜视频 | 91免费观看视频在线 | 国产精品久久在线 | 在线网站黄 | 欧美少妇18p | 亚洲黄色片一级 | 日日夜夜精品 | 中文字幕91在线 | 久久午夜电影 | 最新av网站在线观看 | 国产精品福利视频 | 中文字幕成人av | 91精品综合在线观看 | 日韩网页 | 欧美日韩性视频在线 | 久久精品亚洲 | 黄色h在线观看 | 欧美成a人片在线观看久 | 国产精品永久 | 五月婷婷深开心 | 国产精品视频全国免费观看 | 久久免费精彩视频 | 99久久爱 | 久久久久国产成人精品亚洲午夜 | 99久久精品国产亚洲 | 国产成人一二三 | 午夜国产一区二区 | 一区二区三区四区精品 | 最新av网址在线观看 | 免费国产一区二区 | 日韩免费在线一区 | 午夜av大片 | 欧美日韩性生活 | 欧美日韩精品网站 | 久久精品视频国产 | 激情视频91| 高清一区二区 | 成年人网站免费观看 | 一级久久久 | 午夜精品久久久久久久久久久久久久 | 二区中文字幕 | 欧美精品乱码99久久影院 | 精品国产一二三四区 | 国产剧情一区 | 欧美极品在线播放 | 天天操天天能 | 久久tv视频 | 国模精品一区二区三区 | 在线国产视频一区 | 在线观看中文字幕视频 | 日韩网站免费观看 | 亚洲精品综合一区二区 | 精品一区二区精品 | 精品国产伦一区二区三区观看体验 | 中文字幕久久亚洲 | 久久精品欧美一区 | 一区二区三区免费在线观看视频 | 久久久久伊人 | 97在线观看免费 | 视频在线91 | 视频在线观看国产 | 成人在线播放av | 国产色婷婷精品综合在线手机播放 | 国产不卡视频在线播放 | 在线观看你懂的网站 | 99麻豆久久久国产精品免费 | 国产在线999 | aaa毛片视频| 国产精品久免费的黄网站 | 国产精品自产拍在线观看蜜 | 特级大胆西西4444www | 天天天干 | 亚洲最大av网站 | 天天激情综合 | 久草在线视频国产 | 黄色软件网站在线观看 | av福利免费 | 国产视频 亚洲精品 | 中文字幕久久精品亚洲乱码 | 丁香六月在线 | 9999国产| 国产真实精品久久二三区 | 精品国产乱码久久久久久1区2匹 | 黄色小说免费观看 | 豆豆色资源网xfplay | 开心激情婷婷 | 黄a在线观看 | 日韩系列在线 | 99久久夜色精品国产亚洲 | 免费在线观看午夜视频 | 免费黄在线观看 | 欧美极品久久 | 色永久免费视频 | 91豆花在线观看 | 特黄免费av | 久久在线免费观看视频 | av线上免费观看 | aⅴ视频在线 | 久久人人爽爽人人爽人人片av | 激情五月看片 | av色一区 | av一级在线 | 日韩欧美xxxx | 很黄很色很污的网站 | 亚洲精品综合在线 | 九九九九九精品 | 欧美精品一区二区免费 | 五月网婷婷| 97在线视频免费播放 | 国产美女精品在线 | 日本视频不卡 | 91片网 | 免费精品| 一区二区在线电影 | 久久国产经典 | 91久久精品一区二区二区 | 国产精品久久久久久久久久妇女 | 国产精品亚州 | 中文字幕乱码日本亚洲一区二区 | 成人av免费播放 | 国产黄a三级 | 国产99区 | 欧美日韩有码 | 美女视频黄在线观看 | 91视频在线看 | 国产日韩欧美视频 | 国产精品久一 | 天无日天天操天天干 | 欧美 国产 视频 | 91av视频免费观看 | 深爱婷婷久久综合 | 国产精品综合久久久久 | 嫩小bbbb摸bbb摸bbb | 日本精品视频一区二区 | 成人黄色在线视频 | 国产精品一区二区久久 | 成人永久视频 | 精品综合久久 | 亚洲影视九九影院在线观看 | 国产精品欧美久久 | 天天干,天天射,天天操,天天摸 | 国产精品一区二区免费在线观看 | 亚洲日本国产精品 | 久久无码av一区二区三区电影网 | 免费在线一区二区三区 | 韩国中文三级 | 99re在线视频观看 | 久久福利综合 | 欧美国产日韩一区二区 | 国产午夜精品一区二区三区欧美 | 久久久久伊人 | 免费视频91蜜桃 | 免费看的黄网站软件 | 久久69av| 久久久久久久久久网站 | 又黄又爽的免费高潮视频 | 亚洲欧洲精品一区二区精品久久久 | 亚洲精品1234区 | 天天综合导航 | 久草精品电影 | 涩涩资源网 | 91亚洲狠狠婷婷综合久久久 | 毛片a级片| 丁香婷婷在线观看 | 国产日产精品一区二区三区四区的观看方式 | 成人蜜桃视频 | 在线看免费| 免费亚洲片 | 天天插天天狠 | av超碰免费在线 | 国产精品婷婷 | 黄色国产高清 | 日韩av在线免费看 | 国产成人一区在线 | 欧美精品在线一区 | 久久99这里只有精品 | 在线观看国产一区 | 国产精品av电影 | 波多野结衣久久精品 | 成人av av在线 | 婷婷色在线资源 | 久艹视频免费观看 | 97精品超碰一区二区三区 | 美女黄网久久 | 亚一亚二国产专区 | 婷婷午夜天| 国产精品欧美精品 | 免费日韩在线 | 国产成人专区 | 久久午夜视频 | 一区二区三区四区不卡 | 99视频免费在线观看 | 天天干,天天射,天天操,天天摸 | 俺要去色综合狠狠 | 国产精品视频最多的网站 | 99久久9| av中文在线 | 欧美国产日韩中文 | 国产精品成人免费精品自在线观看 | 亚洲免费在线播放视频 | 91毛片在线观看 | 一区二区三区在线免费播放 | 国产精品久久精品 | 91精品天码美女少妇 | 久久久99精品免费观看乱色 | 丁香综合激情 | 国产一区精品在线 | 国产精品久久久久久久午夜 | 国产一级在线 | 国产精品久久久久久久免费观看 | 日日日操| 日韩中文字幕国产 | 色婷婷久久一区二区 | 久久69精品| 国产中文字幕精品 | 欧美日韩免费在线观看视频 | 91一区一区三区 | 午夜色性片 | 欧美日韩不卡在线视频 | 蜜臀av性久久久久蜜臀av | 国产一二三精品 | 久久激情婷婷 | 成人在线免费观看网站 | 精品一二三区视频 | 婷婷久久五月 | 国产专区视频 | 九九免费在线视频 | 国产直播av | 日韩免费三区 | 日韩一区精品 | 亚洲国产午夜视频 | 日韩精品中文字幕在线不卡尤物 | 人人插人人插 | 亚洲女在线| 午夜免费视频网站 | 99久久婷婷国产综合亚洲 | 国产成在线观看免费视频 | 亚洲综合色视频在线观看 | 91视频久久久久久 | 日韩精品中文字幕久久臀 | 99精品国产在热久久 | 成 人 黄 色 视频免费播放 | 久久福利小视频 | 国产在线成人 | 色吊丝在线永久观看最新版本 | 久久免费国产精品1 | 中文字幕av免费 | 久久午夜鲁丝片 | 精品国产美女 | 欧美日韩在线视频一区 | 五月婷色| 日日操操操 | 久久久久久久影视 | 久久精品人人做人人综合老师 | 免费看污片 | 最新国产视频 | 深爱开心激情网 | 免费黄色在线网址 | 国产精品久久久久久久久久免费看 | 久久国色夜色精品国产 | 天天艹天天操 | 不卡视频在线 | av 一区 二区 久久 | 久久久久久久久毛片精品 | 中文有码在线 | 在线综合色 | 日韩国产精品久久久久久亚洲 | 国产精品成人自产拍在线观看 | 日本久久精品 | av+在线播放在线播放 | 中文十次啦 | 亚洲成人精品久久久 | 91av在线播放视频 | 亚洲精品乱码久久久久久久久久 | 97人人射| 六月激情久久 | 午夜国产一区二区三区四区 | www99精品 | 96国产在线 | 99精品在线免费视频 | 国产区在线看 | 一区二区三区动漫 | 中文字幕在线看视频 | 日韩v欧美v日本v亚洲v国产v | 午夜精品久久久久久久99婷婷 | 久久综合久久综合久久综合 | 亚洲视频在线免费看 | 亚洲资源 | 人人模人人爽 | 亚洲成人精品在线观看 | 国产成人av综合色 | 色妞色视频一区二区三区四区 | 91av视频播放 | www成人精品 | 久久手机免费观看 | 日韩va欧美va亚洲va久久 | 久久男人中文字幕资源站 | 操夜夜操 | 欧美极品xxxx | 亚洲精品一区中文字幕乱码 | 欧美性成人 | 黄网站色欧美视频 | 免费观看www7722午夜电影 | 久日视频| 欧美夫妻生活视频 | 成人精品一区二区三区中文字幕 | 日韩高清精品一区二区 | 国内精品在线看 | 麻豆视频观看 | 五月婷在线播放 | 伊人久久国产 | 久一网站 | 9999在线| 99久久久国产免费 | 国产亚州精品视频 | 成人免费中文字幕 | 亚洲国产精品传媒在线观看 | 精品视频免费在线 | 国产精品女主播一区二区三区 | 正在播放 国产精品 | 久久人人干 | 日韩在线视频在线观看 | 国产视频一区在线 | 亚洲 av网站 | 亚洲精品在线免费看 | 在线涩涩| 久久8精品| 黄色软件大全网站 | 精品在线观 | 成人黄性视频 | 日韩欧美视频免费在线观看 | 久久国产色 | 在线观av | 国产一区二区电影在线观看 | 免费一级毛毛片 | 国产一区视频导航 | 久久久久久高潮国产精品视 | 黄色一级大片免费看 | 在线观看免费黄色 | 国产精品一区二区三区观看 | 97韩国电影 | 在线欧美最极品的av | 亚洲a在线观看 | 精品国产电影一区 | 日韩精品在线免费播放 | 国产永久免费 | 国产专区视频在线观看 | 日韩成人精品 | 激情偷乱人伦小说视频在线观看 | 国产高清在线免费视频 | 日韩在线电影一区二区 | 日韩性网站 | 夜夜干夜夜| 99久久久国产精品免费观看 | 亚洲激情校园春色 | 99精品视频一区二区 | 欧美视频www| 日韩网页| 亚洲高清视频在线观看免费 | 天天爽天天碰狠狠添 | 国产成人综 | 亚洲免费在线观看视频 | 亚洲精品资源 | 91丨九色丨国产丨porny精品 | 亚洲理论视频 | 欧美成人按摩 | 中文字幕在线观看免费高清电影 | 不卡电影免费在线播放一区 | 国产69精品久久久久9999apgf | 久久av影视| 九九视频在线 | 日韩一区二区免费视频 | 免费看色视频 | 日韩午夜精品福利 | 国产激情免费 | 97色视频在线 | 97超碰在线久草超碰在线观看 | 久久综合婷婷国产二区高清 | 丁香综合五月 | 欧美男同视频网站 | 99热这里只有精品8 久久综合毛片 | 久久狠狠亚洲综合 | 精品理论片 | 欧美日韩另类视频 | www.五月天激情 | 日本黄色免费在线观看 | 日韩精品中文字幕在线 | 最近高清中文字幕 | 九九热在线播放 | 久久久免费看片 | 亚洲精品在线视频网站 | 天堂av在线免费观看 | 久久久99国产精品免费 | 日韩免费在线一区 | 麻豆91精品视频 | 免费视频99 | 日本中出在线观看 | 久久久久婷 | 九九免费精品视频 | 一区二区不卡 | 国产专区在线视频 | 亚洲激情综合 | 99欧美精品 | 日本一区二区免费在线观看 | 国产高清中文字幕 | 国产亚洲高清视频 | 久久亚洲精品电影 | 日韩激情在线视频 | av一本久道久久波多野结衣 | 日韩精品一区二区三区不卡 | av怡红院 | 国产精品视频久久 | 久久久久久久久久久久久久av | 国产一区二区久久精品 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | www一起操 | 奇米影视777影音先锋 | 久操视频在线免费看 | 欧美一区二区三区特黄 | 日韩国产精品久久久久久亚洲 | 天天要夜夜操 | 欧美国产一区在线 | 精品国产理论片 | 国产又黄又爽又猛视频日本 | 欧美日本不卡 | 六月天色婷婷 | 国产婷婷 | 国产一区在线看 | 97精品欧美91久久久久久 | 久艹视频免费观看 | 国产在线高清视频 | 国产高清视频免费观看 | 日本精品xxxx| 久草在线综合网 | 日批网站免费观看 | 国产亚洲视频在线 | av在线收看 | 久草爱| 国产成人黄色 | 蜜臀一区二区三区精品免费视频 | 久热av在线 | 91视频在线国产 | 粉嫩aⅴ一区二区三区 | 天堂av在线网址 | 国产精品久久久久婷婷二区次 | 久久不卡日韩美女 | 五月的婷婷 | 亚洲成人麻豆 | 国产黄色特级片 | 国产精品免费视频一区二区 | 日韩在线观看第一页 | 天天搞夜夜骑 | 日韩精品一区二区三区免费观看 | 成人国产精品久久久春色 | 欧美网站黄色 | 波多野结衣在线观看视频 | 91日韩精品视频 | 一区二区三区在线播放 | 国产精品美女网站 | 免费视频成人 | 日韩在线视频网站 | 中文字幕在线观看免费高清电影 | 99热高清| 午夜少妇 | 国产视频1区2区 | 在线国产能看的 | 色综合天天视频在线观看 | 一级一片免费视频 | 国产在线观看地址 | 日日操天天操狠狠操 | 97精品一区二区三区 | 欧美激情片在线观看 | 欧美少妇18p | 九九久久影视 | 久久国产精品99久久人人澡 | 三级av网 | 夜夜嗨av色一区二区不卡 | 亚洲激情六月 | 奇米影视777影音先锋 | 欧美日韩一区二区久久 | 日本午夜在线亚洲.国产 | 成人欧美一区二区三区在线观看 | 精品国产一二三 | 永久免费视频国产 | 日韩理论电影在线 | 国产在线va | 国内精品久久久久影院一蜜桃 | 国产精品毛片完整版 | 国产在线视频资源 | 欧美在线日韩在线 | 久久久久国产a免费观看rela | 日韩在线一区二区免费 | 婷婷色亚洲 | 成人a大片 | 国产精品久久麻豆 | 福利视频网址 | 91福利在线导航 | 欧美色图视频一区 | 久久在现 | 一级一片免费观看 | av丝袜美腿 | 亚洲网久久 | 欧美综合在线视频 | 欧美一区二区三区不卡 | 伊人热| 国产一区二区在线播放 | 国产黄色电影 | 国产精品免费视频观看 | 欧美日韩一区二区三区在线观看视频 | 亚洲免费精品视频 | 欧美激情另类 | 亚洲黄色小说网址 | 亚洲精品xx | 亚洲va欧美va国产va黑人 | 在线免费高清视频 | 欧美美女激情18p | 久久色在线播放 | 日韩午夜大片 | 综合色天天 | 成人网页在线免费观看 | 中文字幕你懂的 | 亚洲精品美女久久久 | 亚洲黄色成人av | 欧美福利网址 | 国产一区电影在线观看 | 国产中文字幕视频在线观看 | 久久这里只有精品23 | 国产一区二区三区四区大秀 | 91高清视频免费 | 91视频国产高清 | 91桃色在线观看视频 | 91高清完整版在线观看 | 四虎影视精品 | 91精品成人 | 在线观看中文字幕亚洲 | 波多野结衣精品在线 | 欧美日韩免费在线观看视频 | 亚洲国产无 | 国产操在线 | 国产麻豆剧果冻传媒视频播放量 | 成人一级 | 欧美视频xxx | 日韩中文字幕亚洲一区二区va在线 | 亚洲天天干 | 国产精品第54页 | 福利一区二区 | 久久99精品国产99久久 | 在线观看色网站 | 久艹在线免费观看 | 国产黄色免费在线观看 | 一区二区中文字幕在线 | 欧美日韩xxx | 国产一区二区高清视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 精品国产亚洲一区二区麻豆 | av在线亚洲天堂 | 亚洲一区二区三区四区精品 | 国产成人精品一区二区三区在线 | www.黄色网.com| 中文字幕在线看片 | 欧美日在线观看 | 久草在线在线视频 | 99久免费精品视频在线观看 | 91大神一区二区三区 | 亚洲视频1区2区 | 91av在线播放视频 | 中文字幕国产亚洲 | 久草com| 狠狠躁日日躁狂躁夜夜躁av | 国产成人一区二区三区 | www免费视频com━ | 天天鲁一鲁摸一摸爽一爽 | 97国产精品 | 久久久亚洲网站 | 欧美精品在线视频观看 | 又黄又爽又刺激的视频 | 久久久久久久久久久久久久电影 | 色网av | 日韩精品不卡在线 | 在线观看亚洲成人 | 国产精品99久久久久久宅男 | 亚洲综合爱 | 99久久精品免费一区 | 亚洲精品动漫成人3d无尽在线 | 国产精品av一区二区 | 免费日p视频 | 亚洲精品麻豆视频 | 国产热re99久久6国产精品 | 久久久精品在线观看 | 狠狠狠狠狠狠狠狠 | 中文字幕2021| 98超碰在线| 国产一区在线免费 | 婷婷视频在线观看 | 日韩一二三 | 日韩欧美一区二区在线观看 | 91精品免费看 | www国产一区 | 综合久久久久久久 | 91porny九色91啦中文 | 日韩电影中文字幕在线 | 国产精品视频大全 | 激情 婷婷| 国产精品免费麻豆入口 | 免费色婷婷| 亚洲精品中文字幕视频 | 99精品免费在线 | 久久九九影院 | 久久久久久不卡 | 欧美日本一区 | 91丨九色丨首页 | 99热国产在线观看 | 美女视频是黄的免费观看 | 中文av网 | 国产免费观看久久 | 国产成人在线免费观看 | 国产一区在线免费观看 | 在线观看视频精品 | 欧美国产日韩在线视频 | 成人福利在线播放 | 日韩中文字幕免费视频 | 91精品1区 | 视频成人免费 | 国产亚洲永久域名 | 成人h动漫在线看 | 久久免费视频一区 | 五月天综合婷婷 | 成人小视频在线 | 国产视频亚洲视频 | 久久精品久久久久电影 | 99国产一区二区三精品乱码 | 国产精品电影一区二区 | 亚洲精品成人免费 | 九九热在线观看 | 久青草视频在线观看 | 一区二区三区在线免费播放 | 亚洲三级视频 | 波多野结衣久久精品 | 久久中文字幕导航 | 成人免费影院 | 日韩天堂在线观看 | 毛片永久新网址首页 | 黄色1级大片 | 久久精品五月 | 日韩欧美视频在线观看免费 | 日日干干夜夜 | 九九久久精品视频 | 国产精品区二区三区日本 | 日韩午夜在线观看 | 欧美国产三区 | 亚洲三级性片 | 国产精品1024 | 欧美aaa一级 | 91精品久久久久久久久久入口 | 中文字幕一二三区 | 韩国在线一区二区 | 欧美精品二区 | 国产精品黄色影片导航在线观看 | 婷婷激情综合 | 免费成人av在线看 | 亚洲成色| 亚洲综合色丁香婷婷六月图片 | 日狠狠 | 国产不卡高清 | 免费观看版 | 国产精品视频永久免费播放 | 成人免费观看电影 | 丁香高清视频在线看看 | 久久夜夜爽 | 国产91大片 | 国产一区二区三区视频在线 | 亚洲视频1| 亚洲一区尤物 | 国产手机在线精品 | 日本黄色免费看 | 久久99亚洲精品久久 | 麻豆国产精品va在线观看不卡 | 日韩av片无码一区二区不卡电影 | 亚洲婷婷在线 | 日韩.com| 91亚洲精品久久久蜜桃借种 | 国产资源av| 亚洲热久久 | 国产日韩欧美在线观看视频 | 免费观看www视频 | 久久99精品久久久久久久久久久久 | 久久观看| 免费福利在线播放 | 亚洲乱码中文字幕综合 | 精品色综合| 狠狠久久综合 | 天天干天天操天天射 | 亚洲精品综合欧美二区变态 | 国产成a人亚洲精v品在线观看 | 99热.com| 欧美一二三区播放 | 中文字幕日韩国产 | 久久综合电影 | 免费在线观看亚洲视频 | 五月天国产 | 婷婷在线资源 | 91色国产在线 | 精品视频区| 欧美日韩高清在线观看 | 久久免费观看视频 | 国产99中文字幕 | 国产精品欧美日韩在线观看 | 久久精品日产第一区二区三区乱码 | 人人狠狠综合久久亚洲婷 | 超碰人人国产 | 2023亚洲精品国偷拍自产在线 | 亚洲春色成人 | 国产成人三级在线播放 | 91福利视频免费观看 | 午夜男人影院 | 美女网站一区 | 久草在线视频在线观看 | 在线视频一二三 | 九9热这里真品2 | 毛片无卡免费无播放器 | 午夜影院一级片 | 久久久国产精品一区二区中文 | 91精品国产综合久久福利 | 久福利| 亚洲综合狠狠干 | 久99久视频 | 国产成人三级三级三级97 | 中文字幕传媒 | 国产黑丝一区二区三区 | 9999在线 | 在线小视频国产 | 国产在线一区二区三区播放 | 五月黄色| 日韩黄色一区 | 天天舔天天搞 | 久久五月精品 | 国产香蕉视频在线观看 | 国内精品视频一区二区三区八戒 | 97超碰资源 | 一区二区丝袜 | 亚洲精品国产成人av在线 | 蜜臀av麻豆 | 午夜av电影院| 97在线免费观看 | 午夜精品一区二区三区在线播放 | av大全在线观看 | 国产精品久久一区二区无卡 | 国产亚洲精品久久久久久无几年桃 | 探花视频在线观看免费 | 国产精品久久久久久久久久了 | 国产精品专区在线 | 国产一区网址 | 91精品视频免费在线观看 | 色狠狠综合 | 天天干天天怕 | 国产成人福利片 | 韩国精品福利一区二区三区 | 国产成人av一区二区三区在线观看 | 欧美日本在线视频 | 日本久草电影 | 中文字幕免费高清在线 | 日日日天天天 | 一区二区三区免费播放 | 日韩在线观看精品 | 亚洲一区精品人人爽人人躁 | 99精品视频一区二区 | 午夜精品一区二区三区在线观看 | 婷婷色网 | 国产精品欧美激情在线观看 | av黄色免费在线观看 | 亚洲激情 | 午夜国产在线 | 成人久久久久 | av色综合网 | 免费在线观看视频一区 | 日韩二区在线播放 | 国产拍揄自揄精品视频麻豆 | 国产精品va在线观看入 | 亚洲免费观看视频 | 欧美黑吊大战白妞欧美 | 黄色三级免费片 | 正在播放一区 | 中文字幕五区 | 大胆欧美gogo免费视频一二区 | 久久福利 | 99在线热播 | 九九热精品视频在线观看 | 亚洲国产欧美在线人成大黄瓜 | 久久精品国产亚洲精品2020 | 91av视频在线播放 | 综合激情网... | 丁香综合网 | 亚洲狠狠 | 国产精品手机在线播放 | 在线精品在线 | 蜜臀av性久久久久av蜜臀三区 | 亚洲毛片在线观看. | 国产在线美女 | 国产涩涩网站 | 51久久夜色精品国产麻豆 | 婷婷六月久久 | 激情久久久 | 亚洲日本色 | 亚洲有 在线 | 免费av视屏 | 国产一级在线视频 | 91久久精品日日躁夜夜躁国产 | 国产中文字幕在线视频 | 丁香久久 | 日日操天天爽 | 成人在线视频免费观看 | 日韩在线看片 | 成人久久久久久久久久 | 狠狠狠色丁香综合久久天下网 | 亚洲我射av| 亚洲精品高清一区二区三区四区 | 亚洲人在线视频 | 黄色成品视频 | 国产精品久久久久久爽爽爽 | 久久66热这里只有精品 | 日韩高清免费无专码区 | 免费成人在线视频网站 | 亚洲成人家庭影院 | 在线免费高清一区二区三区 | 91免费日韩 | 国产亚洲日 | 国产一区国产二区在线观看 | 国产精品片 | 欧美日韩三级在线观看 | www.com久久 | 天天草天天干天天射 | 久久久人 | 深爱激情站| 亚洲视频中文 | 国产一级免费观看 | 久久伊人五月天 | 网站在线观看日韩 | 日韩久久精品一区二区三区下载 | 久久999精品 | 国产123区在线观看 国产精品麻豆91 | 伊人天堂av | 日日夜夜狠狠 | 亚洲六月丁香色婷婷综合久久 | 狠狠干天天色 | 久久一区91| 麻豆视频在线看 | 狠狠婷婷 | 日韩高清在线一区 | av在线影视 | 午夜神马福利 | 99久久日韩精品免费热麻豆美女 | 久久精品超碰 | 久久免费视频4 | 五月婷婷色播 | www.五月天 | 免费91麻豆精品国产自产在线观看 | 久久国产精品免费看 | 国产a级精品 | 国产成人免费精品 | 99久久精品国产网站 | 日韩动漫免费观看高清完整版在线观看 | 久久伦理视频 | 一区中文字幕在线观看 | 超碰人人91 | 午夜 免费| 91精品视频免费看 | av.com在线| 国产精品一区二区免费视频 | 色多多污污在线观看 | 免费三及片 | 狠狠色丁香婷婷综合久久片 | 国产精品第10页 |