热re99久久精品国产99热-热re99久久精品国99热-热re99久久国产精品-热re91久久精品国产91热-热er99久久6国产精品免费-热99这里只有精品

焦點日報:保存象棋棋盤信息,需要多少比特?我只用139-167位二進制
2023-04-23 14:54:26 來源:騰訊云 編輯:

如何存儲當前棋局

方案有3種:

象棋一共32個棋子,每個棋子有91種狀態:死亡或位于0-89中任一位置。所以用長度為32的列表即可,每個數的值域是0-90,其中90代表死亡。死亡的棋子不再占用空間,使用類似map的結構,key是棋子id,value是棋子位置(0-89)。壓縮空間的方案:將帥個子有9個可能在的位置,只需要0-9即可表示,需要至多5位二進制。士有5種位置,每個士只需要至多3位二進制。以此類推……占用空間最少。

分析方案一:數組長度為32,每個數組項目是個uint8,總共8 * 32 = 256 位。

分析方案二:在棋子多的時候,占用空間較多,所以存儲空間的大小不太穩定。


(資料圖片)

方案三占用空間少,但是開發成本也較高,需要開發者去拼接二進制位。

今天我們探討方案三。

前綴碼

引入一個概念:Prefix-Free Code,也可以叫 Prefix Code,它來源于信息論學科,維基百科:en.wikipedia.org/wiki/Prefix… 描述如下:

A prefix codeis a type of code system distinguished by its possession of the "prefix property", which requires that there is no whole code word in the system that is a prefix (initial segment) of any other code word in the system. It is trivially true for fixed-length code, so only a point of consideration in variable-length code.

For example, a code with code words {9, 55} has the prefix property; a code consisting of {9, 5, 59, 55} does not, because "5" is a prefix of "59" and also of "55". A prefix code is a uniquely decodable code: given a complete and accurate sequence, a receiver can identify each word without requiring a special marker between words. However, there are uniquely decodable codes that are not prefix codes; for instance, the reverse of a prefix code is still uniquely decodable (it is a suffix code), but it is not necessarily a prefix code.

它舉了個例子,針對集合{9, 5, 59, 55}就不是 prefix code,因為「5」有二義性,遇到5后,不知道該結束流程,還是繼續讀取后面的9或5。

哈夫曼編碼 Huffman Coding

信息論中有個經典問題:給定一篇文章,如何用最短的二進制編碼它。

解決方案就是:找出出現的所有單詞集合(例如:I am good good good,出現了3個單詞),計算每個單詞出現頻率,以某種方式,構造每個單詞對應的二進制編碼,滿足條件:基于前綴就能知道它代表哪個單詞。然后我們把這些前綴拼在一起,就成功編碼了(并且是可以解碼的)。

例如這種編碼 good = 0, I = 10, am = 11,文章就表示為1011000。

這是最簡短的編碼了。構造方法就是通過構造一顆哈夫曼樹,算法如下:

針對每一個單詞(或組合),都有一個對應的頻數,作為頻數表。如果當前只有1個,就進入4,否則進入2。找到頻數最低的2個,作為表示一個組合,他們對應的頻數就是兩個單詞(或組合)的頻數之和,加入頻數表(同時刪除這2個單詞或組合各自的頻數)。選取的2個單詞(或組合),分別作為左子樹和右子樹,組成一個樹。進入1。現在得到了一個二叉樹(叫做哈夫曼樹),每個葉子結點代表一個單詞。規定左分叉為0,右分叉為1,這個單詞對應的 Prefix Code就是根節點到它的路徑。

例如上述編碼對應的哈夫曼樹就是:

對于象棋的啟發

回到象棋棋盤狀態的問題:

將帥有10個位置(包括死亡狀態)。士有6個位置(包括死亡狀態)。象有8個位置(包括死亡狀態)。馬有91個位置(包括死亡狀態)。車有91個位置(包括死亡狀態)。炮有91個位置(包括死亡狀態)。兵有48個位置(包括死亡狀態)。

不妨假設他們出現在各個位置的頻率都一致,不難構造出對應的編碼。(這樣的編碼是比較穩定的,無論棋局變成什么樣子,存儲占用空間都不會太大)

10個位置,需要3-4位。6個位置,需要2-3位。8個位置,需要3位。48個位置,需要4-5位。91個位置,需要6-7位。

這樣算下來,保存一個象棋的棋子位置信息,最少需要:

(3+2*2+3*2+6*6+4*5)*2=138位,再用1位保存該誰下棋了,總共至少需要139位。至多需要(4+3*2+3*2+7*6+5*5)*2=166位,再用1位保存該誰下棋了,總共至多需要167位。

有辦法實現嗎?

上面說的很理想,如何實現呢?

我們以10個位置的情況,來探討通用的編碼生成方法。首先根據哈夫曼樹,可以構造這樣的編碼:

000代表0001代表1010代表2011代表3100代表4101代表51100代表61110代表71101代表81111代表9

隨后容易發現這樣的規律:

至于0-5,用3位二進制編碼即可。至于6-7,我們需要在3位的6(110)7(111)末尾新增0。至于8-9我們需要在3位的67末尾新增1。

可以利用數學歸納法,歸納總結出這樣的算法:

針對X個位置的情況,計算Log2(X),分別向下取整和向上取整,得到A和B。如果A=B,則用A位二進制表示這X個數即可,直接轉換進制。如果A0至2^A-1-(X-2^A);用B位二進制表示其它位置;針對位置2^A-(X-2^A)2^A-1,編碼為A位的進制轉換,并在末尾拼接一位0(共計B位);針對其它位置,編碼為位置減去(X-2^A)再轉換二進制,并在末尾拼接一位1(共計B位)。

可以發現,這種算法,位置編號小的比位置編號大的少了一位。也就是說,我們應該盡量把出現頻率較高的位置放在前面。

生成各棋子的位置列表

const RedAllCandidates = new Array(90).fill(0).map((a, i) => 89 - i);const BlackAllCandidates = new Array(90).fill(0).map((a, i) => i);const RedSoliderCandidates = new Array(45).fill(0).map((a, i) => 44 - i);const BlackSoliderCandidates = new Array(45).fill(0).map((a, i) => 45 + i);// 分別是將、士、士、……const PieceCandidates = [  [85, 86, 84, 76, 77, 75, 67, 68, 66, 127],  [127, 86, 84, 76, 68, 66],  [127, 84, 86, 76, 66, 68],  [127, 87, 67, 71, 51, 83, 47, 63],  [127, 83, 67, 63, 47, 87, 51, 71],  [127, ...RedAllCandidates],  [127, ...RedAllCandidates],  [127, ...RedAllCandidates],  [127, ...RedAllCandidates],  [127, ...RedAllCandidates],  [127, ...RedAllCandidates],  [127, 62, 53, ...RedSoliderCandidates],  [127, 60, 51, ...RedSoliderCandidates],  [127, 58, 49, ...RedSoliderCandidates],  [127, 56, 47, ...RedSoliderCandidates],  [127, 54, 45, ...RedSoliderCandidates],  [4, 3, 5, 13, 12, 14, 22, 21, 23, 127],  [127, 3, 5, 13, 21, 23],  [127, 5, 3, 13, 23, 21],  [127, 2, 22, 18, 38, 6, 42, 26],  [127, 6, 22, 26, 42, 2, 38, 18],  [127, ...BlackAllCandidates],  [127, ...BlackAllCandidates],  [127, ...BlackAllCandidates],  [127, ...BlackAllCandidates],  [127, ...BlackAllCandidates],  [127, ...BlackAllCandidates],  [127, 27, 36, ...BlackSoliderCandidates],  [127, 29, 38, ...BlackSoliderCandidates],  [127, 31, 40, ...BlackSoliderCandidates],  [127, 33, 42, ...BlackSoliderCandidates],  [127, 35, 44, ...BlackSoliderCandidates],];

解釋:

我可以把將帥的「死亡」(127)調整到了最后一位,因為他們死亡是非常罕見的,這樣可以節約2bit空間。我刻意把棋子常見位置放在了數組前幾位,尤其是將帥、士、兵,這樣可以節約幾bit空間。兵的位置,紅色和黑色不同,剛過河的一排放在前面,離河遠的位置放在后面,可以節約幾bit空間。

提前計算log

為了提高效率,我應該避免在JS中計算Math.log2,而要提前定義好運算結果。

const ceilLog2Map = new Map([  [1, 0],  [2, 1],  [3, 2],  [4, 2],  [6, 3],  [8, 3],  [10, 4],  [17, 5],  [48, 6],  [91, 7],]);const floorLog2Map = new Map([  [1, 0],  [2, 1],  [3, 1],  [4, 2],  [6, 2],  [8, 3],  [10, 3],  [17, 4],  [48, 5],  [91, 6],]);

按照編碼規則encode

基于文章《JS 按自定義格式 拼接二進制串 解析二進制串》提到的concatBits函數,我寫了concatFlexibleBits函數:

function concatFlexibleBits(current: number, offset: number, candidateIndex: number, candidateLength: number): [number, number, number[]] {  const floorLog = floorLog2Map.get(candidateLength)!;  const ceilLog = ceilLog2Map.get(candidateLength)!;  const last = 2 ** floorLog;  const beyond = candidateLength - last;  if (floorLog === ceilLog || candidateIndex < last - beyond) {    return concatBits(current, offset, candidateIndex, floorLog);  }  let newCurrent = current;  let newOffset = offset;  const array: number[] = [];  let newUint8: number[];  if (candidateIndex < last) {    [newCurrent, newOffset, newUint8] = concatBits(newCurrent, newOffset, candidateIndex, floorLog);    array.push(...newUint8);    [newCurrent, newOffset, newUint8] = concatBits(newCurrent, newOffset, 0, 1);    array.push(...newUint8);  } else {    [newCurrent, newOffset, newUint8] = concatBits(newCurrent, newOffset, candidateIndex - beyond, floorLog);    array.push(...newUint8);    [newCurrent, newOffset, newUint8] = concatBits(newCurrent, newOffset, 1, 1);    array.push(...newUint8);  }  return [newCurrent, newOffset, array];}

這里encode規則,就是按照上面提到的算法實現的。不過多解釋了。

按照編碼規則decode

基于文章《JS 按自定義格式 拼接二進制串 解析二進制串》的readBits函數,我寫了readFlexibleBits函數:

function readFlexibleBits(array: Uint8Array, bitsOffset: number, candidateLength: number) {  const floorLog = floorLog2Map.get(candidateLength)!;  const ceilLog = ceilLog2Map.get(candidateLength)!;  const last = 2 ** floorLog;  const beyond = candidateLength - last;  const [number, offset] = readBits(array, bitsOffset, floorLog);  if (floorLog === ceilLog || number < last - beyond) {    return [number, offset];  }  const [current, offset2] = readBits(array, offset, 1);  if (current) {    return [number + beyond, offset2];  }  return [number, offset2];}

這里decode規則,是按照上面算法解析的。先讀取floorLog位,如果總位置數就是2的次方,則結束。如果讀取到的數比較小,也結束。如果讀取到的數超過某個臨界值,就需要多讀取一位,決定它代表誰。

結論

方案三可以實現,并且比方案一節約了35%-45%的空間。

關于性能:編碼、解碼邏輯全都位于用戶瀏覽器中執行,對服務器無影響,瀏覽器也會在人感知不到的耗時內運算完。

有什么用?

我在開發《象棋》時,期望通過URL來分享棋局。我希望分享的URL能永久有效,而且不喜歡給服務器太多債務(不采用token+數據庫存儲棋盤信息)。那么URL中必須包含完整的棋盤信息。

如果把棋盤信息存到URL中,那么URL越短,越好。

例如:game.hullqin.cn/xq?p=gSQCL5P5oIDhCFJCIBJ4eQCAkX8&r=86pU6-4nbSh38OCojLarcupWOb1rXw&s=1 ,點開后就能立馬展現某場對局。

這個URL里,保存了棋盤所有棋子信息、所有歷史記錄(10個回合即20步)。方便大家保存、分享。

保存歷史記錄,也是通過類似的手段實現的,占用空間非常小(長度兩百的字符串,足夠存儲大部分常規對局的歷史記錄)。

歡迎觀看 【可以「旋轉棋盤」的聯機象棋】 - 嗶哩嗶哩

寫在最后

我是HullQin,公眾號線下聚會游戲的作者(歡迎關注我,交個朋友)。轉發本文前需獲得作者HullQin授權。我獨立開發了《聯機桌游合集》,是個網頁,可以很方便的跟朋友聯機玩UNO、飛行棋、斗地主、五子棋、一夜狼、狼人殺、象棋、德國心臟病、達芬奇密碼等游戲,不收費無廣告。還開發了《Dice Crush》參加Game Jam 2022。喜歡可以關注我噢~我有空了會分享做游戲的相關技術,會在這個專欄里分享:《教你做小游戲》。

關鍵詞:

相關閱讀
分享到:
版權和免責申明

凡注有"環球傳媒網 - 環球資訊網 - 環球生活門戶"或電頭為"環球傳媒網 - 環球資訊網 - 環球生活門戶"的稿件,均為環球傳媒網 - 環球資訊網 - 環球生活門戶獨家版權所有,未經許可不得轉載或鏡像;授權轉載必須注明來源為"環球傳媒網 - 環球資訊網 - 環球生活門戶",并保留"環球傳媒網 - 環球資訊網 - 環球生活門戶"的電頭。

主站蜘蛛池模板: 亚洲精品一卡二卡 | 国产粉嫩尤物极品99综合精品 | 欧美日韩在线视频一区二区 | 91精品国产综合久久久蜜臀 | 91精品国产综合久久福利不卡 | 天天澡天天狠天干天 | 日韩中文无 | 无码高潮少妇毛多水多水 | 国产中文字字幕乱码无限 | 伊人98| 清纯粉嫩极品夜夜嗨av | 一区二区乱子伦在线播放 | 欧美大片免费观看网址 | 国产美女mm131爽爽爽免费 | 欧美一级久久 | 国产视频一区二区三区四区五区 | 久久爽久久爽久久免费观看 | 深夜成人在线观看 | 97人人做人人添人人爱 | 久久久久爱 | 国产精品久久久av久久久 | 亚洲欧美一区二区爽爽爽 | 亚洲国产精品激情在线观看 | 亚洲精品资源 | 性疯狂做受xxxx高清视频 | 中文字幕av日韩精品一区二区 | 国产精品久久久久久婷婷不卡 | 成人动漫综合网 | 免费久久 | 欧美大片a | 亚洲最大成人综合网 | 免费黄色特级片 | 国产成人精品一区二区在线小狼 | 久久久久久久久久久中文字幕 | av天堂亚洲国产av | 久久精品欧美一区二区 | 亚洲精品一品区二品区三品区 | 欧美日韩网址 | 久久久av男人的天堂 | 99在线免费观看视频 | 国产亚洲欧美日韩精品一区二区三区 | 丁香桃色午夜亚洲一区二区三区 | 午夜视频在线播放 | 国产精品户外野外 | 天干夜天干夜天天免费视频 | 日日久 | 天天色综| 4438xx亚洲最大五色丁香软件 | 国产女高清在线看免费观看 | 天堂网亚洲 | 亚洲欧洲中文日韩久久av乱码 | 日本熟妇色一本在线视频 | 日韩亚洲欧美一区二区 | 性v天堂| 五月精品在线 | 无码专区—va亚洲v天堂麻豆 | 白嫩少妇各种bbwbbw | 少妇饥渴偷公乱第28章 | 女同另类之国产女同 | 99pao成人国产永久免费视频 | 深夜福利免费观看 | 色播激情网 | 欧美又大又硬又粗bbbbb影院 | 日韩国产一区二区三区四区五区 | 成人小视频在线看 | 97国产婷婷综合在线视频 | 国产真实伦在线视频 | 国精产品乱码视频一区二区 | 初高中福利视频网站 | 国产男女爽爽爽免费视频 | 国产精品久久久久久久久久久痴汉 | 免费99精品国产自在在线 | 婷婷四房综合激情五月在线 | 天天摸夜夜 | 国产97在线 | 中文 | 交换一区二区三区va在线 | 第一章豪妇荡乳黄淑珍 | 日韩一级在线观看视频 | 国产成a人亚洲精品无码久久网 | 天天干天天草天天 | 欧美久草视频 | 亚洲va欧美va人人爽午夜 | 亚洲元码 | 国产精品www色诱视频 | 涩涩一区 | 免费欧美 | 日韩高清影视 | 老熟女重囗味hdxx69 | 四虎成人网| 国产成人18黄网站 | 精品久久久久久中文字幕大豆网 | 亚洲国产网站 | 最近的中文字幕 | 古风h啪肉h文 | 成人性生活免费视频 | 日韩中文在线观看 | 欧美日韩少妇精品 | 欧美人与性动交ccoo | 欧美性久久| 国产精品日本一区二区在线播放 | 日本三级吃奶头添泬无码苍井空 | 国产综合激情 | 亚洲男人影院 | 国产人成免费爽爽爽视频 | 黄色理论片 | 日本丰满少妇裸体自慰 | 老司机午夜精品 | 成人在线视频一区二区三区 | 精品中出 | 亚洲第一福利网站 | 非洲黑妞xxxxhd精品 | 国产麻豆乱码精品一区二区三区 | 欧美日本韩国亚洲 | 无码人妻丰满熟妇啪啪网站 | 国产看黄网站又黄又爽又色 | 国产呻吟久久久久久久92 | 久久久久久久久久久久久久久久久久久 | 欧美在线一 | 午夜av影院| 国产边摸边吃奶边做爽视频 | 国产乱妇无乱码大黄aa片 | 日韩字幕 | 久久99精品一区二区蜜桃臀 | 亚洲成人av片 | 丰满少妇被猛烈进入高清播放 | 377p日本欧洲亚洲大胆张筱雨 | 亚洲爆乳无码专区www | 国产一级二级三级在线 | 中字幕人妻一区二区三区 | 狠狠色综合tv久久久久久 | 亚洲国产成人极品综合 | 欧美日本韩国亚洲 | 噜噜噜久久亚洲精品国产品麻豆 | 男女性潮高清免费网站 | 久久黄色精品视频 | 大色综合色综合网站 | 一级片a级片 | 亚洲精品国产一区二区 | 日本a v在线播放 | 极品久久| 本色视频aaaaaa一级网站 | 久久这里只有精品首页 | 风间由美av在线 | 天堂久久天堂av色综合 | www超碰| 国产成人精品综合久久久久 | 一区二区观看 | 噜噜噜久久亚洲精品国产品 | 奶头挺立呻吟高潮视频 | 女人浣肠av大片 | 男女交性全过程3d | 国产精品视频免费播放 | 不卡国产视频 | 女人爽到高潮免费视频大全 | 一区二区三区精品视频 | 久久久精品区 | 久久久久999 | 亚洲一区二区三区四区在线 | 亚洲第一成人区av桥本有菜 | 一本一生久久a久久精品综合蜜 | 日本大尺度吃奶做爰久久久绯色 | 秋霞影院一区二区三区 | 岛国福利视频 | 色版视频 | 国产精品久久久久久影院8一贰佰 | 色嗨嗨av一区二区三区 | 久久精品亚洲中文字幕无码网站 | 一区二区三区小说 | 91免费视频大全 | 亚洲国产a∨无码中文777 | 无码人妻久久一区二区三区不卡 | 日韩成人精品视频 | 久久精品免费一区二区三区 | 青草视频免费看 | 日本人妻伦在线中文字幕 | 三级久久 | 99riav6国产情侣在线看 | www夜夜操com| 亚洲涩视频 | 狠狠色狠狠色合久久伊人 | 欧美性白人极品hd | 少妇高潮久久久久久一代女皇 | 人善交类欧美重口另类 | 黄色亚洲视频 | 88av网站 | 日本国产在线播放 | 亚洲社区在线 | 波多野结衣久久久久 | 日本一区二区在线免费观看 | 女人夜夜春高潮爽a∨片传媒 | av男人的天堂在线观看国产 | 中文字幕少妇在线三级hd | 黄色激情视频网站 | 夜夜夜操| av片在线观看免费 | 亚洲国产精品久久久久爰色欲 | 精品少妇人妻av一区二区 | 国产日本欧美在线 | 日韩美女爱爱 | 亚洲欧洲视频 | 精品综合久久 | 日本一道高清一区二区三区 | 欧美日韩综合在线观看 | 亚洲色精品三区二区一区 | 亚洲日韩在线观看免费视频 | 国产精品黑色高跟鞋丝袜 | 好紧好爽好湿别拔出来视频男男 | 日韩毛片儿 | 污污网站在线 | 偷窥 国产 综合 | 99精品国产一区 | 99精品国产一区二区三区不卡 | 免费观看成人在线视频 | 欧美激情一区二区 | 中文字幕+乱码+中文乱 | 俺来也俺来啦awww官网 | 亚洲视屏在线 | 五月婷婷免费视频 | 君岛美绪在线 | 色婷婷18| 久久久国产一区二区三区四区小说 | 第一福利在线观看 | 一级特黄色大片 | 国产无套粉嫩白浆内精品 | lutu成人福利在线观看 | 成年人视频免费在线观看 | 日本一区二区三区在线观看视频 | 亚洲 日韩 欧美 成人 在线观看 | 少妇4p| 色屁屁xxxxⅹ在线视频 | 欧美日韩a级片 | 91精品一区二区三区在线观看 | 国产精品精华液网站 | 欧美一级淫片免费视频魅影视频 | 色噜噜狠狠成人中文 | 最近在线更新8中文字幕免费 | 男人午夜剧场 | 国产对白videos麻豆高潮 | 国产精品日日摸夜夜添夜夜av | 亚洲视频手机在线观看 | 亚洲欧美日韩人成在线播放 | 亚洲最新av在线 | 再深点灬舒服灬大了添片在线 | 妇挑战三黑人4p日本中文字幕 | 国产在线毛片 | 精品国产毛片 | 亚洲线精品一区二区三区影音先锋 | 欧美老熟妇牲交 | 亚洲精品www久久久久久 | 牛和人交xxxx欧美 | 亚洲精品综合欧美二区变态 | jizz欧美大片 | 亚洲精品天堂久久久老牛 | 日本欧美在线 | 精品国产乱码久久久久久免费 | 117美女写真午夜一级 | 公妇乱淫中文字幕 | 国产日韩欧美一区二区 | 亚洲精品第一区二区三区 | 综合久久久久久久 | 日韩欧美一区二区在线 | 精品国产乱码一区二 | 可以免费看的av毛片 | 涩爱av天天爱天天做夜夜爽 | 少妇做爰免费视看片 | 亚洲欧洲精品成人久久奇米网 | 国产三区在线播放 | 99久久国产宗和精品1上映 | 国产情侣自拍av | 懂色av一区二区三区在线播放 | www.久久爱.cn | 久久er热在这里只有精品66 | 情侣黄网站免费看 | 九色丨porny丨肥臀 | 久久亚洲婷婷 | 国产一级特黄aa大片出来精子 | 欧美精品久久久久久久久老牛影院 | 高潮毛片无遮挡高清免费视频网站 | 极品白嫩丰满少妇无套 | 亚洲第一免费视频 | 国产精品久久婷婷六月丁香 | 狠狠色综合网站久久久久久久 | 国产一区二区免费在线 | 国产精品一二三 | 精品va久久久噜噜久久软件 | 色窝窝无码一区二区三区色欲 | 中文字幕乱码亚洲无线码按摩 | 91极品美女 | 蜜臀av色欲a片无码精品一区 | 国产三级黄色 | 国产精品综合av一区二区国产馆 | 大乳三级a做爰大乳 | 国产欧美亚洲精品第一区软件 | 97超碰中文字幕 | 国产人妻鲁鲁一区二区 | 国产在线拍偷自揄拍无码 | 色婷婷综合成人av | 热热99| 91网视频| 男女啪啪做爰高潮免费网站 | 蜜桃成人av | 内射中出日韩无国产剧情 | 成人免费在线看片 | 婷婷六月网 | 伊人春色在线观看 | a点w片| 亚洲乱亚洲乱 | 欧美日韩精品一区二区三区 | 校园春色亚洲激情 | 人人爽日日躁夜夜躁尤物 | 欧美你懂的| 国产精品久久久久久久 | a在线观看免费 | 丰满少妇夜夜爽爽高潮水网站 | 男女做爰猛烈啪啪吃奶动床戏麻豆 | 中文字幕乱码免费 | av理伦片 | 成年人看的黄色 | 日日夜夜伊人 | 日韩精品三区 | 国产高清视频一区 | 国产日比视频 | 少妇性bbb搡bbb爽爽爽欧美 | 99精品国产在热久久 | 天天躁日日躁狠狠躁人妻 | 日本精品久久久久中文字幕 | 欧美午夜精品久久久久久浪潮 | 成年女人永久免费观看视频 | 亚洲熟妇无码一区二区三区 | 农村一级毛片 | 一区二区三区精彩视频 | 国产成人免费看一级大黄 | 久久人妻精品白浆国产 | 极品福利在线 | 国产真实交换配乱淫视频, 国产真实精品久久二三区 国产真实乱免费高清视频 国产制服丝袜一区 | 91麻豆自制传媒国产之光 | 国产精品自在线拍国产手机版 | 欧美国产成人精品 | 先锋资源久久 | 国产69精品久久久久999小说 | 国产av一区二区精品久久凹凸 | av在线资源网 | 先锋影音人妻啪啪va资源网站 | 饥渴放荡受np公车奶牛 | 日韩激情在线 | 亚洲黄色在线播放 | 欧美疯狂性受xxxxx喷水 | 日韩免费无码一区二区三区 | 国产精品污www在线观看17c | 水蜜桃无码视频在线观看 | 中国老妇荡对白正在播放 | 国产精品久久久久久久av | 国产精华7777777 | 久久成熟 | 少妇无码av无码一区 | 韩国性生交大片免费观看视频 | 自拍偷拍第 | 日韩操比 | 国产人妻人伦精品1国产 | 麻豆精品国产传媒 | 2022亚洲无砖无线码天媒 | 欧美激情专区 | 久久婷婷成人综合色 | 无遮挡啪啪摇乳动态图gif | 97无人区码一码二码三码 | 7色av| 日韩一区二区三区欧美 | 伊人一道本 | 中文字幕在线视频免费观看 | 99热这里只有精品8 99热这里只有精品在线观看 | 国产在线视欧美亚综合 | 色偷偷五月天 | 征服少妇柔佳系列 | 秋霞网av| 中文字幕在线观看网站 | 天天躁日日躁狠狠躁av | 爆操欧美 | 二个男人躁我一个视频 | 999精品视频在线观看 | 亚洲午夜精品久久久久久 | 无码午夜福利片 | 一级v片 | 国产女人被狂躁到高潮小说 | 日本一级大黄毛片基地 | 日韩三级在线播放 | 国产女同疯狂作爱系列11 | 另类色综合 | 北条麻妃一区二区三区在线 | 国产精品一区不卡 | 精品亚洲欧美无人区乱码 | 精品久久视频 | 性一交一乱一乱一乱视频 | 国产欧美一区二区精品97 | 日本妇人成熟免费 | 中文字幕制服诱惑 | 成年人黄色免费网站 | 西西人体www大胆高清 | 一区二区三区无码免费看 | 91成人在线观看喷潮 | 99热香蕉| 国产成人精品午夜2022 | 免费无码又爽又刺激高潮的视频 | 久久香蕉网| 欧美牲交videossexeso欧美 | 久草欧美视频 | 欧美体内谢she精2性欧美 | 久久久久久精 | 国产成人av综合色 | 日本欧美大码aⅴ在线播放 中文人妻无码一区二区三区在线 | 久久精品一二三 | 色婷婷88av视频一二三区 | 亚洲精品国产精品乱码在线观看 | 日韩欧美国产片 | 理论片黄色 | 亚洲人成电影网站在线观看 | 无码免费中文字幕视频 | 亚洲日韩在线中文字幕综合 | 毛片网站免费 | 欧美成人看片一区二区三区尤物 | 伊人蕉影院久亚洲高清 | 国产一区二区三区久久精品 | 吃奶揉捏奶头高潮视频在线观看 | 亚洲精品456在线播放牛牛影院 | 波多野结衣绝顶大高潮 | 在线观看小视频 | 久久亚洲一区二区三区成人国产 | 欧美一区久久久 | 国产精品午夜在线 | 国产情侣偷国语对白 | 欧美在线brazzers免费视频 | 午夜无码片在线观看影院 | www.狠狠插| 人妻精品国产一区二区 | 懂色av一区二区三区免费看 | 国产精品一区二区三区四区五区 | 魔性诱惑 | 99国产精品99久久久久久娜娜 | 亚洲天堂网在线观看视频 | av大全网站| 国产自产c区 | 国产精品成人在线 | 中字幕视频在线永久在线观看免费 | 最近中文字幕日本 | 麻豆成人91精品二区三区 | www亚洲在线| 亚洲成av人片在线观看 | 99在线看| 国产精品天干天干 | 成人网站免费观看 | 成年女人免费视频播放体验区 | 国产乱人伦中文无无码视频试看 | 久草免费福利视频 | 天堂国产永久综合人亚洲欧美 | 在线观看视频www | 一区二区三区四区日韩 | 国产裸体永久免费视频网站 | 欧美婷婷六月丁香综合色 | 人人草人人澡 | 人人射人人澡 | 日本不卡一区二区三区 | 免费在线国产视频 | 狠狠干免费视频 | 再深点灬舒服灬大了添片在线 | 欧美性视频一区二区三区 | 亚洲丝袜色图 | 国产美女无遮挡免费软件 | 国产午夜性爽视频男人的天堂 | 农村末发育av片四区五区 | 天干天干天啪啪夜爽爽99 | 精品国产一区在线 | 久久久久久无码午夜精品直播 | 台湾a级艳片潘金莲 | 全部免费的毛片在线播放 | 国产精品久久久久9999爆乳 | 国产成人在线观看免费网站 | 久久精品国产亚洲一区二区 | 欧美性猛交xxxx乱大交游戏 | 久久精品国产免费看久久精品 | 色麻豆国产原创av色哟哟 | 神马老子午夜 | av网站免费线看 | 在线观看免费的av | 狠狠搞狠狠干 | 淫片网站 | 免费成人黄色片 | 国产视频你懂得 | 久久久在线 | 国产精品免费一区二区三区四区 | 国产成人愉拍精品久久 | 中文字幕第3页 | 欧美一级黄色片网站 | 日韩精品一区二区三区蜜臀 | 调教大乳女仆喷奶水 | 国产欧美日韩中文字幕 | 欧美成人免费观看 | 亚洲春色www| 狠狠做深爱婷婷久久综合一区 | 国产精品无遮挡 | 国产又黄又爽又色的免费视频白丝 | 97超碰自拍 | 国产无遮挡又黄又爽在线视频 | 国产 日韩 欧美 成人 | 亚洲天堂网站在线 | 国产深夜福利视频在线 | 久久一级片视频 | 在线免费福利 | www.麻豆av.com | 免费看黄色a级片 | 欧美18av | 麻花豆传媒剧国产免费mv在线 | 在线播放五十路熟妇 | 精品av天堂毛片久久久借种 | 星铁乱淫h侵犯h文 | 国产精品综合久久久久久 | 人人cao| av中出| 桥本有菜aⅴ一区二区三区 桥本有菜免费av一区二区三区 | 久久网免费视频 | 99国产精品无码 | av在线收看 | 日韩精品视频一区二区三区 | 亚洲熟妇少妇任你躁在线观看无码 | 成人免费无码大片a毛片抽搐 | 99精品欧美 | www婷婷av久久久影片 | a级毛片蜜桃成熟时2在线播放 | 亚洲成av人片在线播放无码 | 亚洲视频456 | 国产一级黄色录像 | 国产无人区码一码二码三mba | 亚洲国产成人精品久久 | 99国产精品久久久久99打野战 | 影音先锋在线中文字幕 | 国产色无码专区在线观看 | 午夜男人天堂 | 中文字幕乱码熟妇五十中出 | 亚洲蜜桃v妇女 | 欧美一区二区三区喷汁尤物 | 私人毛片免费高清影视院 | 69堂国产成人免费视频 | 毛片黄色视频 | 宅男的天堂 | 巨胸喷奶水视频www 午夜无码国产理论在线 | 成人福利网址 | 超碰人人人人人人人 | 日韩一级片| 亚洲精品乱码久久久久久麻豆不卡 | 欧美成人午夜精品久久久 | 天堂av国产夫妇精品自在线 | 中文字幕+乱码+中文字幕一区 | 一级做a爰片性色毛片99高清 | 992tv在线影院 | 国产精品96久久久久久久 | 美女av网| 亚洲香蕉网站 | 成人国产片女人爽到高潮 | 午夜激情婷婷 | 亚洲性在线观看 | 在线观看免费一区 | 成熟丰满熟妇av无码区 | 蜜桃av在线免费观看 | 国产内谢 | а√新版天堂资源中文8 | 福利在线免费观看 | 福利资源在线 | 精品无码国产污污污免费 | 插我一区二区在线观看 | 美女狂揉羞羞的视频 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 欧美日韩免费观看视频 | 国产精品入口免费视 | 一色桃子av大全在线播放 | 国产911在线观看 | 久久亚洲国产成人精品性色 | 人成免费在线视频 | 欧美日韩不卡一区二区 | av播放在线| 国产无遮挡又黄又爽免费软件 | av不卡国产在线观看 | 久久久a级片 | 呦交小u女精品视频 | 91社区在线观看高清 | 一区二区中文字幕在线 | 成人一区av偷拍 | 明星性猛交ⅹxxx乱大交 | 免费国产又色又爽又黄的网站 | 日韩欧美一二三区 | 亚洲成在人线在线播放 | 99久久国产综合精品麻豆 | 一区二区观看 | 96成人爽a毛片一区二区 | 亚洲欧洲日产国码二区 | 一级黄色美女 | 深爱激情综合网 | 国产洗浴女技师全套av | 一本色道久久综合亚洲精品婷婷 | 国产日韩成人 | 欧美精品一区二区在线观看 | 色噜噜狠狠狠综合曰曰曰 | 亚洲一区日韩 | 欧美另类极品videosbest使用方法 | 性欧美亚洲xxxx乳在线观看 | 日本少妇一区二区 | 日本精品视频 | 色啦啦视频| 中文字幕 欧美激情 | 欧美成在线 | av网站大全免费 | 蜜桃麻豆www久久囤产精品 | av播播 | 18色av | √天堂资源网最新版在线 | 91激情在线视频 | 欧美精品在线观看 | 国产精品精华液网站 |