成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Python實現(xiàn)簡單的2048小游戲

Python實現(xiàn)簡單的2048小游戲

熱門標簽:舉辦過冬奧會的城市地圖標注 400電話申請資格 正安縣地圖標注app 阿里電話機器人對話 地圖地圖標注有嘆號 qt百度地圖標注 電銷機器人系統(tǒng)廠家鄭州 螳螂科技外呼系統(tǒng)怎么用 遼寧智能外呼系統(tǒng)需要多少錢

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

運行效果:

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

2.代碼

configs.py

import argparse

def 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 configs
from Game2048 import Game2048


def 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 os
import sys
import numpy
import random
import pygame

"""
Form(): 窗口的設置
Action(): 用戶行為: 按鍵/鼠標
InitGame(): 游戲初始化
CreatNum(): 隨機在一個位置生成一個數(shù)
GetEmpty(): 獲取空白方格
MoveUp(): 向上移動
MoveDown(): 向下移動
MoveLeft(): 向左移動
MoveRight(): 向右移動
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 # 分數(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 = '' # 窗口標題字體類型及大小: 2048
 self.score_font = '' # 分數(shù)字體類型及大小
 self.tips_font = '' # 說明字體類型及大小
 self.font = '' # 數(shù)字字體

 # 窗口的設置
 def Form(self):
 """
 init(): 初始化所有導入的 pygame 模塊
 display.set_caption(title): 設置窗口的標題
 display.set_mode(): 初始化一個準備顯示的窗口或屏幕
 display.update(): 使繪制的顯示到窗口上
 """
 pygame.init() # 初始化所有導入的 pygame 模塊
 pygame.display.set_caption("Game2048") # 窗口標題
 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() # 用戶行為: 按鍵/鼠標
  self.Paint() # 表格繪制
  pygame.display.update() # 使繪制的顯示到窗口上

 # 用戶行為: 按鍵/鼠標
 def Action(self):
 for event in pygame.event.get(): # pygame.event.get(): 獲取所有消息并將其從隊列中刪除
  if event.type == pygame.QUIT: # pygame.QUIT: 窗口右上角的紅 ×
  sys.exit() # sys.exit()函數(shù)是通過拋出異常的方式來終止進程的
  elif event.type == pygame.KEYDOWN:
  """
  pygame.KEYDOWN 按下鍵盤時
  pygame.KEYUP 釋放鍵盤時
  """
  """ 
  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])

 # 隨機生成兩個數(shù)
 for i in range(2):
  self.isadd = True
  self.CreatNum()

 # 隨機在一個位置生成一個數(shù)
 def CreatNum(self):

 list = self.GetEmpty() # 獲取空白方格下標
 if list and self.isadd:
  """ 隨機生成的數(shù)字 """
  # 2, 4出現(xiàn)概率3:1
  # random.randint(m, n): 隨機生成[m, n]
  value = 4 if random.randint(0, 3) % 3 == 0 else 2

  """ 獲取隨機位置下標 """
  x, y = random.sample(list, 1)[0]

  """ 在隨機位置上生成隨機數(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

 # 向上移動
 def MoveUp(self):
 # print('up')
 """ Move Up """
 """
 向上移動,只需考慮第二行到第四行
 共分為兩種情況:
 1、當前數(shù)字上邊無空格,即上邊值不為 0
  a. 當前數(shù)字與上邊數(shù)字相等,合并
  b. 當前數(shù)字與上邊數(shù)字不相等,continue
 2、當前數(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]:
   # 當前數(shù)字 == 上邊數(shù)字
   """ 分數(shù): 當前數(shù)字 + 上邊數(shù)字
    數(shù)值: 上邊數(shù)字 = 上邊數(shù)字 + 當前數(shù)字, 當前數(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
   # 當前數(shù)字與上邊數(shù)字不相等,continue 可以省略不寫
   elif self.martix[index][j] == 0:
   # 當前數(shù)字上邊有0
   """ 分數(shù): 不變
    數(shù)值: 上邊數(shù)字 = 當前數(shù)字, 當前數(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相當于慢指針,j相當于快指針
    # 也就是說快指針和慢指針中間可能存在一個以上的空格,或者index和j并未相鄰
    # 上邊數(shù)字 = 0
    """ 分數(shù): 不變
    數(shù)值: 上邊數(shù)字 = 當前數(shù)字, 當前數(shù)字 = 0 """
    self.martix[index][j] = self.martix[i][j]
    self.martix[i][j] = 0
    self.isadd = True
 # print('up')
 # print(self.martix)

 # 向下移動
 def MoveDown(self):
 # print('down')
 """ Move Down """
 """
 向下移動,只需考慮第一列到第三列
 共分為兩種情況:
 1、當前數(shù)字下邊無空格,即下邊值不為 0
  a. 當前數(shù)字與下邊數(shù)字相等,合并
  b. 當前數(shù)字與下邊數(shù)字不相等,continue
 2、當前數(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]:
   # 當前數(shù)字 == 下邊數(shù)字
   """ 分數(shù): 當前數(shù)字 + 下邊數(shù)字
    數(shù)值: 下邊數(shù)字 = 下邊數(shù)字 + 當前數(shù)字, 當前數(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
   # 當前數(shù)字與下邊數(shù)字不相等,continue 可以省略不寫
   elif self.martix[index][j] == 0:
   # 當前數(shù)字下邊有0
   """ 分數(shù): 不變
    數(shù)值: 下邊數(shù)字 = 當前數(shù)字, 當前數(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相當于慢指針,j相當于快指針
    # 也就是說快指針和慢指針中間可能存在一個以上的空格,或者index和j并未相鄰
    # 下邊數(shù)字 = 0
    """ 分數(shù): 不變
    數(shù)值: 下邊數(shù)字 = 當前數(shù)字, 當前數(shù)字 = 0 """
    self.martix[index][j] = self.martix[i][j]
    self.martix[i][j] = 0
    self.isadd = True

 # print('down')
 # print(self.martix)

 # 向左移動
 def MoveLeft(self):
 # print('left')
 """
 Move Left
 """
 """
 向左移動,只需考慮第二列到第四列
 共分為兩種情況:
 1、當前數(shù)字左邊無空格,即左邊值不為 0
  a. 當前數(shù)字與左邊數(shù)字相等,合并
  b. 當前數(shù)字與左邊數(shù)字不相等,continue
 2、當前數(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]:
   # 當前數(shù)字 == 左邊數(shù)字
   """ 分數(shù): 當前數(shù)字 + 左邊數(shù)字
    數(shù)值: 左邊數(shù)字 = 左邊數(shù)字 + 當前數(shù)字, 當前數(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
   # 當前數(shù)字與左邊數(shù)字不相等,continue 可以省略不寫
   elif self.martix[i][index] == 0:
   # 當前數(shù)字左邊有0
   """ 分數(shù): 不變
    數(shù)值: 左邊數(shù)字 = 當前數(shù)字, 當前數(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相當于慢指針,j相當于快指針
    # 也就是說快指針和慢指針中間可能存在一個以上的空格,或者index和j并未相鄰
    # 左邊數(shù)字 = 0
    """ 分數(shù): 不變
    數(shù)值: 左邊數(shù)字 = 當前數(shù)字, 當前數(shù)字 = 0 """
    self.martix[i][index] = self.martix[i][j]
    self.martix[i][j] = 0
    self.isadd = True
 # print('left')
 # print(self.martix)

 # 向右移動
 def MoveRight(self):
 # print('right')
 """
 Move Right
 """
 """
 向右移動,只需考慮第一列到第三列
 共分為兩種情況:
 1、當前數(shù)字右邊無空格,即右邊值不為 0
  a. 當前數(shù)字與右邊數(shù)字相等,合并
  b. 當前數(shù)字與右邊數(shù)字不相等,continue
 2、當前數(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]:
   # 當前數(shù)字 == 右邊數(shù)字
   """ 分數(shù): 當前數(shù)字 + 右邊數(shù)字
    數(shù)值: 右邊數(shù)字 = 右邊數(shù)字 + 當前數(shù)字, 當前數(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
   # 當前數(shù)字與左邊數(shù)字不相等,continue 可以省略不寫
   elif self.martix[i][index] == 0:
   # 當前數(shù)字右邊有0
   """ 分數(shù): 不變
    數(shù)值: 右邊數(shù)字 = 當前數(shù)字, 當前數(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相當于慢指針,j相當于快指針
    # 也就是說快指針和慢指針中間可能存在一個以上的空格,或者index和j并未相鄰
    # 右邊數(shù)字 = 0
    """ 分數(shù): 不變
    數(shù)值: 右邊數(shù)字 = 當前數(shù)字, 當前數(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):
 # 當空白空格不為空時,即游戲未結(jié)束
 zerolist = self.GetEmpty()
 if zerolist:
  return False

 # 當空白方格為空時,判斷是否存在可合并的方格
 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))

 """ 字體設置 """
 # 初始化字體
 pygame.font.init()
 # 添加標題
 # f = pygame.font.get_fonts() #: 獲取字體樣式
 # pygame.font.Font.render(): 在一個新 Surface 對象上繪制文本
 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))

 # 添加分數(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))

注意這里需要導入兩個包(numpy,pygame),然后運行main文件即可。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python實現(xiàn)簡單2048小游戲
  • python反編譯教程之2048小游戲?qū)嵗?/li>
  • 一步步教你用Python實現(xiàn)2048小游戲
  • 用Python寫一個無界面的2048小游戲
  • Python新手實現(xiàn)2048小游戲
  • python實現(xiàn)2048小游戲
  • 用Python手把手教你實現(xiàn)2048小游戲

標簽:阜新 淘寶好評回訪 信陽 隨州 興安盟 合肥 昭通 濟源

巨人網(wǎng)絡通訊聲明:本文標題《Python實現(xiàn)簡單的2048小游戲》,本文關鍵詞  Python,實現(xiàn),簡單,的,2048,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《Python實現(xiàn)簡單的2048小游戲》相關的同類信息!
  • 本頁收集關于Python實現(xiàn)簡單的2048小游戲的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    尤物网精品视频| 欧美男女性生活在线直播观看| 日韩一区三区| 国产黄色一级电影| 亚洲自拍av在线| 最新亚洲精品| 熟妇人妻va精品中文字幕| 激情小说亚洲一区| 国产天堂在线播放| 欧美激情视频一区二区三区在线播放| 日韩三级一区| 99精品视频在线| 亚洲色偷精品一区二区三区| 精品黑人一区二区三区国语馆| 夜夜躁狠狠躁日日躁av| 99久久婷婷国产精品综合| 国产精品久久电影观看| 欧美日韩在线高清| 日本人69视频| 性色av一区二区三区在线观看| 4hu四虎永久在线观看| 欧美韩国日本综合| 国产一区二区三区精品在线| 日韩理论电影| 欧美xxxx三人交性视频| 久久精品视频一区二区三区| 欧美在线一级片| 全部毛片永久免费看| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲第一区av| 黄色网址多少| 亚洲欧美日韩一区在线| 国产成人禁片免费观看| 日韩精品久久久久久免费| 中国女人内谢25xxxx免费视频| 亚洲最新永久在线观看| 欧美成人在线免费视频| 在线播放国产一区二区三区| 在线观看亚洲免费视频| 亚洲无av在线中文字幕| 青梅竹马是消防员在线| 亚洲自拍小视频免费观看| 看全色黄大色大片| 老太脱裤让老头玩ⅹxxxx| 国外成人在线视频网站| 成人午夜视频精品一区| 婷婷丁香综合网| 黄色片网址在线观看| 先锋av资源在线| 一区二区免费看| 五月开心六月丁香综合色啪| 欧美激情视频在线| 亚洲精品久久久久久久久久久| 狠狠色综合网站久久久久久久| 欧美日韩不卡在线| 日韩精品电影在线| 日韩av大片站长工具| 男人艹女人在线观看| 色网站免费观看| 亚洲人精品午夜射精日韩| 欧美激情第3页| 综合av第一页| 91免费精品国自产拍在线不卡| 亚洲精品欧洲精品| 老司机午夜精品99久久| 日韩在线免费视频观看| 久久久久久久成人| 成人女同在线观看| 国内精品美女av在线播放| 日韩三级精品电影久久久| 成人av色在线观看| 激情伊人五月天| 国产三级伦理在线| 最新日韩一区| 狠狠色狠狠色综合网| 91精品国产沙发| 欧美日韩精品免费观看| 日韩一级在线免费观看| 日韩专区在线观看| 亚洲精品一区在线| 久久久人成影片免费观看| 九九99玖玖| 国产在线视频二区| 亚洲夜晚福利在线观看| jizzjizz国产| 四虎影院影音| 夜夜嗨av禁果av粉嫩avhd| 69堂精品视频在线播放| 久草福利在线视频| 亚洲一区二区三区xxx视频| 精品黄色免费中文电影在线播放| 亚洲在线观看| 国产视频一区二区不卡| 日本a√在线观看| 美国三级日本三级久久99| 欧美色综合网站| 爽爽影院免费观看视频| 影音先锋男人资源站在线观看| 成年女人免费又黄又爽视频| 中国女人内谢69xxxx免费视频| 日本黄色福利视频| 91九色蝌蚪porny| 日韩精品乱码av一区二区| 中文字幕一区二区三区四| 日本wwwcom| 影音先锋制服丝袜| 国产色噜噜噜91在线精品| 九色porny自拍| 琪琪久久久久日韩精品| 欧美体内谢she精2性欧美| 五月天国产一区| 久久亚洲精品伦理| 少妇高清精品毛片在线视频| 久久av.com| 伊人网中文字幕| 久久久91精品国产一区二区精品| 免费在线成人激情电影| 国产日产欧美a一级在线| 久本草在线中文字幕亚洲欧美| 91免费看片网站| 粉嫩久久久久久久极品| 99热这里只有精品在线| 久久99精品久久久久久久久久久久| 成人免费毛片嘿嘿连载视频…| www色com| 久久不射中文字幕| 成人在线电影网站| 日韩欧美中文字幕电影| 国产视频一区在线观看| 51ⅴ精品国产91久久久久久| 日本h片久久| 欧美激情aaaa| 五月天婷婷亚洲| 97久久人人超碰| 午夜啪啪免费视频| 色婷婷久久久亚洲一区二区三区| 天天久久人人| 国产全是老熟女太爽了| 日韩高清在线观看| 中文字幕亚洲欧美在线| xxx亚洲日本| 一区二区三区中文字幕精品精品| 免费a级片在线观看| 一区二区精品免费| 天堂а√在线8种子蜜桃视频| 大肉大捧一进一出好爽动态图| 川上优av一区二区线观看| 欧美色图亚洲激情| av在线一区不卡| 国产一区二区三区自拍| 樱花草www在线| 色综合久久网女同蕾丝边| 日韩精品一区二区亚洲av| 国产精品一区在线观看乱码| 亚洲女同在线| 91激情视频在线观看| 男女免费视频网站| 国产欧美不卡| 免费观看欧美成人禁片| 亚洲怡红院在线| 精品视频在线一区| 久久久精品少妇| 99精品美女视频在线观看热舞| 草裙成人精品一区二区三区| 一本久道综合色婷婷五月| 婷婷丁香在线| av免费在线观| 91短视频在线观看| 国内高清免费在线视频| 久久99精品久久久久久三级| 成人在线中文字幕| 亚洲另类在线制服丝袜| 国产另类图片| 午夜神马福利影院| 亚洲一二三四久久| 91免费版黄色| 日本丰满大乳奶| 在线中文字幕av| 日本综合在线| 中国女人做爰视频| 男女爽爽爽视频| 精品欧美一区二区久久久伦| www.中文字幕在线观看| 国产成人免费视频精品含羞草妖精| 亚洲最大av| 国产中年熟女高潮大集合| 久久中文字幕一区| 国产一区白浆| 国产成人精品电影| av成人在线网站| 亚洲国产日韩a在线播放| a视频在线播放| 久久精品人人爽人人爽| 污视频在线观看网站| 欧美福利视频网站| 国产天堂亚洲国产碰碰| 高清国产一区二区三区| 日韩视频免费播放| 有色激情视频免费在线| 国产精品免费电影| 国产成人精品视频免费看| 欧美性猛交一区二区三区| 又黄又www的网站| 亚洲三区欧美一区国产二区| 调教+趴+乳夹+国产+精品| 午夜精品久久久久影视| 91精品福利在线一区二区三区| 青青视频一区二区| 欧美爆操老女人| 国产综合无码一区二区色蜜蜜| 一区二区三区中文免费| 亚洲伦理一区| 国产三级精品三级在线观看| 日本在线免费播放| 影音先锋5566资源网| 欧美在线在线| 中文字幕视频三区| 欧美日韩久久婷婷| 无遮挡aaaaa大片免费看| 亚州av在线播放| 国产综合在线观看视频| 99热这里只有精品在线观看| 中文字幕校园春色| 日韩美女久久久| 日产午夜精品一线二线三线| 久久国产福利| 国产精品6699| 中文字幕不卡在线视频极品| 亚洲一区二区| 国产精品毛片一区视频播| 久草在线资源视频在线观看| 丁香婷婷久久久综合精品国产| 日韩av电影天堂| 免费视频网站在线观看入口| 国产精品三级久久久久三级| 五月婷婷六月色| 黄色录像特级片| 国产成人精品999在线观看| 欧美巨猛xxxx猛交黑人97人| 亚洲精品国久久99热| 一本一道久久a久久综合精品| 中文字幕区一区二区三| 国产精品久久久久一区二区| 韩国成人动漫| 日韩国产一区二区三区| 欧美一区永久视频免费观看| 免费看涩涩视频| 激情欧美一区二区三区| 香蕉视频在线免费看| 老司机精品影院| 国产欧美日韩在线视频| 天堂资源在线视频| 国产丝袜美女| 亚洲福利视频专区| 香蕉视频禁止18| 中文字幕+乱码+中文字幕明步| 西游记1978| 国产成人精品一区二区在线| 成人xxxx| 亚洲av鲁丝一区二区三区| 香港一级纯黄大片| 成人影视免费观看| 狠狠久久伊人中文字幕| 国产成人在线观看免费网站| 成人va天堂| 91福利在线视频| 久久精品一区二区三区四区| 日韩精品亚洲aⅴ在线影院| 美女福利视频在线观看| 九色国产蝌蚪| 中文在线免费一区三区| 在线观看的黄色网址| 综合日韩av| 在线免费观看黄| 一区二区视频免费在线观看| 中文字幕不卡在线视频极品| 2020国内自拍视频| 香蕉成人伊视频在线观看| 欧美丰满日韩| 刘亦菲国产毛片bd| 欧美jizz19性欧美| 九色在线免费| 成人欧美精品一区二区| jizz日本大全| 欧美精品观看| 欧美一区日本一区韩国一区| 中文字幕日韩欧美在线视频| 国产麻豆精品theporn| 在线免费观看羞羞视频一区二区| 国产精品亚洲d| 日韩精品久久久| 九九爱免费视频在线观看| 国产一区二区三区影视| 中文字幕一区二区三| 国产人妖在线播放| 亚洲国产成人va在线观看麻豆| 综合五月婷婷| 国产一区二区在线视频聊天| 日韩在线一区二区视频| a毛片毛片av永久免费| 风流少妇一区二区| 久久综合久久99| 成人黄色av播放免费| 91激情视频在线| 亚洲精品毛片一区二区三区| av先锋影音资源站| 99爱在线观看| 中文字幕在线观看日韩| 国产在线69| 精品国产一区二区三区久久久久久| 2019中文字幕在线| 亚洲精品欧美激情| 伊人久久久久久久久久| 亚洲午夜性刺激影院| 美女av电影| 欧美三级网站在线观看| 亚洲欧洲日本一区二区三区| 一级视频在线观看| 色噜噜国产精品视频一区二区| 美女网站色91| 老司机精品视频导航| 国产精品视频流白浆免费视频| 成 人 黄 色 小说网站 s色| 欧美人体一区二区三区| a日韩av网址| 91av在线免费播放| 日韩欧美国产精品一区二区三区| 夜夜精品视频一区二区|