精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用原生 JS,快速寫出一個五子棋小游戲

開發 前端
下棋的邏輯很簡單,就是點擊棋盤的時候,給點擊的td對應的那個對象添加一個num屬性,黑棋就是1,白棋就是2,然后渲染出來就可以了。下棋順序可以通過一個全局變量flag來控制,同時聲明兩個全局數組,用來存放所有的黑棋和白棋。后面判斷勝負時,要對這兩個數組先進行遍歷。

1. 棋盤和棋子的繪制。

let arr = [      [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],  [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {},],]//封裝渲染函數const render = () => {  document.querySelector('table').innerHTML = ''  arr.forEach((item, index) => {    let tr = document.createElement('tr')    item.forEach((item2, index2) => {      let td = document.createElement('td')//遍歷數組,繪制棋盤      //給td標簽設置自定義屬性,用來作為坐標使用      td.dataset.y = index      td.dataset.x = index2      tr.appendChild(td)      //給數組里面的對象做條件判斷,這樣就能渲染出顏色      if (item2.num === 1) {        td.classList.add('bgc1')      }      else if (item2.num === 2) {        td.classList.add('bgc2')      }    })    document.querySelector('table').appendChild(tr)  })}render()

先創建一個15 * 15的二維數組,通過對數組的兩層遍歷,創建出一個 15 * 15 的表格,這樣棋盤就有了。用數組來繪制棋盤的好處是便于查找和篩選。每一個td都對應著一個空對象,下棋的時候通過給這個對象添加一個 num 的屬性,num 為 1 時,就渲染成黑色,2 就渲染成白色,再稍微調整一下 css 樣式,這樣棋盤和棋子就繪制好了。每一個 td 都有自己的自定義屬性 x 和 y,類似于坐標,這樣就可以很方便的把 td 標簽和數組里對應的值聯系起來。下面是 css 代碼

<style>  * {    margin: 0;    padding: 0;    box-sizing: border-box;    list-style: none;  }  table {    position: relative;    width: 730px;    height: 730px;    margin: 0 auto;    border: 5px solid black;    background: url(./src=http___pic45.nipic.com_20140804_2372131_155038114014_2.jpg&refer=http___pic45.nipic.webp) no-repeat;    background-size: 100%;    background-position: center;    padding: 24px 12px;  }  td {    width: 35px;    height: 35px;    border-radius: 50%;    margin-right: 13px;    margin-bottom: 11px;    cursor: pointer;  }  .bgc1 {    background-color: black;  }  .bgc2 {    background-color: white;  }  button {    position: absolute;    width: 200px;    height: 100px;    bottom: 100px;    right: 200px;    text-align: center;    line-height: 100px;    font-size: 25px;  }</style>
<table></table><button>悔棋</button>

圖片

2. 輪流下棋的點擊事件

下棋的邏輯很簡單,就是點擊棋盤的時候,給點擊的td對應的那個對象添加一個num屬性,黑棋就是1,白棋就是2,然后渲染出來就可以了。下棋順序可以通過一個全局變量flag來控制,同時聲明兩個全局數組,用來存放所有的黑棋和白棋。后面判斷勝負時,要對這兩個數組先進行遍歷。

//判斷下棋順序的全局變量let flag = true//所有黑棋數組let blackArr = []//所有白棋數組let whiteArr = []//輪流下棋邏輯document.querySelector('table').addEventListener('click', function (e) {  if (e.target.dataset.x) {    let td = e.target    //判斷黑白棋子的順序    if (flag) {      //判斷點擊的地方是否已經有棋子了,避免棋子覆蓋      if (!arr[td.dataset.y][td.dataset.x].num) {        flag = !flag        arr[td.dataset.y][td.dataset.x].num = 1        //每走一步,就將其添加至對應的數組當中        blackArr.push([td.dataset.y, td.dataset.x])                  }    } else {      if (!arr[td.dataset.y][td.dataset.x].num) {        flag = !flag        arr[td.dataset.y][td.dataset.x].num = 2        whiteArr.push([td.dataset.y, td.dataset.x])      }    }    //調用判斷勝負的函數    XWin(td)    YWin(td)    X_YWin(td)    Y_XWin(td)  }  render()})

圖片

3.獲勝條件判斷

接下來就是寫獲勝條件了。我分成了 4 種情況,橫軸,數軸,正斜軸和反斜軸。這 4 種情況邏輯和方法大致都是相同的,就是里面的數據有些細微差別。

3.1 橫軸獲勝

以橫軸為例,如何判斷獲勝,先判斷是黑棋還是白棋,然后遍歷對應的數組。已黑棋為例,遍歷之后把y值相同的黑棋篩選出來都放入一個數組中,也就是同一行的黑棋。接著比較這一行的這些黑棋的x值,如果有5個連續的x值,則說明橫軸上有5個連續的黑棋,就可以判斷獲勝了。怎么比較這些x值呢,我的做法是先將他們用sort()方法排序,接著從小到大依次比較。建一個新數組,第二個值等于第一個值加1,就把他們扔到這個新數組中,如果出現某個值不連續了,就將這個數組清空,這樣通過判斷這個數組的長度,就能判斷勝負了。

//橫軸獲勝邏輯function XWin(td) {  //當前X軸的所有棋子集合  let xAllArr = []  //判斷橫軸勝負邏輯的X軸棋子  let xWinArr = []  //判斷下的是黑棋還是白棋  if (!flag) {    blackArr.map(item => {      if (item[0] == td.dataset.y) {        //將當前排的所有棋子加入對應數組        xAllArr.push(item[1])      }    })  } else {    whiteArr.map(item => {      if (item[0] == td.dataset.y) {        xAllArr.push(item[1])      }    })  }  //把橫排總數組排序,方便比較  xAllArr.sort((a, b) => a - b)  for (let i = 1; i < xAllArr.length; i++) {    // console.log(xAllArr[i]);    if (xAllArr[i] == (+xAllArr[i - 1] + 1)) {      //如果相鄰的兩個棋子數量相差1,就將其添加至勝負邏輯數組      xWinArr.push(xAllArr[i])    } else {      //如果數組長度大于4,就跳出循環      if (xWinArr.length >= 4) break      //否則得清空      xWinArr = []    }  }  //獲勝條件  if (xWinArr.length >= 4) {    //這里要用定時器將彈框變成異步任務,否則第五顆棋子渲染不出來就提示獲勝了    if (!flag) {      setTimeout(function () {        alert('黑棋獲勝!')        location.reload()      }, 100)    } else {      setTimeout(function () {        alert('白棋獲勝!')        location.reload()      }, 100)    }  }}

圖片

3.2 數軸獲勝

?豎軸和橫軸代碼基本上也相同

只是換了個條件,把 if (item[0] == td.dataset.y) ?換成了 if (item[1] == td.dataset.x),意思就是選出這一列所有的棋子。后面的邏輯和代碼就和橫軸一樣了。?

//豎軸獲勝邏輯function YWin(td) {  //當前Y軸的所有棋子集合  let yAllArr = []  //判斷豎軸勝負邏輯的X軸棋子  let yWinArr = []  if (!flag) {    blackArr.map(item => {      if (item[1] == td.dataset.x) {        yAllArr.push(item[0])      }    })  } else {    whiteArr.map(item => {      if (item[1] == td.dataset.x) {        yAllArr.push(item[0])      }    })  }  //豎排總數組排序  yAllArr.sort((a, b) => a - b)  for (let i = 1; i < yAllArr.length; i++) {    // console.log(xAllArr[i]);    if (yAllArr[i] == (+yAllArr[i - 1] + 1)) {      yWinArr.push(yAllArr[i])    } else {    //如果數組長度大于4,就跳出循環      if (yWinArr.length >= 4) break      yWinArr = []    }  }  if (yWinArr.length >= 4) {    if (!flag) {      setTimeout(function () {        alert('黑棋獲勝!')        location.reload()      }, 100)    } else {      setTimeout(function () {        alert('白棋獲勝!')        location.reload()      }, 100)    }  }}

圖片

3.3 正斜軸獲勝

斜軸困難一點的地方就是,怎么篩選出這一條斜線上的所有棋子。

只要能把這條斜線上的棋子給找出來,后面的邏輯判斷就都一樣了。所有的斜線都是 45 度角,也就是說斜線上的任意兩個棋子,他們的x值之差于y值之差是相等的。這樣的話,判斷起來就簡單了。??if ((item[0] - td.dataset.y) == (item[1] - td.dataset.x))?? 這樣就可以了。斜線上的棋子找出來后,后面的步驟就都一樣了,復制粘貼即可。

//正斜軸獲勝邏輯function X_YWin(td) {  //當前X軸的所有棋子集合  let x_yAllArr = []  //判斷橫軸勝負邏輯的X軸棋子  let x_yWinArr = []  if (!flag) {    blackArr.map(item => {      //判斷斜軸棋子,斜軸棋子的x和y之差都是相同的      if ((item[0] - td.dataset.y) == (item[1] - td.dataset.x)) {        x_yAllArr.push(item[1])      }    })  } else {    whiteArr.map(item => {      if ((item[0] - td.dataset.y) == (item[1] - td.dataset.x)) {        x_yAllArr.push(item[1])      }    })  }  x_yAllArr.sort((a, b) => a - b)  for (let i = 1; i < x_yAllArr.length; i++) {    if (x_yAllArr[i] == (+x_yAllArr[i - 1] + 1)) {      //如果相鄰的兩個棋子數量相差1,就將其添加至勝負邏輯數組      x_yWinArr.push(x_yAllArr[i])    } else {      //如果數組長度大于4,就跳出循環      if (x_yWinArr.length >= 4) break      //否則得清空      x_yWinArr = []    }  }  //獲勝條件  if (x_yWinArr.length >= 4) {    if (!flag) {      setTimeout(function () {        alert('黑棋獲勝!')        location.reload()      }, 100)    } else {      setTimeout(function () {        alert('白棋獲勝!')        location.reload()      }, 100)    }  }}

圖片

3.4 反斜軸獲勝

反斜軸同理,條件改成 if (0 - (item[0] - td.dataset.y) == (item[1] - td.dataset.x)),其余的復制粘貼。

//反斜軸獲勝邏輯function Y_XWin(td) {  //當前X軸的所有棋子集合  let y_xAllArr = []  //判斷橫軸勝負邏輯的X軸棋子  let y_xWinArr = []  if (!flag) {    blackArr.map(item => {      //判斷斜軸棋子      if (0 - (item[0] - td.dataset.y) == (item[1] - td.dataset.x)) {        y_xAllArr.push(item[1])      }    })  } else {    whiteArr.map(item => {      if (0 - (item[0] - td.dataset.y) == (item[1] - td.dataset.x)) {        y_xAllArr.push(item[1])      }    })  }  y_xAllArr.sort((a, b) => a - b)  for (let i = 1; i < y_xAllArr.length; i++) {    if (y_xAllArr[i] == (+y_xAllArr[i - 1] + 1)) {      //如果相鄰的兩個棋子數量相差1,就將其添加至勝負邏輯數組      y_xWinArr.push(y_xAllArr[i])    } else {      //如果數組長度大于4,就跳出循環      if (y_xWinArr.length >= 4) break      //否則得清空      y_xWinArr = []    }  }  //獲勝條件  if (y_xWinArr.length >= 4) {    if (!flag) {      setTimeout(function () {        alert('黑棋獲勝!')        location.reload()      }, 100)    } else {      setTimeout(function () {        alert('白棋獲勝!')        location.reload()      }, 100)    }  }}

圖片

把這些函數放到下棋事件里面調用,整個功能就完成了。

4. 悔棋功能

最后寫一下悔棋功能,點擊悔棋,把對應數組里面的數據刪除,然后重新渲染棋盤就完事了。

//悔棋document.querySelector('button').addEventListener('click', function () {  //判斷前面一步是黑棋還是白棋  if (!flag) {    //黑棋    //獲取對應棋子總數組的最后一個數據的值    const y = blackArr[blackArr.length - 1][0]    const x = blackArr[blackArr.length - 1][1]    //將對應的對象里的num值刪除,這樣渲染出來對應棋子就消失了    delete arr[y][x].num    //刪除總數組里的最后一個數據,否則勝負邏輯會有問題    blackArr.splice(blackArr.length - 1, 1)    //重置下棋順序    flag = !flag  } else {    //白棋    const y = whiteArr[whiteArr.length - 1][0]    const x = whiteArr[whiteArr.length - 1][1]    delete arr[y][x].num    whiteArr.splice(whiteArr.length - 1, 1)    flag = !flag  }  render()})

總結

整個代碼寫下來,都是些 js 的基本語法,幾個數組的方法來回用,希望能給 js 初學者一些幫助。

圖片

責任編輯:武曉燕 來源: 前端YUE
相關推薦

2022-11-07 11:27:00

JS游戲開發

2010-03-18 17:07:32

2022-03-17 15:28:18

五子棋HarmonyOSJSAPI

2015-01-19 13:42:08

Android游戲源碼藍牙對戰五子棋

2015-06-16 14:24:41

開發五子棋網游

2023-10-07 11:58:52

PythonPygame

2015-01-14 14:22:30

Android源碼游戲

2021-04-13 06:35:13

Elixir語言編程語言軟件開發

2022-11-01 15:17:48

JS鴻蒙小游戲

2011-06-21 15:01:55

2022-08-22 17:28:34

ArkUI鴻蒙

2022-10-31 15:22:37

JS鴻蒙小游戲

2022-03-24 07:57:58

Python水果忍者游戲

2020-11-30 06:20:13

javascript

2024-01-15 07:47:09

井字棋游戲編程練習Python

2023-02-13 14:47:32

人工智能機器學習ChatGPT

2021-03-30 05:58:01

JavascriptCss3轉盤小游戲

2022-02-11 14:39:11

游戲JS鴻蒙

2023-11-29 08:10:36

javascriptH5游戲

2020-10-29 16:00:03

Node.jsweb前端
點贊
收藏

51CTO技術棧公眾號

蜜桃国内精品久久久久软件9| 欧美brazzers| gogo亚洲高清大胆美女人体| 久久久久国产成人精品亚洲午夜| 青椒成人免费视频| 色狠狠av一区二区三区| 国产成人av一区二区三区| 日韩一级视频在线观看| 粗大黑人巨茎大战欧美成人| 免费看黄色91| 亚洲三级av在线| 亚洲精品国产久| av手机在线观看| 国产精品视频观看| 国产一区二区三区av在线| 五月激情丁香网| 欧美区国产区| 一本一本久久a久久精品牛牛影视| 99精品在线免费视频| 在线观看黄色av| av激情亚洲男人天堂| 国产精品嫩草影院久久久| 谁有免费的黄色网址| 日韩欧美高清一区二区三区| 一本色道综合亚洲| 99久热在线精品视频| 黄视频在线观看免费| 久久久久久免费观看| 黄页在线观看免费| 国产成人高清视频| 国产精品视频大全| 久久黄色精品视频| 欧美成人一区二免费视频软件| 日韩精品中文字幕一区 | 天堂资源在线播放| av一区二区在线观看| 亚洲国产高清高潮精品美女| 亚洲视频一二三四| 另类激情视频| 天天色 色综合| 水蜜桃在线免费观看| 99riav在线| 国产网站一区二区三区| 国语精品免费视频| 免费观看毛片网站| 国产精品亚洲专一区二区三区 | 色999日韩国产欧美一区二区| 久久综合中文色婷婷| 刘玥91精选国产在线观看| jvid福利在线一区二区| 91九色精品国产一区二区| 日韩精品免费视频| 国产精品成人无码专区| 在线观看视频一区二区三区 | 91麻豆精品国产91久久久久| 一区二区三区国产免费| 另类专区亚洲| 在线中文字幕一区二区| 99精品视频在线看| 伊人成综合网站| 欧美日韩国产在线看| 97超碰人人澡| 理论不卡电影大全神| 婷婷夜色潮精品综合在线| 蜜臀av无码一区二区三区| 国产91足控脚交在线观看| 一区二区三区加勒比av| 男人添女荫道口喷水视频| 天堂地址在线www| 亚洲欧美在线观看| 国产又黄又爽免费视频| 午夜dj在线观看高清视频完整版| 2024国产精品| 欧美日韩精品一区| 久久经典视频| www.成人在线| 国产成人在线视频网站| 精品成人一区二区三区四区| 免费裸体美女网站| 成人在线中文| 91精品在线观看入口| 中文字幕第10页| 97一区二区国产好的精华液| 日韩激情视频在线播放| 特级西西www444人体聚色| 国产精品久久久久一区二区三区厕所| 亚洲免费高清视频| 中文字幕第4页| 色呦哟—国产精品| 九色精品美女在线| 亚洲黄色激情视频| 久久国产夜色精品鲁鲁99| 亚洲一区二区三区四区在线播放| 在线观看国产区| 国产一区二区不卡| 精品在线观看一区二区| 日本美女在线中文版| 一区二区三区四区中文字幕| 337p粉嫩大胆噜噜噜鲁| 欧美视频第一| 亚洲第一色在线| 亚洲黄色小说视频| 久久久久久久久久久久久久久久久久 | 中文欧美在线视频| 中文字幕av免费在线观看| 欧美丰满日韩| 91麻豆精品国产91久久久更新资源速度超快| 成人国产精品视频| 日韩视频精品| sqte在线播放| 欧洲日韩一区二区三区| 国产chinesehd精品露脸| 美女久久久久| 一二美女精品欧洲| 黄色小视频在线免费看| 欧美aⅴ一区二区三区视频| 国产精品久在线观看| 亚洲AV无码国产精品午夜字幕| 国产精品一区免费视频| 欧美视频小说| 成人免费网站观看| 91精品国产色综合久久不卡电影| 日本在线播放一区二区| 日韩免费在线电影| 亚洲男人天堂网站| 免费观看一级视频| 久久成人亚洲| 国产亚洲福利社区| av免费看在线| 欧美精品v日韩精品v韩国精品v| 亚洲一二区在线观看| 亚洲另类春色校园小说| 国产精品自在欧美一区| 精品久久久久久无| 国产高潮失禁喷水爽到抽搐 | 日韩一区二区在线观看视频| 波多野结衣福利| 日韩av大片| 国产成人在线一区| 一级片视频免费| 国产亚洲精品资源在线26u| 五月天男人天堂| 91看片一区| 亚洲男人7777| 午夜影院免费在线观看| av资源网一区| 久久av综合网| 精品伊人久久久| 中文字幕无线精品亚洲乱码一区 | 午夜国产精品影院在线观看| 天天爽夜夜爽视频| 91精品综合| 亚洲精品日韩av| 久久久久久久久免费视频| 欧美日韩国产一区| 亚洲观看黄色网| 尤物在线精品| 国偷自产av一区二区三区小尤奈| av在线收看| 欧美日韩一区视频| 永久免费看片视频教学| 午夜亚洲影视| 日本一区视频在线播放| 黄色影院在线看| 欧美视频一区二区三区在线观看| 国产性生活毛片| 在线亚洲观看| 日韩少妇中文字幕| 国产精品视频一区二区三区综合| 日韩精品在线观看网站| 无码无套少妇毛多18pxxxx| 久久亚洲精品国产精品紫薇| 成年人在线看片| 欧美va久久久噜噜噜久久| 亚洲一区二区在线播放| h片在线观看视频免费| 3d成人动漫网站| 18精品爽视频在线观看| 九色porny丨国产精品| 国产亚洲美女久久| 一区二区成人国产精品 | 6—12呦国产精品| 久久蜜桃av一区二区天堂| 毛片在线视频观看| 伊人久久大香| 久久久久久久久久亚洲| 精品国自产拍在线观看| 狠狠躁18三区二区一区| 国产一卡二卡三卡四卡| 最新国产精品| 久久99精品国产一区二区三区| 国产羞羞视频在线播放| 亚洲欧美日韩另类| 国产精品无码天天爽视频| 中文字幕一区二区三区四区| 午夜视频你懂的| 欧美全黄视频| 天天人人精品| 成人中文字幕视频| 国产精品美女网站| 牛牛电影国产一区二区| 国产亚洲精品一区二555| 亚洲经典一区二区| 亚洲制服欧美中文字幕中文字幕| 人妻巨大乳一二三区| 免费日韩av片| 日本一区二区三区www| 免费欧美网站| 国产精品久久久久久久久久新婚| avtt亚洲| 日韩电影免费观看在线观看| 国产精品高潮呻吟av| 动漫精品一区二区| 国产精品成人免费观看| 国产成人精品免费在线| 天天操天天爱天天爽| 日韩情爱电影在线观看| 激情五月综合色婷婷一区二区 | 国产精品黄页免费高清在线观看| eeuss影院www在线观看| 亚洲精品久久久久| 国产成人三级一区二区在线观看一| 亚洲欧美日韩成人高清在线一区| 久久久久久无码精品人妻一区二区| 欧美va天堂| 亚洲成人一区二区三区| 偷拍精品福利视频导航| 成人午夜电影在线播放| 中文字幕乱码中文乱码51精品| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 亚洲国产一区二区在线| 欧洲成人一区| 97婷婷大伊香蕉精品视频| 在线观看中文字幕的网站| 在线中文字幕日韩| 国产日韩欧美视频在线观看| 在线国产电影不卡| 久久久午夜影院| 亚洲国产乱码最新视频 | 91亚洲男人天堂| 逼特逼视频在线观看| 国产久卡久卡久卡久卡视频精品| 黄色大片中文字幕| 国产成人手机高清在线观看网站| 91精品久久久久久| 国产精品字幕| 国产精品久久久久久av福利软件 | 亚洲手机成人高清视频| 国产白丝一区二区三区| caoporen国产精品视频| 中文字幕av专区| 亚洲福利国产| 男女激情无遮挡| 亚洲一区欧美激情| 91视频最新入口| 中文字幕一区二区av | 99国产揄拍国产精品| 欧美精品自拍偷拍| 91精品国自产| 欧美一区二区三区影视| 337p粉嫩色噜噜噜大肥臀| 亚洲精品欧美专区| 久久久一区二区三区四区| 亚洲一区二区三区不卡国产欧美| 欧美性猛交xxxx乱大交少妇| 中文字幕日韩av资源站| 欧美成人精品一区二区免费看片 | 欧美日韩精品亚洲精品| 久久精品人人做| 久久久久麻豆v国产| 一区二区三区免费看视频| 久久精品视频日本| 狠狠躁夜夜躁久久躁别揉| 国产无遮挡又黄又爽又色视频| 欧美日韩在线影院| 久久精品视频久久| 日本道精品一区二区三区| 国产又粗又大又黄| 欧美日韩中文一区二区| 国产精品99久久久久久人| 国产桃色电影在线播放| 欧美一级片一区| 少妇精品视频在线观看| 国产精品视频在线免费观看 | 欧美日本亚洲韩国国产| 日本少妇高潮喷水视频| 麻豆久久久久久久| 无码人妻精品一区二区三区99不卡| 国产成人自拍高清视频在线免费播放| 天天干天天曰天天操| 91网站最新网址| 黄色片子在线观看| 欧美性色xo影院| 国产精品一级二级| 日韩经典中文字幕| 国内精品不卡| 91成人精品网站| 国产传媒在线| 91精品视频播放| 欧美大胆a级| 欧美黑人xxxxx| 欧美va天堂在线| 日本一道在线观看| 久热精品在线| 免费高清视频在线观看| 黑人巨大精品欧美一区| 亚洲人成人无码网www国产 | 国产欧美日韩综合精品一区二区三区| 欧美性生交片4| 乱精品一区字幕二区| 伊人久久综合97精品| 国产理论在线| 成人h视频在线观看播放| 美女视频亚洲色图| 喜爱夜蒲2在线| 久久精品五月| 韩国无码一区二区三区精品| 国产精品你懂的在线欣赏| 亚洲天堂av中文字幕| 好吊成人免视频| 国产成人一级片| 日韩一级片在线播放| 欧美jizzhd69巨大| 欧美一性一乱一交一视频| 在线日韩三级| 亚洲一区尤物| 欧美一区=区| 亚洲av无码国产精品久久| 亚洲一区二区中文在线| 久久人人爽人人爽人人片av免费| 欧美挠脚心视频网站| 日韩午夜影院| 欧日韩在线观看| 成人在线视频播放| 国产原创精品| 亚洲精品乱码久久久久久蜜桃麻豆| 可以免费观看av毛片| 成人一区二区三区在线观看| 久一视频在线观看| 日韩精品亚洲专区| 国产区一区二区| 天天操综合网| www在线观看免费| 成人av资源在线观看| 欧洲猛交xxxx乱大交3| 午夜精品123| 黄色美女一级片| 色中色综合影院手机版在线观看| 成人软件在线观看| 国产精品日韩av| 日本一区二区三区视频在线看 | 狠狠色丁香婷婷综合| 久久婷婷五月综合| 欧美性猛交xxxx黑人交| 嫩草研究院在线| 国产成人精品a视频一区www| 激情五月色综合国产精品| 成人综合视频在线| 国产欧美视频一区二区| 在线观看日本网站| 亚洲欧美在线播放| 精品成人av| 性欧美大战久久久久久久免费观看 | 黄色亚洲免费| 久久福利小视频| 欧美日韩人人澡狠狠躁视频| 97在线视频人妻无码| 欧美激情区在线播放| av在线亚洲色图| 久久9精品区-无套内射无码| 久久精品人人做| 夜夜躁狠狠躁日日躁av| 一区二区三区无码高清视频| 日韩一级二级| 品久久久久久久久久96高清| 日韩福利电影在线| 美国黑人一级大黄| 欧美久久一二区| 视频在线观看入口黄最新永久免费国产| 国产91热爆ts人妖在线| 国产成人ay| 欧美成人免费高清视频| 亚洲国产成人私人影院tom| 99热这里只有精| 97在线日本国产| 日韩精品导航| www.com久久久| 亚洲动漫第一页| 137大胆人体在线观看| 91日本在线视频| 亚洲久久一区二区| 我想看黄色大片| 6080yy午夜一二三区久久| 鲁鲁在线中文| 色哺乳xxxxhd奶水米仓惠香| 成人丝袜视频网| 国产三级小视频| 97超级碰碰碰| 综合干狼人综合首页| 欧美成年人视频在线观看|