日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

C++ Qt 黑白棋實(shí)戰(zhàn):從棋盤邏輯到AI搜索的完整工程解析

C++ Qt 黑白棋實(shí)戰(zhàn):從棋盤邏輯到AI搜索的完整工程解析 簡介這是一份面向C與Qt初學(xué)者的黑白棋完整項(xiàng)目源碼適合想通過小游戲?qū)嵺`GUI開發(fā)、鞏固算法與數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)者。壓縮包共28個(gè)文件約1.12MB以cpp源文件、h頭文件、o目標(biāo)文件為主另含pro工程文件、ui界面文件、Makefile及可執(zhí)行程序覆蓋從工程配置到編譯產(chǎn)物的完整鏈路。已有364人學(xué)習(xí)下載。代碼圍繞8×8棋盤展開包含合法落子判斷、橫豎斜方向棋子翻轉(zhuǎn)與連鎖反應(yīng)處理、游戲結(jié)束判定等核心邏輯并借助QGraphicsView等類實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊交互與界面信息展示還涉及存檔加載的序列化思路和基于最小-最大搜索加Alpha-Beta剪枝的AI設(shè)計(jì)。讀者可據(jù)此理解Qt信號槽與事件響應(yīng)機(jī)制掌握棋盤狀態(tài)更新與界面刷新配合方式并參考工程結(jié)構(gòu)自行擴(kuò)展動畫、計(jì)分或單人模式是銜接C語法與桌面應(yīng)用開發(fā)的實(shí)踐素材。1. 一個(gè)棋盤類項(xiàng)目為什么值得拿來練手很多人第一次接觸 Qt 是從計(jì)算器、記事本這類界面 Demo 開始的控件擺一擺、信號槽連一連跑起來就完事了。但真到要寫一個(gè)能玩、能判斷勝負(fù)、還要有 AI 對手的完整小游戲時(shí)問題就全冒出來了棋盤狀態(tài)怎么存、落子合法性怎么判、翻轉(zhuǎn)邏輯寫在哪一層、界面和規(guī)則怎么解耦。黑白棋Reversi恰好是個(gè)體量剛好的靶子——規(guī)則不復(fù)雜但足夠把「數(shù)據(jù)模型 規(guī)則引擎 界面渲染 搜索算法」這條鏈路完整走一遍。這份 C Qt 的黑白棋工程適合兩類人一類是剛學(xué)完 C 語法、想找個(gè)能跑起來的完整項(xiàng)目練手的另一類是寫過界面但沒系統(tǒng)做過游戲狀態(tài)管理的想看看別人怎么把棋盤邏輯和 Qt 控件拆開。下面我按「能干什么 → 怎么跑 → 代碼怎么組織 → 怎么改」的順序把這個(gè)工程拆開講。2. 環(huán)境準(zhǔn)備與首次編譯從零把工程跑起來2.1 工具鏈選型與版本對齊這個(gè)工程是標(biāo)準(zhǔn)的 Qt Widgets 項(xiàng)目核心依賴只有 Qt 本身沒有引入第三方庫所以環(huán)境準(zhǔn)備的重點(diǎn)是「Qt 版本 編譯器」這一對組合別錯(cuò)配。常見做法是用 Qt 5.15 或 Qt 6.x 的 LTS 版本配套 MinGWWindows或系統(tǒng)自帶的 GCC/ClangLinux、macOS。Qt 6 之后部分 API 有調(diào)整比如QString的一些隱式轉(zhuǎn)換被收緊如果工程是按 Qt 5 寫的直接拿 Qt 6 編譯可能會在字符串拼接處報(bào)錯(cuò)這時(shí)候要么降版本要么按報(bào)錯(cuò)逐處補(bǔ)QStringLiteral。工程文件一般是.pro形式用 qmake 構(gòu)建。打開后先確認(rèn)QT 那一行有沒有把widgets帶上純界面項(xiàng)目漏了這行會在鏈接階段報(bào)一堆找不到QWidget的符號。我一般習(xí)慣先不急著改代碼原樣編譯一次看能不能出可執(zhí)行文件能出再談改造出不來就先解決環(huán)境。# 用 qmake 生成 Makefile 并編譯Linux/macOS 下 qmake Reversi.pro make -j4 # Windows MinGW 環(huán)境下通常是 qmake Reversi.pro mingw32-make -j4上面命令里-j4是并行編譯的核數(shù)機(jī)器好可以開到 8。qmake負(fù)責(zé)讀.pro生成平臺相關(guān)的構(gòu)建腳本make才是真正編譯。如果qmake這一步就報(bào)「找不到 Qt 安裝」說明 Qt 的 bin 目錄沒進(jìn) PATH或者該用 Qt 自帶的命令行終端Qt Creator 里那個(gè)「Qt 5.x MinGW Terminal」來執(zhí)行。2.2 用 Qt Creator 打開與運(yùn)行配置不想折騰命令行的話直接用 Qt Creator 打開.pro文件最省事。打開后左側(cè)「項(xiàng)目」面板會讓你選 Kit這里要選和你安裝的 Qt 版本一致的那個(gè) Kit選錯(cuò)了會出現(xiàn)「編譯通過但運(yùn)行閃退」或者「找不到平臺插件」的經(jīng)典問題。選好 Kit 后按 CtrlR 運(yùn)行第一次運(yùn)行如果彈窗提示缺少Q(mào)t5Core.dll之類是因?yàn)閯討B(tài)庫沒在可執(zhí)行文件旁邊Qt Creator 運(yùn)行時(shí)會自動處理但你要是把 exe 單獨(dú)拷出去雙擊就得用windeployqt把依賴拷齊。# 把 exe 拷到空目錄后用 windeployqt 補(bǔ)齊運(yùn)行依賴 windeployqt Reversi.exewindeployqt會掃描 exe 的導(dǎo)入表把需要的 Qt DLL、平臺插件platforms/qwindows.dll一并復(fù)制過來。這一步是 Windows 下分發(fā) Qt 程序的標(biāo)配漏了平臺插件程序啟動會直接報(bào)「This application failed to start because no Qt platform plugin could be initialized」。2.3 首次運(yùn)行該看到什么編譯成功后運(yùn)行正常應(yīng)該出現(xiàn)一個(gè)固定大小的棋盤窗口8×8 的格子初始四顆棋子擺在中央呈交叉狀黑棋先行。鼠標(biāo)懸?;螯c(diǎn)擊空格子時(shí)如果該位置合法應(yīng)該有落子反饋不合法則無反應(yīng)或提示。如果窗口出來了但棋盤是空白多半是paintEvent里沒觸發(fā)重繪或者棋盤數(shù)據(jù)初始化沒跑如果點(diǎn)擊沒反應(yīng)先查信號槽有沒有連上再查落子合法性判斷是不是把所有位置都判成了非法。這兩類問題在下面排查章節(jié)會展開。3. 工程結(jié)構(gòu)拆解棋盤數(shù)據(jù)、規(guī)則引擎與界面如何分層3.1 目錄與類的職責(zé)劃分這類 Qt 小游戲工程結(jié)構(gòu)上通常分三塊界面層主窗口、棋盤控件、規(guī)則層棋盤狀態(tài)、落子與翻轉(zhuǎn)計(jì)算、AI 層搜索與評估。目錄大致長這樣Reversi/ ├── Reversi.pro # qmake 工程文件 ├── main.cpp # 程序入口創(chuàng)建 QApplication 和主窗口 ├── mainwindow.h/.cpp # 主窗口菜單、狀態(tài)欄、棋盤控件容器 ├── boardwidget.h/.cpp # 棋盤控件繪制、鼠標(biāo)事件、坐標(biāo)換算 ├── board.h/.cpp # 棋盤數(shù)據(jù)模型8x8 狀態(tài)、落子、翻轉(zhuǎn)、勝負(fù)判斷 └── aiplayer.h/.cpp # AI 對手合法走法枚舉、極小化極大搜索、評估函數(shù)職責(zé)上Board是純邏輯類不依賴任何 Qt 界面頭文件只用一個(gè)二維數(shù)組或std::arraystd::arrayint,8,8存狀態(tài)0 表示空、1 表示黑、2 表示白。BoardWidget繼承QWidget負(fù)責(zé)把Board的狀態(tài)畫出來并把鼠標(biāo)點(diǎn)擊換算成行列坐標(biāo)交給Board處理。MainWindow負(fù)責(zé)把兩者拼起來管回合切換和狀態(tài)欄文字。這種「邏輯不碰界面」的分層是這類項(xiàng)目最值得學(xué)的地方后面加 AI、加悔棋、加存檔都靠它。3.2 棋盤狀態(tài)的數(shù)據(jù)結(jié)構(gòu)棋盤狀態(tài)用定長二維數(shù)組最直接8×8 一共 64 格不需要動態(tài)擴(kuò)容。用int存每格狀態(tài)比用enum class在數(shù)組下標(biāo)訪問時(shí)少一層轉(zhuǎn)換寫起來順手。關(guān)鍵是要把「當(dāng)前輪到誰」也作為狀態(tài)的一部分否則每次判斷都得從外部傳進(jìn)來容易漏。// board.h #pragma once #include array class Board { public: static constexpr int SIZE 8; enum Cell { Empty 0, Black 1, White 2 }; Board(); void reset(); // 重置為初始四子局面 bool isValidMove(int row, int col, int player) const; bool applyMove(int row, int col, int player); // 落子并翻轉(zhuǎn)非法返回 false int countPieces(int player) const; // 統(tǒng)計(jì)某方棋子數(shù) bool hasAnyValidMove(int player) const; // 是否還有合法走法 int cellAt(int row, int col) const { return grid_[row][col]; } private: std::arraystd::arrayint, SIZE, SIZE grid_{}; int flipCount(int row, int col, int player, int dr, int dc) const; };grid_用std::array而不是裸數(shù)組好處是能直接值拷貝、能拿到size()調(diào)試時(shí)也更好看。Cell枚舉定義在類內(nèi)外部用Board::Black引用避免全局命名污染。flipCount是私有輔助函數(shù)給定方向和起點(diǎn)數(shù)一數(shù)這個(gè)方向能翻幾顆落子合法性判斷和實(shí)際翻轉(zhuǎn)都復(fù)用它避免兩處邏輯寫岔。3.3 落子合法性判斷與八方向翻轉(zhuǎn)黑白棋的核心規(guī)則就一條落子后從落子點(diǎn)出發(fā)沿八個(gè)方向只要某一方向上出現(xiàn)「連續(xù)對方棋子 己方棋子」的結(jié)構(gòu)中間那些對方棋子全部翻成己方。合法性判斷就是「至少有一個(gè)方向能翻」。這段邏輯寫錯(cuò)整個(gè)游戲就沒法玩所以值得逐行看。// board.cpp節(jié)選 int Board::flipCount(int row, int col, int player, int dr, int dc) const { int opponent (player Black) ? White : Black; int r row dr, c col dc, count 0; while (r 0 r SIZE c 0 c SIZE grid_[r][c] opponent) { count; r dr; c dc; } // 必須越過對方棋子后落在己方棋子上才算有效 if (count 0 r 0 r SIZE c 0 c SIZE grid_[r][c] player) return count; return 0; } bool Board::isValidMove(int row, int col, int player) const { if (row 0 || row SIZE || col 0 || col SIZE) return false; if (grid_[row][col] ! Empty) return false; static const int dirs[8][2] {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}}; for (auto d : dirs) if (flipCount(row, col, player, d[0], d[1]) 0) return true; return false; }flipCount的循環(huán)條件是「在界內(nèi)且是對方棋子」一旦碰到空或己方就停。停下來的位置如果正好是己方棋子且中間至少翻了一顆count 0這個(gè)方向才有效。注意邊界判斷要寫在循環(huán)條件里不能等越界了再補(bǔ)否則數(shù)組下標(biāo)會越界讀。dirs數(shù)組把八個(gè)方向一次性列出來比寫八段重復(fù)代碼清爽得多這也是這類棋盤游戲最常見的寫法。applyMove在確認(rèn)合法后對每個(gè)有效方向再走一遍翻轉(zhuǎn)把中間棋子改色。這里有個(gè)容易翻車的點(diǎn)翻轉(zhuǎn)必須基于「落子前」的狀態(tài)判斷方向有效性不能邊翻邊判否則剛翻過去的棋子會影響后續(xù)方向判斷。穩(wěn)妥做法是先收集所有要翻的坐標(biāo)最后統(tǒng)一改。3.4 界面繪制與鼠標(biāo)坐標(biāo)換算BoardWidget的paintEvent負(fù)責(zé)畫格子和棋子mousePressEvent負(fù)責(zé)把像素坐標(biāo)換算成行列。棋盤一般畫成正方形格子邊長 控件寬度 / 8坐標(biāo)換算就是整除。// boardwidget.cpp節(jié)選 void BoardWidget::paintEvent(QPaintEvent*) { QPainter p(this); int cell qMin(width(), height()) / Board::SIZE; for (int r 0; r Board::SIZE; r) for (int c 0; c Board::SIZE; c) { QRect rect(c * cell, r * cell, cell, cell); p.fillRect(rect, QColor(34, 139, 34)); // 棋盤綠底 p.setPen(Qt::black); p.drawRect(rect); int v board_-cellAt(r, c); if (v ! Board::Empty) { p.setBrush(v Board::Black ? Qt::black : Qt::white); p.drawEllipse(rect.adjusted(4, 4, -4, -4)); // 留邊距畫圓 } } } void BoardWidget::mousePressEvent(QMouseEvent* e) { int cell qMin(width(), height()) / Board::SIZE; int c e-pos().x() / cell; int r e-pos().y() / cell; emit cellClicked(r, c); // 交給主窗口處理回合與合法性 }rect.adjusted(4,4,-4,-4)是給棋子留邊距不然圓會貼著格子邊視覺上很擠。cellClicked用信號拋出去而不是在控件里直接改棋盤這樣控件只負(fù)責(zé)「報(bào)告點(diǎn)了哪」回合切換、AI 響應(yīng)都放在主窗口職責(zé)清晰。qMin(width(), height())保證控件被拉成非正方形時(shí)棋盤仍然按短邊算不會畫歪。4. AI 對手與搜索讓機(jī)器會下棋的那幾十行4.1 合法走法枚舉與評估函數(shù)AI 的第一步是把當(dāng)前局面下所有合法走法列出來這一步直接復(fù)用Board::isValidMove遍歷 64 格即可。第二步是給每個(gè)走法打分最樸素的是「棋子數(shù)差」但黑白棋里棋子多不一定是好事角位價(jià)值極高、邊位次之、靠近角的星位是陷阱。常見做法是給每個(gè)格子一個(gè)權(quán)重落子得分 權(quán)重 翻轉(zhuǎn)收益。// aiplayer.cpp節(jié)選 static const int WEIGHT[8][8] { { 100, -20, 10, 5, 5, 10, -20, 100}, { -20, -50, -2, -2, -2, -2, -50, -20}, { 10, -2, 1, 1, 1, 1, -2, 10}, { 5, -2, 1, 1, 1, 1, -2, 5}, { 5, -2, 1, 1, 1, 1, -2, 5}, { 10, -2, 1, 1, 1, 1, -2, 10}, { -20, -50, -2, -2, -2, -2, -50, -20}, { 100, -20, 10, 5, 5, 10, -20, 100} }; int AI::evaluate(const Board b, int player) const { int score 0; for (int r 0; r Board::SIZE; r) for (int c 0; c Board::SIZE; c) { int v b.cellAt(r, c); if (v player) score WEIGHT[r][c]; else if (v ! Board::Empty) score - WEIGHT[r][c]; } return score; }權(quán)重表里四個(gè)角是 100因?yàn)榻且坏┱甲【头坏艚桥赃叺母褡邮?-20 到 -50因?yàn)檎剂私桥缘扔诎呀撬徒o對方。這張表是黑白棋 AI 的經(jīng)典起點(diǎn)數(shù)值可以調(diào)但結(jié)構(gòu)基本就這樣。evaluate返回的是「站在 player 視角的凈分」搜索時(shí)要在極大極小之間取反符號別搞混。4.2 極小化極大搜索與深度控制有了評估函數(shù)就可以做極小化極大搜索AI 走一步假設(shè)對手也走最優(yōu)往下推若干層取對自己最有利的分。層數(shù)越深越強(qiáng)但耗時(shí)指數(shù)增長8×8 棋盤分支因子在開局能有十幾深度 4 到 5 是性能和棋力的平衡點(diǎn)。// aiplayer.cpp節(jié)選 int AI::minimax(Board board, int depth, int player, bool maximizing, int aiColor) { if (depth 0 || !board.hasAnyValidMove(Board::Black) !board.hasAnyValidMove(Board::White)) return evaluate(board, aiColor); int best maximizing ? INT_MIN : INT_MAX; for (int r 0; r Board::SIZE; r) for (int c 0; c Board::SIZE; c) { if (!board.isValidMove(r, c, player)) continue; Board next board; // 值拷貝避免污染當(dāng)前層 next.applyMove(r, c, player); int val minimax(next, depth - 1, 3 - player, !maximizing, aiColor); best maximizing ? qMax(best, val) : qMin(best, val); } return best; }Board next board這里用值拷貝是關(guān)鍵std::array讓拷貝成本可控64 個(gè) int比手動回溯翻轉(zhuǎn)狀態(tài)安全得多。3 - player是黑白互換的小技巧1 和 2 相加為 3。maximizing標(biāo)志表示當(dāng)前層是 AI 還是對手AI 層取最大、對手層取最小。深度設(shè)太大在開局會明顯卡頓實(shí)際工程里一般配合 alpha-beta 剪枝把明顯劣勢的分支提前砍掉這里為了講清主干先不展開。4.3 把 AI 接進(jìn)回合流程AI 算完后要落子落子后要觸發(fā)界面重繪和回合切換。常見做法是在主窗口里判斷「當(dāng)前回合是白方且白方是 AI」就調(diào) AI 算一步拿到坐標(biāo)后走和人類玩家一樣的落子路徑保證邏輯只有一份。// mainwindow.cpp節(jié)選 void MainWindow::onCellClicked(int r, int c) { if (gameOver_ || current_ ! Board::Black) return; // 人類固定執(zhí)黑 if (!board_.applyMove(r, c, Board::Black)) return; boardWidget_-update(); switchTurn(); if (!gameOver_) QTimer::singleShot(300, this, MainWindow::aiMove); } void MainWindow::aiMove() { QPoint move ai_.chooseMove(board_, Board::White); if (move.x() 0) { board_.applyMove(move.x(), move.y(), Board::White); boardWidget_-update(); } switchTurn(); }QTimer::singleShot(300, ...)是給 AI 一個(gè) 300 毫秒的延遲不然 AI 瞬間落子人眼反應(yīng)不過來體驗(yàn)很差。chooseMove返回QPoint(-1,-1)表示無棋可走這時(shí)要跳過該方回合而不是判負(fù)。switchTurn里還要處理「一方無子可下則對方繼續(xù)」的規(guī)則這塊漏了會出現(xiàn)雙方都卡住不動的情況。5. 避坑與排查編譯能過但玩起來不對的幾種情況5.1 點(diǎn)擊格子沒反應(yīng)現(xiàn)象是窗口正常、棋盤正常但鼠標(biāo)點(diǎn)下去毫無反饋。原因通常有兩個(gè)一是mousePressEvent里坐標(biāo)換算用了控件全寬而不是棋盤實(shí)際邊長導(dǎo)致算出的行列越界被isValidMove直接拒掉二是信號cellClicked沒連到主窗口的槽或者連了但槽里第一行就return了。解決方式是先在mousePressEvent里打印r、c確認(rèn)坐標(biāo)落在 0 到 7 之間再檢查connect那行有沒有拼錯(cuò)信號名。Qt 5 之后推薦用函數(shù)指針形式的connect拼錯(cuò)會在編譯期報(bào)錯(cuò)比字符串形式安全。5.2 落子后棋子翻轉(zhuǎn)方向不對現(xiàn)象是能落子但翻的棋子位置和預(yù)期不符或者該翻的沒翻。原因多半是flipCount和實(shí)際翻轉(zhuǎn)用了兩套方向判斷或者翻轉(zhuǎn)時(shí)基于「已修改」的棋盤繼續(xù)判斷。血淚經(jīng)驗(yàn)是先把所有要翻的坐標(biāo)收集到一個(gè)std::vectorQPoint全部收集完再統(tǒng)一改色中間不要動grid_。另外八個(gè)方向的dr、dc別寫反{-1,0}是向上、{0,-1}是向左寫反了翻轉(zhuǎn)會跑到對稱位置去。5.3 AI 一步要算好幾秒甚至卡死現(xiàn)象是輪到 AI 時(shí)界面凍結(jié)鼠標(biāo)點(diǎn)不動。原因是極小化極大在開局分支多、深度又設(shè)得大純遞歸沒有剪枝耗時(shí)爆炸。解決分兩步先把深度降到 3 到 4 驗(yàn)證功能再加 alpha-beta 剪枝如果還慢就在搜索前先按權(quán)重給走法排序優(yōu)先搜高分走法剪枝效率會高很多。另外搜索函數(shù)里傳Board用值拷貝是安全的但別在循環(huán)里反復(fù)構(gòu)造大對象std::array的拷貝成本可以接受換成std::vector動態(tài)分配就會明顯拖慢。5.4 一方無棋可走時(shí)游戲卡住現(xiàn)象是某一方明明還有空格但輪到它時(shí)沒有任何合法走法程序既不跳過也不結(jié)束界面就停在那。原因是回合切換邏輯只做了「黑變白、白變黑」沒處理「對方無合法走法則繼續(xù)本方」的規(guī)則。正確做法是切換回合后檢查新回合方hasAnyValidMove沒有就再切一次如果雙方都沒有才判游戲結(jié)束并按棋子數(shù)定勝負(fù)。這個(gè)判斷要放在每次落子之后統(tǒng)一做別散落在各個(gè)分支里。5.5 換臺機(jī)器運(yùn)行報(bào)缺少平臺插件現(xiàn)象是在自己機(jī)器上跑得好好的拷到別人電腦雙擊就彈「no Qt platform plugin could be initialized」。原因是只拷了 exe沒拷platforms/qwindows.dll和 Qt 核心 DLL。解決是用windeployqt處理一遍或者手動把 Qt 安裝目錄下plugins/platforms整個(gè)文件夾和幾個(gè)核心 DLL 放到 exe 同級目錄。注意platforms文件夾名不能改Qt 是按固定路徑找插件的。6. 二次開發(fā)從能玩到好玩我一般改這幾處拿到這個(gè)工程后最值得先動的是 AI 的棋力因?yàn)樗鼪Q定了這個(gè)項(xiàng)目是「玩具」還是「能跟人下幾盤」的東西。我的習(xí)慣是先加 alpha-beta 剪枝改動集中在minimax函數(shù)多傳兩個(gè)參數(shù)alpha、beta在最大化層更新alpha、最小化層更新beta一旦alpha beta直接返回。這一步通常能把同樣深度下的節(jié)點(diǎn)數(shù)砍掉一大半深度從 4 提到 6 也不至于卡死。int AI::minimax(Board board, int depth, int player, bool maximizing, int aiColor, int alpha, int beta) { if (depth 0) return evaluate(board, aiColor); int best maximizing ? INT_MIN : INT_MAX; for (int r 0; r Board::SIZE; r) for (int c 0; c Board::SIZE; c) { if (!board.isValidMove(r, c, player)) continue; Board next board; next.applyMove(r, c, player); int val minimax(next, depth - 1, 3 - player, !maximizing, aiColor, alpha, beta); if (maximizing) { best qMax(best, val); alpha qMax(alpha, best); } else { best qMin(best, val); beta qMin(beta, best); } if (beta alpha) return best; // 剪枝 } return best; }剪枝的收益在開局最明顯因?yàn)殚_局分支多、很多走法一眼就差。加完之后建議做個(gè)簡單驗(yàn)證固定一個(gè)開局局面分別用剪枝前后跑深度 4對比返回的最佳走法是否一致、耗時(shí)差多少。如果走法變了但棋力沒降說明剪枝寫對了如果走法變得很離譜多半是alpha、beta的更新方向搞反了。第二處值得改的是悔棋。因?yàn)锽oard是值類型悔棋最簡單的實(shí)現(xiàn)是在主窗口維護(hù)一個(gè)std::vectorBoard棧每次落子前把當(dāng)前局面壓棧悔棋時(shí)彈棧覆蓋。這比記錄每一步的翻轉(zhuǎn)坐標(biāo)再逆操作要省心得多代價(jià)是每步多存 64 個(gè) int對這個(gè)體量完全無所謂。第三處是存檔把grid_和當(dāng)前回合序列化成一個(gè)文本文件讀檔時(shí)反序列化回來格式用「8 行每行 8 個(gè)數(shù)字 一行回合」就夠不用上 JSON 庫。改 AI 這塊我踩過最深的坑是評估函數(shù)的符號。有一版我把對手棋子的權(quán)重也按正分累加結(jié)果 AI 瘋狂送子因?yàn)樗脑u估里「對方棋子多」反而成了好事。從那以后我每次改評估函數(shù)都強(qiáng)制拿一個(gè)已知局面的手算分?jǐn)?shù)對一遍確認(rèn) AI 視角和對手視角的符號沒反再往下調(diào)權(quán)重。希望這些能幫到你少走幾段彎路。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
金莲网址| 成人小电影网站tex| 亚洲国产一区二区三区四区国产| 亚洲天天在线| 伊人在线大香蕉视频久久| 欧美综合骚| 人人摸人人摸人人干| 久久78| 欧美黑人XXXⅩ高潮交| 99ri精品| 九九九九久久久| www黄片免费看com| 五月天激情小说| 天综合网| 精品久久在线区一区| 欧美在线色图| 死我十八禁| 天欧美在线| 后入人妻无码| 欧美老妇曰批的视频| 婷色五月| 亚洲精品不卡一二三区| 91国产操逼视频| 操逼操逼逼操操逼91| 一类无码操逼视频| 亚洲成人精品久久久| #NAME?| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 五月婷婷六月丁香| 久久美女福利是上海美女| 99久久九九| 97日视频| 中文视频在线观看| 五月丁香婷婷色| 久久久中文版| 肏逼视频日本| 欧美日韩丝袜| 日韩猛交| 久久秀这里有精品| 美女久久久久久久久久久| 婷婷伊人| 久久精品国产亚洲粉嫩| 亚洲精品无码少妇久久| 熟女91网| 一起草精品人妻| 久久久久密臀一区二区| 国产亚洲精品A在线观看下载| 日韩精品碰碰| 风骚少妇视频中文字幕| 欧美日韩操操操| 久久伦理视频久久大香蕉视频| 精品一区二区三区国产| 亚91亚洲网| 欧美精品精品一区二区| 麻豆天美传媒在线视频天堂| 欧美精品一区二区少妇免费A片| 国产美脚女优尤物在线观看| 欧美一级黄片视频在线| 91N综合网在线| 黄色免费网| 五月天综合网| 人人操我人人干| 青青草字幕AV| av天天在线观看| 蜜臀无码视频在线观看| 五月开心久久AV官网| 日韩人妻无码专区| 国产精品国产亚洲区艳妇糸列| 一区=区三区视频| 亚洲码在线中文在线观看| 大香蕉色欲AV| 天天透伊人| av爱爱爱| 欧洲精品二区| 久草草一二三四区久久| 一本道综合色图| PMv在线观看| 亚洲色91C| 九九黄色视频在线观看| 丁香婷婷五月| 亚洲91综合| 97操b| 激情五月天婷婷| 欧美日韩在线视频网站| 亚洲诱惑天堂 | 啪啪视频亚洲第一 | 国产成人网址| 欧美黄片视频在线观看免费 | 人妻精品一区二区三区| 精品一二三区四视频| 欧洲色| 超97在线精品视频| 91色人妻| 91精品国产91久久青草| 蜜臀99久久精品久久久久久| 人妻免费观看| 色女99一级片在线观看| 白丝jkav| 久草男人天堂| 男人天堂.AB| 亚洲第一在线视频| 天美麻花大全视频| 91久久久久久久久18| 亚洲综合电影| 激情情色五月天| 97在线观看免费视频l| 青青欧美在线| 91撸色网 玖玖网 欧美| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| av资源在线播放天堂| 18禁免费视频| 黄色免费网页无码| 久久久久久国产手机AV| 黄页视频网站野外| 91色婷婷综合久久中文字幕二区| 91精品无码人妻系列| 国产精品盗摄 偷窥盗摄| 亚洲精品天堂久久A∨51成人漫 | 色婷婷aV一区二区三区麻豆综合| 欧美综合色站| 97精品综合久久网| 色婷婷一区二区三区久久午夜 | 中文字幕av亚洲在线| 人人做天天爱| 精品一二三区久久AAA片| 国产精品熟女丝袜一区二区| 一区二区三区在线资源| 第四色亚洲色图| 日本精品国产视频| 职场同事知名国产国产精品久久欧美日韩| 久久人妻无码毛片A片麻豆| 亚洲精品国产熟女久久久| 青女偷拍网| 中日韓欧美高清| 国产福利一区二| 色色福利| 日本天天吊| 青操影院| 五十路六十路七十路熟婆| 97爱综合| 中文字幕一区二区日韩网| 久久久国产成人一区二区三区在线| 五月色网| 国桃视频产巨乳精品一区二区在线| 99在线精品观看视频中文| 久久啊啊| 亚洲 国产 精品一区| 嗯嗯啊啊操死我| 日本免费一区二区不卡| 国产精品爆乳懂色蜜乳| 大香蕉在线86| 人妻天堂网| 亚洲 一区二区 自拍| 国产无马av| wwe 天天干.com| 99热一区二区三区四区| 综合久久六月久久婷婷| 日韩图区| 亚洲伊人a线观看视频| 色色99| 综合情欲网| 黄色电影观看久久9| 亚洲AV无码天美传媒一区| 97精品97久久| 十八禁成人网站在线观看| 九九热免费国产视频婷婷伊人五月| 999国产精品999久久久久久| 成人三一级一片aaa| 久久久久久午夜男人的天堂| 激情欧美97| 色综合色综合网| 色97综合中文字幕| 91精品91久久久中77777| 91国产大片| 成人小说另类在线| 欧美日韩美女精品久草一区二区三区 | 亚码激情| 超碰在线免费一区二区三区| 97人妻色| 国产欧美岛国精品一区| 国内外毛片在线观看| 国产成人无码网站在线视频| 亚欧美综合网。| 多毛小伙内射老太婆| 亚州日韩97| 日本操嫩b网| 超碰97导航| 2018天天日天天日| 人妻丰满熟妇av无码区蜜桃| 亚洲国男人的天堂| 一级AV性爱| 日本孕妇孕交| 免费啪啪一级视频| 人妻91少妇| 人妻天天爽夜夜爽爽| a片自拍直播视频| 九九久久国产精品| 蜜臀亚洲中文| 做爱A级亚欧| 国产视频第二页| 蜜臀99999| 成人福利视频网| 四虎精品永久在线播放| 品亲网欧美品亲网| 婷婷综合五月| 亚洲国产成人福利在线观看| 伊人热综合| 香港久久久| 日韩欧美偷拍美女视频| 成人综合视频久久| 久久理论字幕视频| 五月天综合网| 婷婷丁香六月| 不卡一区二区日本视频| 欧美碰碰综合色| 欧美影音在线| 欧美精品欧美精品系列| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 欧美综合色,www| 中文字幕天天天天天| 亚洲激情欧美色图| 香一区二区三区| 五月丁香啪| 久久精品性| 蜜乳AV一区二区三区四| 伊人久久大香线蕉无码| 美女91| 日本亚洲嫩草影院啪啪| 欧美日韩国产色五月综合在线| 超碰97玖玖爱| 吉田爱美AV在线| 你懂得91| 亭亭丁香激情| 国产传媒1234区| 夜夜操91744565| 另类小说五月天| 3028国产精品| 久草大| 日韩黄色成人性爱| 日本福利社| 日韩一级片| 岛国天天午夜影院传媒网| 在线免费观看高清无码视频| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲乱码尤物193YW| 欧日韩在线观看| 久久久久久久伊人精品| 欧美日韩情色一区二区| 亚洲性网| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 亚洲啪啪性视频| 九九九久久久久| 草草草视频在线免费看| 欧洲乱码一区二区| 交换娇妻呻吟声不停中文字幕| 亚洲天堂另类小说男人| 成年人网站在线免费观看| 国产白嫩精品久久| 91人妻精华帖| 婷婷九月国产| 免费观看啪视频| 黄页大片在线观看| 日本国产高清色www视频在线| 亚洲天堂另类| 英伦大奶子熟妇吊带| 五月天婷精品激情| 强被迫伦姧在线观看无码网站| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 人妻干天天| 精品无码久久久久| 视频二区美腿制服人妻欧美| 黑人美精品 A片| 国产午夜福利视频在线| 欧美性爱免费短视频| 色偷综合| 国产99精品一区二区三区免费| 亚洲大色堂| 啊啊啊啊好爽好舒服一区二区易域| 无码又爽又硬又激情免费视频| 老熟女91视频| 中日无幕一二三四区| 国产福利电影| 96精品一区| 丁香五月天激情综合| 男人的天堂2019| 午夜福利区| 亚洲一区二区三区中文字幕| 日本2020一区二区| 91女人的网站| 久久久久免费看少妇A片特黄| 四虎精品一区| 中文字幕片| 肉嘟嘟www视频在线观看高清| 亚洲熟女综合网| 91九九九小逼| 久久国内| 亚洲人成网站7777| 九久久精品| 久久的网站啊啊啊啊啊| 亚卅熟女乱色| 看免费一级在线播放毛片| 亚洲亚洲亚洲天堂天堂| 欧美大香蕉卡久久| 久久久久久国产无码精品| 日本不卡一二区| 日本一区99| 天天拍天天操| 操逼操逼视频操逼| 成人免费性爱视视| 日产成人久久| 超碰激情808| 亚洲操操| 大地资源在线观看中文第二页 | 久噜噜| 久久女人一区二区三区| 国产一区二区三区导航| 亚洲无码com| 精品少妇一区二区| 91强在线播放| 青青草色情网站视频| 五月天色五月| 日韩,欧美,中文在线| 尤物av网站免费在线播放| 啊啊啊慢点| 啊啊啊好舒服好爽啊啊啊视频| 99色视频| 免费看一级a性色生活片久久无| 乱伦日本中文自拍| 亚洲色图一区二区三区| 中文字幕一二三av| 国产2.3.4区| 加勒比海成人视频网| 国产少妇与亚洲av| 中国探花熟女| 亚洲中文字幕久久人妻| 91成人高清在线观看| aa片毛片| 超碰97久久| 91亚洲网站| 色哟哟av| 夜夜久久久| 久久久久婷婷精品av电影| 九九自拍伦理| 国产第11页| 99天天超碰| 日本人人操人人操| 肉嘟嘟www视频在线观看高清| 欧美日韩色综合网| 97资源视频| 黄片免费视频2019| 99re热有精品视频国产| 特级特黄一级毛片免费| 久操com| 久久久精品电影| 韩国三级一线观看久| 97爱爱爱| 操操逼视频| 免费a级毛片av无码久久精品中文字幕| 欧美v日韩v亚洲v最新在线| 东京热综合久久一区二区| 一起草视频在线| 中文字幕丰满人妻日本| 在线免费观看高清无码视频| 成人精品在线免费视频| 精品一区二区三区丰满熟女-亚洲欧美一区| 就去色综合| 色综合天天爱去电影网| 老司机福利青青草| 色综合久久av| 天堂中文资源在线bt| 性在久久久久久| 亚洲一本色道中文无码aV天美| 日韩人妻 中文字幕| 女人高潮大叫一级毛片| 综合网欧美在线| 欧美AB在线观看| 久久亚洲影院一区二区| 日本精品人妻少妇一区二区| 欧美大片天天看| 四虎免费视频| 精品少妇人妻一区二区三区| 啊啊啊免费| 26uuu成人影片| 免费簧片在线观看| 六月丁丁香| 国产日韩精品一区二区三区| 精品无码一区二区人妻久久蜜桃| 伊人网在线点播| 精品国产乱码久久久久久网站入口| 国产91精品在线免费| 神马久久午夜| 伊人五月天激情| 天天天天干| 蜜臀AV一区二区三区激情综合| 国产乱人妻精品入口| 亚洲图片偷拍欧美| 亚洲风情在线观看| 国产欧美精选激情视频| 99熟女| 欧美性战999| 蜜桃AV天堂| 羞涩视频| 国产综合操逼高清| 色五月69夫妻| 亚洲 欧美 色图| 激情抓乳插进去啪啪啪日韩 | 天天干夜夜操网| 夜夜肏2021| 九九九九免费高| 日本不卡一二区| 手机午夜电影神马久久| 性欧美另类高清| 日韩人妻精品| 亚洲丝袜少妇在线| 亚洲中文字幕精品一区| 欧美在线播放aaaa| 精品久久久av| 天天操天天干美女网址导航| 91精品国产91综合久久蜜臀| 欧美色网| 久久9视频| 中文字幕文字幕无码一区二区三区电影99 | 2026国产精品视频| 在线日韩日本亚洲国产| 中日韩久久久| 色天使大香蕉| 狠狠操狠狠操操| 欧美视频中文字幕区| 丝袜综合| 91色图| 久操婷婷| 人乳av| 99久久精品无码一区二区毛片免费| 97干在线视频| 久9爱经典视频| 欧美色吧综合| 国产9 9在线 | 亚洲| 精品久久視頻在线| 黑人性暴力毛片| 鸡巴插逼视频| 久久五月份| 97超级久久| 国产熟女免费观看久久| 欲香欲色天天天综合和网| 亚洲成人激情小说视频| 婷婷五月天激情小说| 狠狠操狠狠燥| 国产精品视频白浆免费| 国产精品天干天干综合网麻豆| 国产精品黑人一区二区三区| 色噜噜人妻av 中文字幕| 校园春色亚洲色图| 亚洲激情四射| 中文区中文字幕免费看| h在线看免费版在线看| 99超碰网| 激情五月丁香五月| 天天影视91看看| 欧美黄片视频在线观看免费 | 四虎免费视频| 深田咏美亚洲精品福利社| 欧美亚洲影视| 亚洲国产精品9999在线观看| 午夜福利区| 91色人妻| 色网综合网| 久久社区一区二区三区| 男人的天堂日韩| 在线可观看的黄色网址| 性色高清..……| www.久久最新地址| 日韩国产十八禁| 亚洲婷婷丁香在线| 亚州色图第三区| 久久久涩| 一类av片在线看| 色悠久久久av| 亚洲国产激情国产av| 欧美中日韩XXXX| 91 手机在线播放 绯色| 91美女片在线| 97激情97激情| 免费啪啪av| 天美传媒av在线| 亚洲日韩成人性爱视频| 嗯嗯啊啊啊好爽| 男人的天堂网免费| 91一区二区三区蜜桃| 日日夜夜噜| 日韩欧美中文| 日本精品一区二区不卡| 青青草在线视频人人想人人上| 2017av无码免费无线播| 人妻熟妇久草在线| 亚洲黄色影视| WWW啪啪的com| 色69大色97香蕉| 天天躁日日躁XXXXYY| 99热伊人| 欧美激情视频一区二区三区不卡| 欧美,日韩综合久久| 四虎影视国产精品| 91+欧美| 91强热人妻| 后入国产| 精品人妻一区二区三区视频| 五月综合色| 欧美高清18A片| 亚欧美天堂在线| 日韩一级成人毛片免费观看 | 综合久久9| 激情终合网| 色色色色综合网| 国产无码久久高清| 日本精品一区二区三| 97舔舔| 久久国内| 男人天堂新在线| 最新av在线| 嗯嗯啊在线视频| 吖在线不卡一区二区国产剧情| 熟妇精品juliaannAV| 91精品91久久久中77777| 性久久久| 91丝袜| 天天天天做夜夜夜夜做| 日韩成人大片一区二区| 中英熟女操女| 97亚洲色图| 欧美在线 亚洲| 久久五月综合| 97在线观看播放视频| 亚洲日韩电影| 成人AV在线网站| 熟妇精品juliaannAV| 国语av最新自产拍在线观看| 在线人成亚洲视频免费观看| 激情欧美97| 精人妻无码一区二区三区伊人直播| 色妹子A V| 青娱乐欧美激情一区二区| 天美传媒AV在线播放| 欧美综合在线91| 亚洲 91 在线| 免费A V在线播放| 人人模人人看| 好吊色综合| 骚鸭AV| 草伊人高潮喷水超碰| 日韩人妻大香蕉| 久久美女福利是上海美女| 一级毛片久久久久久久女人18| 亚洲操操操无码| 在线中文AV| 亚洲吊色| 色第一页| 免费簧片在线观看| 亚洲蜜乳av| 老熟女乱伦一区| 九九九九九九九九九国产精品| 人人妻天天做天天爽| 91人人看| 亚洲精品819| 亚洲人成网www| 激情五月婷婷| 超碰国产在线| 91九九| 国产精品大香蕉| 国产农村一一级特黄毛片| 国岛片视频| 亚洲欧洲精品视频发布| 黑人操一区二区| 啪啪AV导航| 黄片视频,下载| 国产强奸乱伦xd| 男人天堂网站| 欧美日本成人一区二区| 国产福利精品98视频| 啪啪视频免费在线观看| 国产精品久久久吖| 久久AV无码AV| 免费国产电影一区二区| se吧提供国产乱老熟视频胖女人| 少妇厨房愉情理伦片bd在线观看| 在线日韩日本亚洲国产| 97超碰站| 欧美少妇色图| 日韩97P| 日本视频在线中文字幕| 亚洲欧洲无码bt精品合集| 黑人精品一区二区在线播放| 性色AV蜜色av色欲av| 久久丁香久草综合网| 亚洲欧美日韩免费电影| 8050无码八戒| 中文字幕一区av| 91碰碰碰| 99热精品青草在线| 亚洲黄色网址| 久操av在线| 91国模| 午夜视频久久久久一区| 91快色色色色色| 成人AV在线电影| 天天综合91在线| 亚洲色9| 久久久久久少妇| 日韩美女高潮喷水视频| a啊啊啊啊啊啊啊啊一区二区| 亚洲视频精选| 综合av社区| 8050午夜少妇无码| 日韩欧美女优电影| 天操老女人| 亚洲精品蜜桃久久久| 综合少妇网| 欧美精品久久久久久久丰满| 亚洲av无线观看| 色综合九九| 夜夜爽妓女| 941超碰| 国产60页| 美中日韩无码| 屁屁影院一区二区三区国产| 国产精品国产拍高清AV| 啊啊啊啊啊操我视频| 精品中文日韩字幕视频| 97超碰超| 午夜精品五区| 日韩人妻操B| 97操在线| 亚洲色狠| 亚洲性爱无码乱伦av| 东京太热久久久| 国产AV线| 国产精品4p在线观看| 婷婷丁香五月天综合东京热| 欧美78p| 97爱啪| 亚洲精品电影| 亚洲中文国际强奸字幕| 国产一区二区三区精品观看啪| 欧美熟妇乱码在线一区| 综合情欲网| jizz啪啪| 久久久久久午夜男人的天堂| 人妻五十路在线| 99久久国产精品免费高潮| 五月丁香婷婷综合网| 性色av一区二区| 欧美色涩| 91久久婷婷| 日曰骚久久精品| 日韩丝袜二区| 丝袜美腿操av| 免费观看国产小粉嫩喷水精品午| 制服中出中文人人精品| 少妇高潮对白在线观看| 加勒比中文av| 日韩午夜国产| 粉嫩在线一区二区懂色| 青春草A| 99性爱在线观看| 激情小说五月天| 动漫片子网站3黄| 久久久久久AⅤ无码免费肉站| 亚洲美女av无码| 综合性视频99| 亚洲中文字幕久久人妻| 乱理日韩中文| 欧姜老司机| 免费超碰97久久| 中文字幕丝袜美腿| 色小视频蜜乳| 天天看天天日| 日本九九久久99| 99久久国产精品免费高潮| 成·人免费午夜在线观看| 丁香六月婷婷久久综合| 久久久天堂| 中文字幕免费看大片| 欧美色图人妻| 国产亚洲精品农村妇女| 国产嫩草精品A88AV| 国产精品懂色tv影视免费观看| 亚洲麻豆精品二区三区| 久久三区四区| 色香蕉影院| www.91视频网| 久9无限国产| 亚洲无码AV九九九| 91美女看B| 天天日天天干天天摸天天操| 亚洲欧综合另类无码一区| 96国产污污污丝袜| 一级aaaaa欧美中文字幕录像片| 伦在线97| 伊人久操| 久久无码精品| 性感女人网页在线观看视频| 天天日天天干天天操| 丁香五月天啪啪| 午夜一级免费毛片| 欧美成人免费在线观看| 婷婷综合伊人一区| 欧美色性爱| 亚洲精品三区在线观看| 男人天堂网站| 国产91丝袜 在线播放| 99少妇| 97久久国产| 日本五区不卡| 玖玖久久久| 少妇高潮特黄A片| 天天插天天干| 97综合在线观看| 美女网站黄页| 中文字幕亚洲欧美在线不卡| 欧美刺激色黄片免费看| 狠狠操官网| 91精品操美女| 色男人色天堂东京热| 婷婷中文字幕| 国产97视频| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 欧美激情内射| 久久久久人| 亚洲 欧美 日韩 国产一区二区 | 日本蜜桃| 97欧美在线| 国产a级午夜毛片| 亚洲视频一二区| 大色综合| 久久精品毛片免费不卡| 国产精品视频电影| 欧美色图第一页| 欧美色五月| 亚洲成人在线高清| 日日夜夜天天| 超碰这里只有精品| 国产久久天堂资源| 欧美强奸乱能| 国产成人无码高清| 97操在线| 欧美男人一区| 亚洲第一免费视频| 日逼97| 亚洲欧洲久久天堂| 日本福利社| 日韩性爱人人爱人人操| 丰满人妻-区二区三区免费看| 亚洲情色电影网| 亚洲黄色a级片| 中文字幕一区二区三区人妻不卡 | 91女日逼| 91/欧美| 亚洲中文字幕97久久精品少妇| 在线午夜成人无码视频| 黄呦呦在线| 长长久久曰曰夜夜成人网| 久操网视频| 人妻天堂网| 夜夜操一区二区| 91AV老熟女视频| 91粉嫩萝控精品福利网站_精品影音先锋国 | 亚洲第一视频 欧美风情 日韩| 成人女人国产| 99热婷婷| AV污污污污| 极品欧美一区二区三区| 亚洲女人毛茸茸91| 天天综和| 高清国产av无码| 国产传媒一区二区三区| 久久久91福利姬| 亚洲欧洲色情高清| 一区二区娱乐网站| 久草成人| 亚洲色图日韩丝袜制服一区二区五月在线| 青青草色情网站视频| 综合网,亚洲,欧美| 亚洲第一综合| 国产精品久久久三级无码| 久久国产性爱| 中文字幕,人妻,日韩| 怡红院亚洲怡春院av| 亚洲激情网| 激情另类激情| 久久精品亚洲成a人天堂| 日韩 女同 综合| 少妇厨房愉情理伦片bd在线观看| 男人天堂毛片| 十八禁av无码免费网站APP| 亚洲一区日韩精品中文字幕| 成年人免费观看网站| 久久久久亚洲一区女同性恋中文字幕| 去干网最新版| 亚洲AV无码AV吞精久久久久| 久久一本大香蕉| 啊啊啊啊啊在线视频| 日本天天吊| 啊…啊…操我用力操我 | 诱惑人妻欧美一区在线播放| 岛国成人av在线播放网址| 国产白丝在线| 久久99综合| 国产亚洲精品无码三区| 九七人妻在线| 内射白嫩美女| 欧美精品99久久久**| 午夜精品久久久久久久99| 婷婷五月成人| 在线视频免费播放一区| 欧美性夜| 亚洲风情综合网| 亚洲成人免费电影| 2017天天拍大香蕉| 国产青青美女玩逼视频| 另类小色呦| 欧亚综合一卡二卡中文字幕| 九九九九热| 91情色在线| 91女色| 国产97在线 | 亚洲| 夜草欧美| 精品96久久| 免费超碰97久久| 久久久少妇诱惑精品视频| 欧美少妇色综合| 日日干夜夜欢| 国产91 丝袜在线播放| 色淫网站优优视频| 麻豆性爱视频在线播放| 日韩在线76| 妺妺跟我一起洗澡没忍住| 久久久久亚洲av综合波多野制衣| 97久久国产| 免费超碰97久久| 97碰碰日本乱偷人妻中文的| 久久av色| 99久久久| 久久男人的天堂国产| 97人人夜夜精品视频| 中文字幕久热视频在线| 成全在线观看免费观看| 亚洲天堂久久| 天天操女人| 强奸乱伦资源| 国产AV高清AV无码| 美女干逼2| 人妻啊啊人妻啊| 99精品在线观看| 免費人妻夜夜爽天天爽爽一区| 久久国99999| 激情另类激情| 操屄日韩| 中日韩一区二区三区欧美| 国产精品一区二区三区,亚洲综合| 放黄片放3级黄片没穿衣服| 日本熟女免费視颖| 色999亚洲人成色| 五月婷婷hd| 中文字幕诱惑制服人妻丝袜美丝袜美 | 91快色色色色色| 亚洲精品99| 国产精品乱人伊人网| 综合激情一一91| 久久男人的天堂| 成人a大片在线观看| 丁香九月激情| 日韩图区| 成人久久久| 国产无马在线| 婷婷综合| 欧美玖玖爱免费玖玖| 老鸭窝成人| 影视综合无码少妇| 欧美性爱五月天| 夜夜操2028| 超碰视97中文| 久久人妻| 免费亚洲黄色视频在线观看| 日韩国语字幕| 中文字幕av片| 激情五月天插| av在线资源| 欧洲小说色图视频另类| 色在线视频导航| 激情五月天丁香社区| 欧美一二在线| 97超碰中文在线| 日韩人妻一区二区精品| 欧美青青视频| 操操逼视频| 台欧久久精品视频| 亚洲熟女偷拍在线观看| 欧美一级AAAAAAA| 免费在线观看AV无码网站| 国模精品一区二区三区苹果色戒| 91网站18在线| 18禁看网站一区| 另类天堂| 久久草视频污视频| 国产av激情无码久久天堂| 婷婷五月天补不补| 国产9熟妇视频网站| α√在线| 亚洲密乳AV| 麻豆91熟妇人妻中文字幕茄子| 色臀AV| 精品区国产区一区二区三区| 久草综合视频| 日韩黄色片子| 九九热超碰| 2020天天色综合| 久久午夜色播影院免费高清| 色欲Av人妻精品一区二| 翘臀vidoes| 蜜桃午夜视频一区二区| 日操粉逼逼| 日日摸日日碰| 国产毛片在线| 白 大 人妻 区 在线| 蜜臀99久久精品久久久久久| 韩日无码在线观看| 热热色色综合| 91三级理论片播放器| 国产精品视频播放| 丁香七月婷婷| 六月丁丁香| 91丝袜美女视频| 色噜噜综合在线| 少妇一区二区三区| 日本久久久久久久久| 91精品国产91熟女| 五月婷视频| 97免费视频在线| 91|九色|国产熟女| 国产精品suv一区| 欧美亚洲一级在线观看| 伊人991| 欧美性爱18观看| 久久久久ab| 亚洲无码太久| 国产成人精品午夜福利| 日韩成人精品视频自拍| 美女网站黄页| 99色天堂| 日日超碰亚洲| 国产女人高潮视频| 中文字幕国产在线天堂| 欧美成不卡网| 国产中文精品一区二区在线观看| 久久久少妇诱惑精品视频| 精品一区二区亚洲国产| 欧美双插| 五月激情综合网| 七月婷婷综合| 国产精品视频电影| 91人妻最真实刺激绿帽| 人人超碰在线观看黄| 色黄污美女啪啪啪免费网站| 高清不卡国产| 一本大道不卡一二三区| 性性欧美| 国产黄片在线免费观看| 久久精品无码熟妇一区二区三区视频导航| 色婷婷激情| 综合第一页| 成人热久久精品| 国产女人91精品嗷嗷嗷嗷| 中亚黄色三级大片| 欧美大香蕉同搞| 曰本特级特黄特色黄色A级网站高清在线免费看 | 色五月综合网| 久久99九九九九6666免费观看软件| 热久久这里只有精品| 襙一襙| 欧美在线综合| 九九色综合| 久久一区二区蜜桃| 欧美综合第一| 日韩久久.一级黄色片| JuliaAnnXXX888| 欧美日韩丝袜| 无码天天操| 久久9精品| 欧美页片| 国产精品蜜乳AV| 日本人妻最新在线中| 国产丸一视频| 欧美不卡在线美女| 超碰成人最新最好看| 亚洲97精品| 性欧美精| 五月激情综合网| 中文字幕蜜乳av| 欧美性爱第一区| 欧美se综合| 亚洲老司机123专区| 东京热亚洲一区二区| 亚洲码在线中文在线观看| 日韩欧美~中文字| 啊啊啊啊啊好大好舒服想要| 激情色播| 国产精品无码av嫩草| 久久东京热久久| 91女优在线观看| 日本免费不卡二区| 韩国黄片aaaa| 免费观看一区| 啊啊啊骚| 操学生天天| 天天插天天操| 久久久亚洲高清不打码| 亚洲无码精品AV久久久| 99热欧美| 操91| 欧美日韩国第一区| 九九人人操| 26uuu偷拍亚洲欧洲综合| 91肉丝| 99少妇| 精品人妻一区二区三区夜夜| 久久久一热在线播放| 一级久久久久久久久久久| 国产日韩无码一区二区三区久久区| 941超碰| 国产婷婷一区| 美女超碰978| 欧美精品日韩一区二区| 精品一区二区成人| 欧美日韩另类在线| 国产精品一区二区密臀| jiujiujiujingpin| 中 文字幕一区二区三四 五 区日 日 骚 | 九九成人| JULIA一区二区三区在线播放| 思思热国产在线视频| 蜜乳AV免费观看| 亚洲综合第一页| 热热色91| 色综合91好| 手机av亚洲丝袜美腿日韩第一页二页| 精品国产一区二区三区久久久蜜臀| 国内三级自拍小视频在线观看| 奇米狠999| 国产av强奸美女| 国产91亚洲精品一区二区三区| 无码天堂| 久久中出| 欧洲久久一二线| 97国产超碰| 精品九九九九| 人人妻人人爽一区二区三区| 四虎影视欧美| 色妺妺AⅤ| 操碰97| 91麻豆天美国产欧美高潮| 人妻天天爽夜夜爽爽| 尻女朋友一夜| 久久久久久久久久久久久久9999| 日韩乱码av| 成人av免费观看| 九九综合久久| 人妻AV 中文字幕的| 欧美中出1| 秋霞一级视频在线观看免费| 26uuu国产免费观看| 熟女人妻一区二区三区| 午夜欧美女人操逼| 人人操人人搞人人草| 欧美日本中字另类在线| 黄色一区二区秘书性感| 午夜福利免费精品视频| 欧美成人四级在线播放| 五月婷婷六月丁香网址| 天啪| 亚洲最新Av| 8x福利精品第一福利视频导航| 欧美午夜视频免费观看| 久久黄色性爱视频| 日韩午夜精品一区二区三区电影| www.99视频| 九九九久千久久激情蜜桃在线看 | 日韩免费中文字幕视频| 午夜无遮挡男女啪啪视频| 多毛小伙内射老太婆 | 国产一级高跟丝袜| 日韩性爱免费视频在线网站| 久久男女激情视频网站| 成人黑料社久久| 日韩天美| 99色日| 后入精品| 欧美岛国精品在线观看| www.av在线视频| 久久成人国产精品| 夜夜草我| 亚洲国产高清福利视频| 日本超碰在线国产一区| 色婷婷电影网| 一块操欧美| 后入人妻一区| 男女香蕉一区二区| 天天色综合影视网| 亚洲国产美女久久久久| 激情国产乱伦Av| 久久久网站| 久久这里都是精品| 久久久久久9999| 一本色道久久综合精品婷婷| 欧美亚洲自拍另类人妻| 色欲三区| 极品色www影院| 97 亚洲 日韩 欧美 在线| 色综合20p| 女生久久网| 国产一区在线观看无码AV| 91碰碰碰| 1024亚洲中文字幕久在线看片你懂的| 亚洲第一页欧美| 97国产精选| 自拍偷拍第26| 九九碰九九爱97| 免费网色网站| 91精品国产一区三一| 国产无马在线| 色99视频| 传媒免费一区二区三区| 超碰日韩美妻| 天天澡天天狠天天天做| 国产色呦呦| 激情六月天| 亚洲偷91色| 涩涩涩综合| 久久精品一区二区三区不卡| 国产久久男人天堂| 日日夜夜精品视频| 懂色AV蜜臀无码精品APP| 情色AV电影| 中文字幕超碰CAO| 九热中文字幕| 欧美特大黄一级片片免费| 啊啊啊啊啊在线视频| 色爱亚洲| 亚洲黄网在哪免费看| 97色在线观看| 又黄又硬又粗又长国产视频| 精品午夜福利国产一区二区在线观看| 中文字幕第页| 久久久久久中文| 国产精品久久久久久久AV大片 | 亚洲免费人妻在| 天天看高清麻豆| 免费岛国一级片| 日本视频一区二区三区| 欧美熟妇乱码在线一区| 密臀在线视频| 爆操无码|