日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python實(shí)現(xiàn)簡(jiǎn)單的2048小游戲

瀏覽:167日期:2022-06-26 17:42:31

本文實(shí)例為大家分享了Python實(shí)現(xiàn)簡(jiǎn)單的2048小游戲的具體代碼,供大家參考,具體內(nèi)容如下

運(yùn)行效果:

Python實(shí)現(xiàn)簡(jiǎn)單的2048小游戲

1.項(xiàng)目結(jié)構(gòu)

Python實(shí)現(xiàn)簡(jiǎn)單的2048小游戲

2.代碼

configs.py

import argparsedef parse_args(): parser = argparse.ArgumentParser(description=’Game 2048’) # Form ''' screen_width: Width of the form screen_height: Height of the form ''' parser.add_argument(’--screen_width’, default=400) parser.add_argument(’--screen_height’, default=500) # Block ''' block_gap: Gap between two blocks block_size: Size of a block block_arc: Arc of a block ''' parser.add_argument(’--block_gap’, default=10) parser.add_argument(’--block_size’, default=86) parser.add_argument(’--block_arc’, default=10) return parser.parse_args()

main.py

import configsfrom Game2048 import Game2048def main(args): ''' screen_width: Width of the form screen_height: Height of the form block_gap: Gap between two blocks block_size: Size of a block ''' screen_width = args.screen_width screen_height = args.screen_height block_gap = args.block_gap block_size = args.block_size block_arc = args.block_arc game = Game2048(screen_width, screen_height, block_gap, block_size, block_arc) game.Form()if __name__ == ’__main__’: args = configs.parse_args() main(args)

Game2048.py

import osimport sysimport numpyimport randomimport pygame'''Form(): 窗口的設(shè)置Action(): 用戶行為: 按鍵/鼠標(biāo)InitGame(): 游戲初始化CreatNum(): 隨機(jī)在一個(gè)位置生成一個(gè)數(shù)GetEmpty(): 獲取空白方格MoveUp(): 向上移動(dòng)MoveDown(): 向下移動(dòng)MoveLeft(): 向左移動(dòng)MoveRight(): 向右移動(dòng)JudgeGameOver(): 判斷游戲是否結(jié)束JudgeGameSuccess(): 判斷游戲是否成功Paint(): 繪制表格'''class Game2048(object): # 初始化函數(shù) def __init__(self, screen_width, screen_height, block_gap, block_size, block_arc): ''' :param screen_width: Width of the form :param screen_height: Height of the form :param block_gap: Gap between two blocks :param block_size: Size of a block :param size: Dimension of matrix :param martix: Zero matrix :param is_over: Sign of the end of the game :param is_success: Sign of the success of the game :param form: The form :param score: score :param title_font: Title type and size of form :param score_font: Scores type and size :param tips_font: Tips type and type :param font: The numberes :param isadd: Add number or not ''' ''' 窗口 ''' self.screen_width = screen_width # 窗口的寬 400 self.screen_height = screen_height # 窗口的高 500 self.block_gap = block_gap # 方塊間隙 10 self.block_size = block_size # 方塊大小 86 self.block_arc = block_arc # 方塊的弧度 self.size = 4 # 矩陣 4 * 4 self.martix = [] # 初始化矩陣 4 * 4 的 0 矩陣 self.form = ’’ ''' 其他 ''' self.is_over = False # 游戲是否結(jié)束 self.is_success = False # 游戲是否成功 self.score = 0 # 分?jǐn)?shù) self.isadd = True # 是否添加數(shù)字 self.block_color = { # 方塊顏色 0: (205, 193, 180), 2: (238, 228, 218), 4: (237, 224, 200), 8: (242, 177, 121), 16: (245, 149, 99), 32: (246, 124, 95), 64: (246, 94, 59), 128: (237, 207, 114), 256: (237, 204, 97), 512: (237, 200, 80), 1024: (237, 197, 63), 2048: (237, 194, 46) } self.nums_color = { # 0: (0, 0, 0), 0: (205, 193, 180), 2: (0, 0, 0), 4: (0, 0, 0), 8: (255, 255, 255), 16: (255, 255, 255), 32: (255, 255, 255), 64: (255, 255, 255), 128: (255, 255, 255), 256: (255, 255, 255), 512: (255, 255, 255), 1024: (255, 255, 255), 2048: (255, 255, 255) } ''' 字體 ''' self.title_font = ’’ # 窗口標(biāo)題字體類型及大小: 2048 self.score_font = ’’ # 分?jǐn)?shù)字體類型及大小 self.tips_font = ’’ # 說明字體類型及大小 self.font = ’’ # 數(shù)字字體 # 窗口的設(shè)置 def Form(self): ''' init(): 初始化所有導(dǎo)入的 pygame 模塊 display.set_caption(title): 設(shè)置窗口的標(biāo)題 display.set_mode(): 初始化一個(gè)準(zhǔn)備顯示的窗口或屏幕 display.update(): 使繪制的顯示到窗口上 ''' pygame.init() # 初始化所有導(dǎo)入的 pygame 模塊 pygame.display.set_caption('Game2048') # 窗口標(biāo)題 os.environ[’SDL_VIDEO_CENTERED’] = ’1’ # 窗口居中顯示 self.form = pygame.display.set_mode([self.screen_width, self.screen_height], 0, 0) # 窗口大小 self.InitGame() # 矩陣的初始化 while True: self.Action() # 用戶行為: 按鍵/鼠標(biāo) self.Paint() # 表格繪制 pygame.display.update() # 使繪制的顯示到窗口上 # 用戶行為: 按鍵/鼠標(biāo) def Action(self): for event in pygame.event.get(): # pygame.event.get(): 獲取所有消息并將其從隊(duì)列中刪除 if event.type == pygame.QUIT: # pygame.QUIT: 窗口右上角的紅 × sys.exit() # sys.exit()函數(shù)是通過拋出異常的方式來終止進(jìn)程的 elif event.type == pygame.KEYDOWN: ''' pygame.KEYDOWN 按下鍵盤時(shí) pygame.KEYUP 釋放鍵盤時(shí) ''' ''' K_ESCAPE: ESC K_UP: ↑ K_DOWN: ↓ K_LEFT: ← K_RIGHT: → ''' ''' 重新開始游戲 ''' if event.key == pygame.K_ESCAPE: # print(’ESC’) self.InitGame() # 游戲初始化 ''' ↑ ''' if event.key == pygame.K_UP and self.is_over == False: # print(’UP’) self.MoveUp() # self.CreatNum() ''' ↓ ''' if event.key == pygame.K_DOWN and self.is_over == False: # print(’DOWN’) self.MoveDown() # self.CreatNum() ''' ← ''' if event.key == pygame.K_LEFT and self.is_over == False: # print(’LEFT’) self.MoveLeft() # self.CreatNum() ''' → ''' if event.key == pygame.K_RIGHT and self.is_over == False: # print(’RIGHT’) self.MoveRight() # self.CreatNum() # 游戲初始化 def InitGame(self): self.score = 0 self.is_over = False self.is_success = False self.martix = numpy.zeros([self.size, self.size]) # 隨機(jī)生成兩個(gè)數(shù) for i in range(2): self.isadd = True self.CreatNum() # 隨機(jī)在一個(gè)位置生成一個(gè)數(shù) def CreatNum(self): list = self.GetEmpty() # 獲取空白方格下標(biāo) if list and self.isadd: ''' 隨機(jī)生成的數(shù)字 ''' # 2, 4出現(xiàn)概率3:1 # random.randint(m, n): 隨機(jī)生成[m, n] value = 4 if random.randint(0, 3) % 3 == 0 else 2 ''' 獲取隨機(jī)位置下標(biāo) ''' x, y = random.sample(list, 1)[0] ''' 在隨機(jī)位置上生成隨機(jī)數(shù)字 ''' self.martix[x][y] = value self.isadd = False # print(’CreatNum: {}’.format(value), (x, y)) # print(self.martix) # 獲取空白方格 def GetEmpty(self): list = [] for i in range(4): for j in range(4): if self.martix[i][j] == 0: list.append([i, j]) return list # 向上移動(dòng) def MoveUp(self): # print(’up’) ''' Move Up ''' ''' 向上移動(dòng),只需考慮第二行到第四行 共分為兩種情況: 1、當(dāng)前數(shù)字上邊無空格,即上邊值不為 0 a. 當(dāng)前數(shù)字與上邊數(shù)字相等,合并 b. 當(dāng)前數(shù)字與上邊數(shù)字不相等,continue 2、當(dāng)前數(shù)字上邊有空格,即上邊值為 0, 上移 ''' for j in range(4): index = 0 for i in range(1, 4): if self.martix[i][j] > 0: if self.martix[i][j] == self.martix[index][j]: # 當(dāng)前數(shù)字 == 上邊數(shù)字 ''' 分?jǐn)?shù): 當(dāng)前數(shù)字 + 上邊數(shù)字 數(shù)值: 上邊數(shù)字 = 上邊數(shù)字 + 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.score += self.martix[i][j] + self.martix[index][j] self.martix[index][j] = self.martix[i][j] + self.martix[index][j] self.martix[i][j] = 0 index += 1 self.isadd = True # 當(dāng)前數(shù)字與上邊數(shù)字不相等,continue 可以省略不寫 elif self.martix[index][j] == 0: # 當(dāng)前數(shù)字上邊有0 ''' 分?jǐn)?shù): 不變 數(shù)值: 上邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[index][j] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True else: index += 1 if self.martix[index][j] == 0: # index相當(dāng)于慢指針,j相當(dāng)于快指針 # 也就是說快指針和慢指針中間可能存在一個(gè)以上的空格,或者index和j并未相鄰 # 上邊數(shù)字 = 0 ''' 分?jǐn)?shù): 不變 數(shù)值: 上邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[index][j] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True # print(’up’) # print(self.martix) # 向下移動(dòng) def MoveDown(self): # print(’down’) ''' Move Down ''' ''' 向下移動(dòng),只需考慮第一列到第三列 共分為兩種情況: 1、當(dāng)前數(shù)字下邊無空格,即下邊值不為 0 a. 當(dāng)前數(shù)字與下邊數(shù)字相等,合并 b. 當(dāng)前數(shù)字與下邊數(shù)字不相等,continue 2、當(dāng)前數(shù)字下邊有空格,即下邊值為 0, 下移 ''' for j in range(4): index = 3 for i in range(2, -1, -1): if self.martix[i][j] > 0: if self.martix[i][j] == self.martix[index][j]: # 當(dāng)前數(shù)字 == 下邊數(shù)字 ''' 分?jǐn)?shù): 當(dāng)前數(shù)字 + 下邊數(shù)字 數(shù)值: 下邊數(shù)字 = 下邊數(shù)字 + 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.score += self.martix[i][j] + self.martix[index][j] self.martix[index][j] = self.martix[i][j] + self.martix[index][j] self.martix[i][j] = 0 index -= 1 self.isadd = True # 當(dāng)前數(shù)字與下邊數(shù)字不相等,continue 可以省略不寫 elif self.martix[index][j] == 0: # 當(dāng)前數(shù)字下邊有0 ''' 分?jǐn)?shù): 不變 數(shù)值: 下邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[index][j] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True else: index -= 1 if self.martix[index][j] == 0: # index相當(dāng)于慢指針,j相當(dāng)于快指針 # 也就是說快指針和慢指針中間可能存在一個(gè)以上的空格,或者index和j并未相鄰 # 下邊數(shù)字 = 0 ''' 分?jǐn)?shù): 不變 數(shù)值: 下邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[index][j] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True # print(’down’) # print(self.martix) # 向左移動(dòng) def MoveLeft(self): # print(’left’) ''' Move Left ''' ''' 向左移動(dòng),只需考慮第二列到第四列 共分為兩種情況: 1、當(dāng)前數(shù)字左邊無空格,即左邊值不為 0 a. 當(dāng)前數(shù)字與左邊數(shù)字相等,合并 b. 當(dāng)前數(shù)字與左邊數(shù)字不相等,continue 2、當(dāng)前數(shù)字左邊有空格,即左邊值為 0, 左移 ''' for i in range(4): index = 0 for j in range(1, 4): if self.martix[i][j] > 0: if self.martix[i][j] == self.martix[i][index]: # 當(dāng)前數(shù)字 == 左邊數(shù)字 ''' 分?jǐn)?shù): 當(dāng)前數(shù)字 + 左邊數(shù)字 數(shù)值: 左邊數(shù)字 = 左邊數(shù)字 + 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.score += self.martix[i][j] == self.martix[i][index] self.martix[i][index] = self.martix[i][j] + self.martix[i][index] self.martix[i][j] = 0 index += 1 self.isadd = True # 當(dāng)前數(shù)字與左邊數(shù)字不相等,continue 可以省略不寫 elif self.martix[i][index] == 0: # 當(dāng)前數(shù)字左邊有0 ''' 分?jǐn)?shù): 不變 數(shù)值: 左邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[i][index] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True else: index += 1 if self.martix[i][index] == 0: # index相當(dāng)于慢指針,j相當(dāng)于快指針 # 也就是說快指針和慢指針中間可能存在一個(gè)以上的空格,或者index和j并未相鄰 # 左邊數(shù)字 = 0 ''' 分?jǐn)?shù): 不變 數(shù)值: 左邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[i][index] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True # print(’left’) # print(self.martix) # 向右移動(dòng) def MoveRight(self): # print(’right’) ''' Move Right ''' ''' 向右移動(dòng),只需考慮第一列到第三列 共分為兩種情況: 1、當(dāng)前數(shù)字右邊無空格,即右邊值不為 0 a. 當(dāng)前數(shù)字與右邊數(shù)字相等,合并 b. 當(dāng)前數(shù)字與右邊數(shù)字不相等,continue 2、當(dāng)前數(shù)字右邊有空格,即右邊值為 0, 右移 ''' for i in range(4): index = 3 for j in range(2, -1, -1): if self.martix[i][j] > 0: if self.martix[i][j] == self.martix[i][index]: # 當(dāng)前數(shù)字 == 右邊數(shù)字 ''' 分?jǐn)?shù): 當(dāng)前數(shù)字 + 右邊數(shù)字 數(shù)值: 右邊數(shù)字 = 右邊數(shù)字 + 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.score += self.martix[i][j] + self.martix[i][index] self.martix[i][index] = self.martix[i][j] + self.martix[i][index] self.martix[i][j] = 0 index -= 1 self.isadd = True # 當(dāng)前數(shù)字與左邊數(shù)字不相等,continue 可以省略不寫 elif self.martix[i][index] == 0: # 當(dāng)前數(shù)字右邊有0 ''' 分?jǐn)?shù): 不變 數(shù)值: 右邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[i][index] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True else: index -= 1 if self.martix[i][index] == 0: # index相當(dāng)于慢指針,j相當(dāng)于快指針 # 也就是說快指針和慢指針中間可能存在一個(gè)以上的空格,或者index和j并未相鄰 # 右邊數(shù)字 = 0 ''' 分?jǐn)?shù): 不變 數(shù)值: 右邊數(shù)字 = 當(dāng)前數(shù)字, 當(dāng)前數(shù)字 = 0 ''' self.martix[i][index] = self.martix[i][j] self.martix[i][j] = 0 self.isadd = True # print(’right’) # print(self.martix) # 判斷游戲是否結(jié)束 def JudgeGameOver(self): # 當(dāng)空白空格不為空時(shí),即游戲未結(jié)束 zerolist = self.GetEmpty() if zerolist: return False # 當(dāng)空白方格為空時(shí),判斷是否存在可合并的方格 for i in range(3): for j in range(3): if self.martix[i][j] == self.martix[i][j + 1]: return False if self.martix[i][j] == self.martix[i + 1][j]: return False # 若不滿足以上兩種情況,則游戲結(jié)束 return True # 判斷游戲是否成功 def JudgeGameSuccess(self): # 檢查是否有2048 if self.martix.max() == 2048: return True return False # 繪制表格 def Paint(self): ''' 游戲背景 ''' # fill(color): 填充某一種顏色 self.form.fill((220, 220, 220)) ''' 字體設(shè)置 ''' # 初始化字體 pygame.font.init() # 添加標(biāo)題 # f = pygame.font.get_fonts() #: 獲取字體樣式 # pygame.font.Font.render(): 在一個(gè)新 Surface 對(duì)象上繪制文本 self.title_font = pygame.font.SysFont(’幼圓’, 50, True) title_text = self.title_font.render(’2048’, True, (0, 0, 0)) self.form.blit(title_text, (50, 10)) # 添加分?jǐn)?shù): 得分: 0 pygame.draw.rect(self.form, (128, 128, 128), (250, 0, 120, 60)) self.score_font = pygame.font.SysFont(’幼圓’, 28, True) score_text = self.score_font.render(’得 分’, True, (0, 0, 0)) self.form.blit(score_text, (275, 0)) digtial_score = self.score_font.render(str(int(self.score)), True, (255, 250, 250)) self.form.blit(digtial_score, (280, 30)) # 添加游戲說明 self.tips_font = pygame.font.SysFont(’simsunnsimsun’, 20) tips_text = self.tips_font.render(’操作: ↑ ↓ ← →, 按esc鍵重新開始’, True, (0, 0, 0)) self.form.blit(tips_text, (25, 70)) ''' 繪制方格 ''' for i in range(4): for j in range(4): # (x, y) 方塊的初始位置 x = j * self.block_size + (j + 1) * self.block_gap y = i * self.block_size + (i + 1) * self.block_gap # 繪制方塊 value = int(self.martix[i][j]) # print(value) pygame.draw.rect(self.form, self.block_color[value], (x + 5, y + 100, self.block_size, self.block_size), border_radius=self.block_arc) # 數(shù)字字體即大小 if value < 10: self.font = pygame.font.SysFont(’simsunnsimsun’, 46, True) # 數(shù)字2、4、8 value_text = self.font.render(str(value), True, self.nums_color[value]) self.form.blit(value_text, (x + 35, y + 120)) elif value < 100: self.font = pygame.font.SysFont(’simsunnsimsun’, 40, True) # 數(shù)字16, 32, 64 value_text = self.font.render(str(value), True, self.nums_color[value]) self.form.blit(value_text, (x + 25, y + 120)) elif value < 1000: self.font = pygame.font.SysFont(’simsunnsimsun’, 34, True) # 數(shù)字128, 256, 512 value_text = self.font.render(str(value), True, self.nums_color[value]) self.form.blit(value_text, (x + 15, y + 120)) else: self.font = pygame.font.SysFont(’simsunnsimsun’, 28, True) # 數(shù)字1024, 2048 value_text = self.font.render(str(value), True, self.nums_color[value]) self.form.blit(value_text, (x + 5, y + 120)) # 新增數(shù)字 self.CreatNum() ''' 如果游戲結(jié)束 ''' self.is_over = self.JudgeGameOver() if self.is_over: over_font = pygame.font.SysFont('simsunnsimsun', 60, True) str_text = over_font.render(’Game Over!’, True, (255, 255, 255)) self.form.blit(str_text, (30, 220)) ''' 如果游戲成功 ''' self.is_success = self.JudgeGameSuccess() if self.is_success: success_font = pygame.font.SysFont('simsunnsimsun', 60, True) str_text = success_font.render(’Successful!’, True, (178, 34, 34)) self.form.blit(str_text, (10, 220))

注意這里需要導(dǎo)入兩個(gè)包(numpy,pygame),然后運(yùn)行main文件即可。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品亚洲二区| 婷婷精品视频| 亚洲1区在线观看| 蜜臀久久久99精品久久久久久| 亚洲国产一区二区在线观看| 国产在线欧美| 亚洲夜间福利| 日韩午夜电影| 午夜在线播放视频欧美| 在线日韩成人| 欧美一区久久| 久久gogo国模啪啪裸体| 高清av一区| 99精品视频在线观看免费播放| 在线日韩电影| 久久久久国产| 久久福利一区| 日本欧美大码aⅴ在线播放| 日韩高清在线观看一区二区| 国产精品一站二站| 国产一区调教| 色88888久久久久久影院| 欧美在线亚洲综合一区| 亚洲精品视频一二三区| 欧美日韩调教| 国产伦久视频在线观看| 免费观看不卡av| 免费成人性网站| 91九色综合| 国模大尺度视频一区二区| 三上亚洲一区二区| 免费视频亚洲| 蜜臀91精品一区二区三区| 国产美女亚洲精品7777 | 精品在线99| 四虎精品一区二区免费| 久久av偷拍| 久久国产中文字幕| 亚洲香蕉视频| 韩日一区二区| 香蕉久久久久久久av网站| 国产日本亚洲| 蜜桃精品在线| 黄色日韩在线| 91精品国产经典在线观看| 97se综合| 久久亚洲风情| 国产一区国产二区国产三区 | 国产欧美日韩一级| 国产盗摄——sm在线视频| 99在线精品免费视频九九视| 国产精品亚洲欧美日韩一区在线| 日韩欧美一区二区三区在线观看| 免费日本视频一区| 黄在线观看免费网站ktv| 国产农村妇女精品一二区| 国产精品自拍区| 国产高清一区| 国产一区二区三区四区| 中文字幕一区二区精品区| av中文字幕在线观看第一页 | 少妇精品在线| 国产欧美啪啪| 99视频+国产日韩欧美| 精品黄色一级片| 爽好久久久欧美精品| 国产成人精品一区二区免费看京 | 亚洲一区二区动漫| 国产福利一区二区三区在线播放| 欧美在线影院| 精品久久国产一区| 亚洲精品三级| 欧美亚洲激情| 免费一级欧美在线观看视频| 欧美一级专区| 久久麻豆精品| 福利一区和二区| 日韩va亚洲va欧美va久久| 久久一区二区中文字幕| 久久成人福利| 天堂精品久久久久| 日本免费一区二区三区四区| 国产日产一区| 日韩中文字幕亚洲一区二区va在线 | 久久亚洲影院| 亚洲成av在线| 精品久久中文| 国产欧美日韩精品一区二区免费 | 香蕉成人久久| 神马午夜在线视频| 国产精品手机在线播放| 综合激情视频| 国产视频亚洲| 美女亚洲一区| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 国产亚洲激情| 三级精品视频| 黄在线观看免费网站ktv| 国产日韩亚洲| 日韩国产一二三区| 中文字幕免费精品| 丝袜诱惑制服诱惑色一区在线观看 | 日韩电影免费网址| 麻豆精品99| 日本va欧美va精品| 中文无码久久精品| 国产亚洲永久域名| 亚洲天堂久久| 亚洲午夜电影| 久久五月天小说| 99成人超碰| 久久精品99久久无色码中文字幕| 黄色精品视频| 福利一区和二区| 精品国产美女a久久9999| 免费亚洲一区| 日韩和欧美一区二区三区| 亚洲精品美女91| 亚洲精品视频一二三区| 亚洲精品美女| 日韩一区二区三区免费视频| 天海翼精品一区二区三区| 亚洲精品免费观看| 日韩 欧美一区二区三区| 日韩三级精品| 国产欧美日韩视频在线| 欧美激情综合| 精品视频97| 成人午夜精品| 蜜桃成人av| 噜噜噜久久亚洲精品国产品小说| 欧美不卡高清| 免费一级片91| 97久久亚洲| 国产精品一国产精品k频道56| 久久爱www成人| 亚洲综合电影| 久久天堂精品| 99成人在线| 一区二区高清| 国产精品一区二区三区www| 国产精品欧美在线观看| 美女国产精品久久久| 日韩1区2区| 久久精品电影| 三级亚洲高清视频| 亚洲日韩视频| 国产精品日韩精品中文字幕| 国产suv精品一区二区四区视频| 精品捆绑调教一区二区三区| 在线视频日韩| 欧美日本不卡| 国产中文在线播放| 悠悠资源网久久精品| 亚洲精品一级| 美腿丝袜亚洲一区| 欧美一级精品| 日韩高清在线不卡| 电影91久久久| 欧美日韩视频| 奇米777国产一区国产二区| 免费在线亚洲欧美| 在线一区视频观看| 中文一区一区三区免费在线观 | 日韩成人精品一区| 国产韩日影视精品| 97久久亚洲| 国产精品国产三级国产在线观看| 久久国产日本精品| 亚洲午夜国产成人| 日韩a一区二区| 美女少妇全过程你懂的久久| 亚洲另类黄色| 久久精品国产久精国产| 激情欧美一区二区三区| 日本在线不卡视频一二三区| 国产一区二区三区四区二区| 亚洲精品1区| 久久国产精品美女| 欧美日韩国产亚洲一区| 国产欧美日韩亚洲一区二区三区| 日本国产精品| 日韩国产精品久久久久久亚洲| 精品视频在线你懂得| 99日韩精品| 国产福利91精品一区二区| 九九在线精品| 国产精品成人**免费视频| 在线一区欧美| 国产999精品在线观看| 一区二区国产在线观看| 欧美日韩国产v| 青青国产精品| 婷婷综合社区| 久久男人av| 婷婷综合电影| 在线成人动漫av| 美女国产精品久久久| 一区二区三区网站| 色爱av综合网|