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

ARTICLE DETAIL

資訊詳情

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

VS2010 VC++圍棋游戲開發(fā):MFC實(shí)現(xiàn)與規(guī)則解析

VS2010 VC++圍棋游戲開發(fā):MFC實(shí)現(xiàn)與規(guī)則解析 簡(jiǎn)介一套在VS2010環(huán)境下使用VCMFC編寫的圍棋游戲完整工程面向C入門者和棋類游戲開發(fā)愛好者幫助理解從窗口界面到棋盤數(shù)據(jù)結(jié)構(gòu)、玩家交互與對(duì)弈規(guī)則的落地過程。壓縮包共33個(gè)文件主體為10個(gè).h頭文件和8個(gè).cpp源文件此外還有bmp/ico界面資源、rc資源描述、sln/proj工程文件及說明文檔整體僅164KB適合快速下載并直接打開工程研讀。代碼將棋盤、棋子、玩家等拆分為獨(dú)立模塊棋盤類負(fù)責(zé)狀態(tài)管理棋子類處理落點(diǎn)與顏色玩家類接收行列輸入實(shí)現(xiàn)落子合法性判斷與五子連珠勝負(fù)檢測(cè)并給出基于深度優(yōu)先搜索的簡(jiǎn)易AI構(gòu)想壓縮包內(nèi)還附有待解決問題清單便于學(xué)習(xí)者沿著作者的思考脈絡(luò)進(jìn)行二次開發(fā)或排錯(cuò)。已有98人學(xué)習(xí)特別適合想在VS2010/MFC環(huán)境中快速上手圍棋或同類棋類項(xiàng)目的人群。1. 拿到「VS2010環(huán)境編寫的VC圍棋游戲.rar」先判斷這份代碼值不值得花時(shí)間VS2010環(huán)境編寫的VC圍棋游戲這個(gè)壓縮包打開后最怕兩種結(jié)局雙擊 .sln 報(bào)版本不兼容或編譯通過卻一啟動(dòng)就閃退。這類項(xiàng)目十有八九是 VC 寫的 MFC 對(duì)話框程序棋盤畫在自繪控件上落子走消息響應(yīng)代碼量在 1000 到 3000 行之間正好卡在「能讀懂」和「能改成自己的」的分界線上。把它跑通能換到什么一份可斷點(diǎn)調(diào)試的圍棋規(guī)則實(shí)現(xiàn)——?dú)狻⑻嶙?、劫、禁著點(diǎn)都是獨(dú)立函數(shù)一個(gè)用 GDI 做 2D 繪圖的現(xiàn)成范本——畫 19 路棋盤、把鼠標(biāo)點(diǎn)擊換算成格點(diǎn)還有一個(gè)能直接替換評(píng)分函數(shù)的 AI 殼。這篇文章寫給三類人學(xué) VC/MFC 但缺項(xiàng)目練手的學(xué)生有圍棋算法卻卡在繪圖環(huán)節(jié)的開發(fā)者以及打開別人工程卻編譯不過、需要快速定位問題的從業(yè)者。下面按「認(rèn)骨架 → 寫規(guī)則 → 畫界面 → 排坑 → 加 AI」的路徑拆開重建每步都給能直接復(fù)制的代碼和參數(shù)。2. 從 rar 到可編譯工程認(rèn)文件、定數(shù)據(jù)結(jié)構(gòu)、理清消息路由2.1 先認(rèn)文件從 .sln、.vcxproj 和 .rc 判斷項(xiàng)目類型解壓后不要急著雙擊任何文件先在命令行里掃一眼頂層結(jié)構(gòu)比任何教程都直觀find . -maxdepth 2 -type f | sort # 或直接列出 rar 內(nèi)的文件清單 unrar l VS2010環(huán)境編寫的VC圍棋游戲.rar | head -30看到 .sln 和 .vcxproj 同時(shí)存在說明這是 VS2010 原生的解決方案結(jié)構(gòu)。如果只看到 .dsw / .dsp那是更老的 VC6 工程VS2010 也能打開但會(huì)做一次格式轉(zhuǎn)換。接著看有沒有 .rc 資源文件和 resource.h——有這兩樣基本可以鎖定它是 MFC 工程而不是純 Win32 或控制臺(tái)程序。MFC 工程的入口是一個(gè)繼承 CWinApp 的 App 類主界面繼承 CDialogEx后面所有消息處理和繪圖邏輯都繞著這兩個(gè)類轉(zhuǎn)。如果你還在找 vs2010 的下載安裝教程裝完務(wù)必先打 VS2010 SP1 補(bǔ)丁再開工程。SP1 修掉的編譯器 bug 里有幾條正卡在這種老項(xiàng)目編譯路徑上裸裝 VS2010 經(jīng)常會(huì)碰到標(biāo)準(zhǔn)庫頭文件報(bào)錯(cuò)。打開工程后注意左側(cè)的類視圖——老資料里常把它叫 VC 管理器——幾個(gè)核心類一眼就能看到繼承關(guān)系比逐個(gè)翻文件快得多。2.2 棋盤數(shù)據(jù)結(jié)構(gòu)帶 padding 的二維數(shù)組是默認(rèn)答案圍棋棋盤 19×19最省事的表示就是二維數(shù)組。常見做法是開 21×21外圈留一圈 padding這是這類 VC 項(xiàng)目事實(shí)上的標(biāo)準(zhǔn)寫法// GameDef.h —— 棋盤數(shù)據(jù)結(jié)構(gòu)的統(tǒng)一約定 #define BOARD_LEN 19 // 19 路棋盤 #define PAD 1 // 外圈 padding #define MAX_BOARD (BOARD_LEN 2 * PAD) // 21 enum Stone { EMPTY 0, BLACK 1, WHITE 2 }; // 有效格點(diǎn)范圍是 [1][1] ~ [19][19] // board[0][*]、board[20][*]、board[*][0]、board[*][20] 恒為邊界 int board[MAX_BOARD][MAX_BOARD];邏輯說明padding 里的值永遠(yuǎn)不是 EMPTY數(shù)氣、提子時(shí)掃描到 padding 就自然停止代碼里一個(gè)越界判斷都不用寫。這是把 19 改成 21 的唯一理由一定要在注釋里寫清楚否則后來的人會(huì)把循環(huán)寫成從 0 到 18一個(gè)經(jīng)典翻車點(diǎn)。選型上也可以用一維數(shù)組 int board[361]下標(biāo)按 row * 19 col 換算提子和坐標(biāo)換算會(huì)啰嗦一點(diǎn)用 std::vector 嵌套也常見但 memset 歸零、memcmp 比對(duì)快照都不如 C 數(shù)組干凈。VS2010 對(duì) C0x 支持不全但 STL 老容器完全可用我一般棋盤用 C 數(shù)組悔棋棧和歷史記錄用 vector各取所長(zhǎng)。2.3 消息路由WM_LBUTTONDOWN 到落子、WM_PAINT 到重繪MFC 程序的消息分發(fā)靠消息映射表我們這個(gè)圍棋游戲只關(guān)心兩條鼠標(biāo)按下負(fù)責(zé)落子WM_PAINT 負(fù)責(zé)畫棋盤。映射表的寫法如下// GoDlg.cpp —— 消息映射與兩個(gè)核心響應(yīng) BEGIN_MESSAGE_MAP(CGoDlg, CDialogEx) ON_WM_LBUTTONDOWN() ON_WM_PAINT() ON_COMMAND(IDC_BTN_UNDO, CGoDlg::OnBtnUndo) // 悔棋按鈕 END_MESSAGE_MAP() void CGoDlg::OnLButtonDown(UINT nFlags, CPoint point) { // 像素坐標(biāo) - 格點(diǎn)坐標(biāo)MARGIN 是棋盤邊距CELL_SIZE 是格距 int gx (point.x - MARGIN) / CELL_SIZE 1; int gy (point.y - MARGIN) / CELL_SIZE 1; if (gx 1 gx BOARD_LEN gy 1 gy BOARD_LEN) { if (TryPlaceStone(gy, gx, m_curColor)) // 規(guī)則入口 SwitchTurn(); // 換手 } Invalidate(FALSE); // 只標(biāo)記客戶區(qū)失效不擦背景 }邏輯說明ON_WM_LBUTTONDOWN 宏把鼠標(biāo)消息路由到 OnLButtonDown函數(shù)里先做坐標(biāo)換算再調(diào)規(guī)則入口合法性由 TryPlaceStone 決定合法才換手。Invalidate(FALSE) 觸發(fā)一次異步重繪FALSE 表示不擦背景配合雙緩沖后拉伸窗口也不閃。這里坐標(biāo)參數(shù)順序行、列全工程必須一致混用是后期規(guī)則出現(xiàn)魔幻行為的頭號(hào)嫌疑。參數(shù)說明MARGIN 和 CELL_SIZE 是坐標(biāo)換算的兩個(gè)基準(zhǔn)值。按 19 路棋盤、28 像素格距估算客戶區(qū)寬度至少 24×2 18×28 552 像素對(duì)話框模板里的寬高用這個(gè)公式算別隨手拉一個(gè) 300 寬的窗口讓棋盤被裁掉。3. 落子、提子與劫把圍棋規(guī)則完整寫進(jìn) 200 行 VC 代碼3.1 數(shù)氣Flood Fill 收集連通塊再掃四鄰空點(diǎn)氣是圍棋規(guī)則的地基。落子合法性、提子、終局判斷全依賴數(shù)氣函數(shù)這個(gè)函數(shù)寫錯(cuò)后面全是空中樓閣。標(biāo)準(zhǔn)做法是 Flood Fill——從目標(biāo)棋子出發(fā)向上下左右遞歸擴(kuò)散收集所有同色連通的棋子再統(tǒng)計(jì)這些棋子相鄰的獨(dú)立空點(diǎn)數(shù)量// Rule.cpp —— 數(shù)氣先收集同色連通塊再統(tǒng)計(jì)獨(dú)立氣口 static bool visited[MAX_BOARD][MAX_BOARD]; static int group[MAX_BOARD * MAX_BOARD][2]; // 連通塊內(nèi)棋子坐標(biāo) static void CollectGroup(int r, int c, int color, int cnt) { if (board[r][c] ! color || visited[r][c]) return; visited[r][c] true; group[cnt][0] r; group[cnt][1] c; cnt; CollectGroup(r - 1, c, color, cnt); CollectGroup(r 1, c, color, cnt); CollectGroup(r, c - 1, color, cnt); CollectGroup(r, c 1, color, cnt); } int CountLiberties(int r, int c) { int color board[r][c]; if (color EMPTY) return 0; int cnt 0; memset(visited, 0, sizeof(visited)); // 每次調(diào)用必須歸零 CollectGroup(r, c, color, cnt); bool seen[MAX_BOARD][MAX_BOARD] {false}; int dirs[4][2] {{1,0},{-1,0},{0,1},{0,-1}}; int libs 0; for (int i 0; i cnt; i) { for (int d 0; d 4; d) { int nr group[i][0] dirs[d][0]; int nc group[i][1] dirs[d][1]; if (board[nr][nc] EMPTY !seen[nr][nc]) { seen[nr][nc] true; libs; } } } return libs; }邏輯說明遞歸深度最多 361 層MFC 默認(rèn)??臻g完全扛得住。seen 數(shù)組保證同一塊棋周圍同一個(gè)空點(diǎn)只算一口氣——兩顆相鄰棋子共享同一個(gè)氣口漏掉去重提子判斷會(huì)提前誤觸發(fā)表現(xiàn)為「對(duì)方明明還有氣卻被提子」的怪象。參數(shù)說明visited 和 group 聲明成 static 是為了減少遞歸傳參開銷但 CountLiberties 每次進(jìn)入必須 memset。seen 是函數(shù)局部變量用 {false}初始化即可每次調(diào)用自動(dòng)重建。dirs 方向數(shù)組順序無所謂但四個(gè)方向不能漏——漏一個(gè)角部的棋子永遠(yuǎn)數(shù)不對(duì)氣。3.2 提子與禁著點(diǎn)先提對(duì)方再查己方死活落子的完整流程是先把棋子臨時(shí)放上棋盤提走四周所有氣盡的對(duì)方棋子然后檢查己方這顆棋有沒有氣。己方?jīng)]氣且剛才沒提成任何子就是禁著點(diǎn)必須整盤回卷inline int Opponent(int c) { return (c BLACK) ? WHITE : BLACK; } bool TryPlaceStone(int r, int c, int color) { if (board[r][c] ! EMPTY) return false; int saved[MAX_BOARD][MAX_BOARD]; memcpy(saved, board, sizeof(board)); // 整盤快照失敗可回卷 board[r][c] color; // 先落子 int dirs[4][2] {{1,0},{-1,0},{0,1},{0,-1}}; int captured 0; for (int d 0; d 4; d) { int nr r dirs[d][0], nc c dirs[d][1]; if (board[nr][nc] Opponent(color) CountLiberties(nr, nc) 0) { captured RemoveGroup(nr, nc); // 提掉整塊 } } // 禁著點(diǎn)自己沒氣且沒提到子 if (CountLiberties(r, c) 0 captured 0) { memcpy(board, saved, sizeof(board)); // 回卷 return false; } return true; }邏輯說明順序不能反。先查己方氣再提對(duì)方會(huì)出現(xiàn)「提完對(duì)方我自己明明活了卻被判成禁著點(diǎn)」的烏龍。圍棋規(guī)則里提子的優(yōu)先級(jí)高于自殺判斷代碼順序必須和規(guī)則順序一致。整體快照回卷比逐顆撤銷更穩(wěn)多花 441 個(gè) int 的內(nèi)存換來的是永遠(yuǎn)一致的狀態(tài)這筆賬劃算??狱c(diǎn)captured 記錄的是被提棋子數(shù)量而不是塊數(shù)。只要提走一顆以上這手棋就是合法的哪怕己方落子后暫時(shí)沒氣——這叫「吃子成活」是新手最容易寫成自殺禁手的場(chǎng)景。RemoveGroup 內(nèi)部除了清空棋盤還要把被提每顆棋子的坐標(biāo)記進(jìn)當(dāng)手 Move 結(jié)構(gòu)供悔棋恢復(fù)使用。3.3 劫比兩步前的局面快照或換 Zobrist 哈希簡(jiǎn)單劫的判定有個(gè)討巧做法把每手落子后的完整局面存進(jìn)歷史棧當(dāng)前這手棋如果導(dǎo)致棋盤和兩步前完全一致說明發(fā)生了「提回來又提回去」的循環(huán)直接判劫。為什么只看兩步前因?yàn)楹?jiǎn)單劫的循環(huán)周期正好是兩手// Rule.cpp —— TryPlaceStone 內(nèi)部的劫校驗(yàn)接 3.2 的代碼 struct BoardSnapshot { int board[MAX_BOARD][MAX_BOARD]; }; std::vectorBoardSnapshot g_history; // 每手棋后 push 一份 // 在禁著點(diǎn)判斷之后、返回 true 之前加入 BoardSnapshot snap; memcpy(snap.board, board, sizeof(board)); if (g_history.size() 2) { BoardSnapshot prev g_history[g_history.size() - 2]; if (memcmp(snap.board, prev.board, sizeof(board)) 0) { memcpy(board, saved, sizeof(board)); // 回卷禁止打劫 return false; } } return true; // 調(diào)用方落子成功后g_history.push_back(snap);邏輯說明memcmp 一次對(duì)比 441 個(gè) int納秒級(jí)完成每手棋調(diào)一次完全不是性能瓶頸。g_history 用 std::vector 實(shí)現(xiàn)——VC 項(xiàng)目里最常用的 STL 容器push_back 和 pop_back 都是 O(1)配合悔棋棧天然兼容。調(diào)用方在落子合法并記錄完提子信息后把 snap push 進(jìn)歷史悔棋時(shí)同步 pop兩者的長(zhǎng)度必須嚴(yán)格一致。如果要嚴(yán)格實(shí)現(xiàn)全局同形superko用 Zobrist 哈希給每個(gè)位置三種狀態(tài)各分配一個(gè) 64 位隨機(jī)數(shù)局面哈希等于所有非空點(diǎn)隨機(jī)數(shù)的異或。落子、提子各做兩次異或就是 O(1) 增量更新把整盤 memcmp 換成哈希比對(duì)代碼量增加約 30 行。普通人對(duì)戰(zhàn)程序用不到寫清楚注釋留給后人即可。4. 棋盤繪制與鼠標(biāo)交互用 GDI 畫 19 路棋盤落子不漂移4.1 坐標(biāo)換算半格偏移決定你有沒有「點(diǎn)偏一格」這一章處理整個(gè)工程里最直觀也最容易改壞的部分——用 GDI 做的 2D 繪圖層。棋盤繪制的核心是兩套坐標(biāo)互轉(zhuǎn)格點(diǎn)坐標(biāo)1 到 19和像素坐標(biāo)。MARGIN 是棋盤外沿到窗口邊緣的距離CELL_SIZE 是相鄰交叉點(diǎn)間距// BoardView.cpp —— 坐標(biāo)互轉(zhuǎn) // 格點(diǎn) - 像素畫線、畫棋子時(shí)用 int GridToPixel(int g) { return MARGIN (g - 1) * CELL_SIZE; } // 像素 - 格點(diǎn)鼠標(biāo)點(diǎn)擊時(shí)用CELL_SIZE/2 是關(guān)鍵四舍五入 int PixelToGrid(int px) { return (px - MARGIN CELL_SIZE / 2) / CELL_SIZE 1; }邏輯說明整數(shù)除法向下取整直接拿 (px - MARGIN) / CELL_SIZE鼠標(biāo)落在兩個(gè)交叉點(diǎn)正中間時(shí)會(huì)偏到左邊一格這就是「點(diǎn)偏一格」的玄學(xué)來源。加上 CELL_SIZE/2 把除法變成四舍五入每個(gè)交叉點(diǎn)周圍半徑 14 像素半個(gè)格距都是有效命中區(qū)點(diǎn)歪一點(diǎn)也不會(huì)落錯(cuò)格。參數(shù)說明MARGIN、CELL_SIZE 在工程里必須全局統(tǒng)一不能一處用宏一處用字面量。棋子直徑取 CELL_SIZE - 4留出相鄰棋子的縫隙棋盤線用 1 像素默認(rèn)畫筆星位畫小實(shí)心圓坐標(biāo)文字用 TextOut 標(biāo)注在格點(diǎn)外側(cè)。這些值都集中在 GameDef.h 里定義調(diào)完 UI 不需要?jiǎng)右?guī)則代碼。4.2 雙緩沖MFC 重繪不閃的標(biāo)配寫法直接用 CPaintDC 畫棋盤線的后果是每次 Invalidate 觸發(fā) OnPaint窗口先把客戶區(qū)擦白再逐線畫落子、拉伸都閃成一片。雙緩沖的本質(zhì)是先在內(nèi)存位圖上畫完所有內(nèi)容再一次 BitBlt 上屏// GoDlg.cpp —— OnPaint 雙緩沖 void CGoDlg::OnPaint() { CPaintDC dc(this); CDC memDC; memDC.CreateCompatibleDC(dc); CBitmap bmp; bmp.CreateCompatibleBitmap(dc, m_clientW, m_clientH); CBitmap* pOld memDC.SelectObject(bmp); DrawBoard(memDC); // 畫棋盤線、星位、坐標(biāo) DrawStones(memDC); // 畫黑白棋子 dc.BitBlt(0, 0, m_clientW, m_clientH, memDC, 0, 0, SRCCOPY); memDC.SelectObject(pOld); // 收尾換回原對(duì)象再刪資源 bmp.DeleteObject(); memDC.DeleteDC(); }邏輯說明m_clientW / m_clientH 是客戶區(qū)當(dāng)前尺寸在 OnSize 里用 GetClientRect 取值。DrawBoard 內(nèi)部用 MoveTo / LineTo 畫橫豎各 19 條線按坐標(biāo)標(biāo)注 A-S 和 1-19DrawStones 遍歷棋盤數(shù)組非空格點(diǎn)用 Ellipse 畫實(shí)心圓。所有繪制全在內(nèi)存 DC 完成屏幕只做一次 BitBlt 合并輸出。參數(shù)說明畫棋子注意 Ellipse 的矩形邊界——中心是 GridToPixel 的返回值左上角是中心減半徑右下角是中心加半徑。黑棋用黑色實(shí)心畫筆加淺灰窄邊框提亮白棋用白色實(shí)心加灰色描邊不然白棋在淺色棋盤上會(huì)隱身。注意OnPaint 里創(chuàng)建的 GDI 對(duì)象必須成對(duì)釋放先 SelectObject 換回舊對(duì)象再 DeleteObject。GDI 泄漏的典型癥狀是程序運(yùn)行半小時(shí)后棋子畫不出來重啟又恢復(fù)正常排查起來非常痛苦。4.3 悔棋與局面棧vector 做歷史記錄的完整閉環(huán)圍棋的悔棋不只是拿掉最后一顆子——還得把提掉的對(duì)方棋子按原坐標(biāo)放回去所以落子時(shí)必須把提子信息記錄下來// GameDef.h —— 一手棋的完整記錄 struct Move { int row, col; // 落子位置 int color; // BLACK / WHITE std::vectorstd::pairint,int captured; // 被提的對(duì)方棋子 }; std::vectorMove g_moveStack; // 全局歷史棧// Rule.cpp —— 悔棋實(shí)現(xiàn) void UndoLastMove() { if (g_moveStack.empty()) return; Move mv g_moveStack.back(); g_moveStack.pop_back(); board[mv.row][mv.col] EMPTY; // 摘掉這手棋 for (size_t i 0; i mv.captured.size(); i) { int rr mv.captured[i].first; int cc mv.captured[i].second; board[rr][cc] Opponent(mv.color); // 被提的放回去 } g_history.pop_back(); // 局面快照同步回退劫判斷才不亂 }邏輯說明captured 里棋子的顏色恒為對(duì)手色不用單獨(dú)記錄?;谄鍟r(shí)按對(duì)方顏色放回原位再順手把局面快照 pop 掉——這條最容易漏漏掉之后劫判斷會(huì)拿舊局面對(duì)比當(dāng)前棋局直接翻車。vector 的 back() 返回末尾引用pop_back() O(1) 刪除作為棧用非常順手。參數(shù)說明pairint,int 存坐標(biāo)足夠追求可讀性可以換成小結(jié)構(gòu)體。整份歷史棧在「新開局」時(shí)用 clear() 一次性清空同時(shí)清掉 g_history兩棧同生共死。悔棋按鈕的消息響應(yīng)里調(diào) UndoLastMove 后記得 Invalidate(FALSE)讓棋盤立刻刷新。5. 避坑記錄VS2010 編譯運(yùn)行圍棋源碼的 5 個(gè)高頻翻車點(diǎn)編譯老工程和寫新工程完全是兩碼事。v100 工具集、MBCS/Unicode 字符集、GDI 重繪、MFC 運(yùn)行庫這四個(gè)關(guān)鍵詞湊在一個(gè)圍棋項(xiàng)目里就是新手最常見的勸退現(xiàn)場(chǎng)。下面 5 條按出現(xiàn)概率排序每條都是「現(xiàn)象、原因、解決」三段式照著定位能省出大半天。先說兩個(gè)通用習(xí)慣看編譯輸出窗口的第一條錯(cuò)誤而不是最后一條以及把錯(cuò)誤全部清完再按 F5別讓第一次報(bào)錯(cuò)淹沒在后續(xù)的級(jí)聯(lián)錯(cuò)誤里。5.1 .sln 雙擊打不開提示版本不兼容現(xiàn)象用高版本 VS 打開 VS2010 的 .sln彈窗提示需要進(jìn)行一次單向升級(jí)點(diǎn)確認(rèn)后代碼能看F5 報(bào)錯(cuò) C1083 找不到 stdafx.h 或一堆 MFC 頭文件。原因VS2010 的平臺(tái)工具集是 v100高版本 VS 默認(rèn)把工程換成自己的工具集但老工程里的附加包含目錄沒有跟著遷移裸裝 VS2010 不帶 SP1 時(shí)部分 MFC 頭文件本身就缺內(nèi)容換誰打開都編不過。解決堅(jiān)持用 VS2010 就先裝 VS2010 SP1 再開工程換高版本就在項(xiàng)目屬性 → 配置屬性 → 常規(guī) → 平臺(tái)工具集里顯式改成 v140 / v142改完重新生成解決方案。如果 C1083 還指向某個(gè)盤符下的絕對(duì)路徑頭文件把附加包含目錄改成相對(duì)路徑工程挪了位置才不會(huì)再次崩塌。提示改工具集前先復(fù)制一份 .vcxproj 備份升級(jí)過程會(huì)改寫項(xiàng)目 GUID 和若干屬性不備份就沒有后悔藥。5.2 界面中文全部亂碼現(xiàn)象編譯鏈接全部通過運(yùn)行后對(duì)話框按鈕上的「落子」「悔棋」「開始」全顯示成問號(hào)或菱形豆腐塊英文正常。原因源碼 .cpp/.h 和 .rc 資源文件的保存編碼與項(xiàng)目「字符集」設(shè)置不一致。VS2010 默認(rèn) Unicode 但編輯器可能按系統(tǒng) ANSI 代碼頁存盤或者反過來工程用多字節(jié)字符集而文件是 UTF-8——編譯器按錯(cuò)誤的編碼讀中文字面量出來的就是亂碼。解決先統(tǒng)一字符集項(xiàng)目屬性 → 配置屬性 → 常規(guī) → 字符集選「使用 Unicode 字符集」再把所有 .cpp/.h/.rc 用 VS 菜單「文件 → 高級(jí)保存選項(xiàng)」轉(zhuǎn)成 UTF-8 with BOM。注意 .rc 資源文件的亂碼必須單獨(dú)看——資源編譯器按文件內(nèi)聲明的代碼頁解析正文轉(zhuǎn)了 .rc 沒轉(zhuǎn)界面上照樣是豆腐塊。判斷文件編碼有個(gè)土辦法記事本打開另存為對(duì)話框的編碼下拉框會(huì)顯示當(dāng)前檢測(cè)到的編碼UTF-8 會(huì)明確寫出來ANSI 則對(duì)應(yīng) GBK。5.3 落子瞬間棋盤閃白現(xiàn)象每點(diǎn)一下鼠標(biāo)棋盤先整個(gè)白屏再重新畫出來連續(xù)落子閃爍肉眼可見拉伸窗口時(shí)更嚴(yán)重。原因OnPaint 里直接用 CPaintDC 一塊塊畫棋盤線配合 Invalidate(TRUE) 強(qiáng)制擦除背景重繪路徑變成了「擦白 → 畫線 → 擦白 → 畫子」的循環(huán)閃爍是必然結(jié)果。解決照第 4 章的內(nèi)存 DC 雙緩沖先在內(nèi)存位圖畫完再 BitBlt 上屏Invalidate 參數(shù)從 TRUE 改成 FALSE。改完做一個(gè)回歸測(cè)試按住窗口右下角連續(xù)拖動(dòng)縮放棋盤應(yīng)該平滑跟手全程看不到白閃。如果雙緩沖后還閃重寫 OnEraseBkgnd 直接 return TRUE告訴系統(tǒng)背景永遠(yuǎn)不需要擦。5.4 明明圍住了對(duì)方棋卻提不掉現(xiàn)象單測(cè)數(shù)氣函數(shù)結(jié)果正確但實(shí)戰(zhàn)里白棋被黑棋圍死界面上的白子卻始終不消失或者一整塊被提了一半。原因visited 靜態(tài)數(shù)組在上一次調(diào)用后沒歸零CollectGroup 第二次運(yùn)行時(shí)帶著殘留的 true 標(biāo)記跳過大量棋子連通塊收集不全氣數(shù)虛高。另一個(gè)隱蔽情況是 TryPlaceStone 的失敗分支先 return 再恢復(fù)棋盤順序反了棋盤上留下一顆刪不掉的幽靈棋。解決在 CountLiberties 入口強(qiáng)制 memset(visited, 0, sizeof(visited))并把 TryPlaceStone 每個(gè) return false 分支都改成先恢復(fù)棋盤再返回。驗(yàn)證用一個(gè)固定棋譜白棋先放 (1,1) 角黑棋連下 (1,2)、(2,1)此刻白棋四鄰全是黑棋或邊界應(yīng)被提掉 1 顆打印白棋總數(shù)從 1 變 0 才算通過再點(diǎn)悔棋白棋總數(shù)應(yīng)恢復(fù)為 1。這套三步棋能同時(shí)驗(yàn)證提子和悔棋兩條邏輯。5.5 生成的 exe 拷到別的機(jī)器啟動(dòng)閃退現(xiàn)象本機(jī) F5 跑得歡把 Release 目錄下的 exe 單獨(dú)拷到另一臺(tái) Windows 機(jī)器雙擊報(bào) 0xc000007b 或者干脆沒反應(yīng)。原因工程默認(rèn)動(dòng)態(tài)鏈接 MFC 運(yùn)行庫VS2010 對(duì)應(yīng) mfc100u.dll 和 msvcr100.dll目標(biāo)機(jī)器沒裝對(duì)應(yīng)版本運(yùn)行庫就啟動(dòng)失敗。0xc000007b 還經(jīng)常和 32/64 位不匹配摻在一起工程編的是 x86目標(biāo)機(jī)器沒裝 x86 運(yùn)行庫只有 x64 的也會(huì)報(bào)這個(gè)碼。解決不想在目標(biāo)機(jī)器裝運(yùn)行庫就在項(xiàng)目屬性 → 常規(guī) → MFC 的使用里改成「在靜態(tài)庫中使用 MFC」exe 體積增大約 1 到 2 MB但完全自包含。同時(shí)檢查配置管理器里的活動(dòng)解決方案平臺(tái)是 Win32 還是 x64與運(yùn)行環(huán)境對(duì)齊。改完重新編譯用 dumpbin /dependents 查看 exe 依賴列表確認(rèn)沒有 mfc100u.dll 就說明靜態(tài)鏈接成功。6. 給 AI 對(duì)手加一檔「棋感」評(píng)分函數(shù)與自對(duì)弈驗(yàn)證6.1 靜態(tài)評(píng)分落子30 行讓 AI 從隨機(jī)棋手升級(jí)成入門棋手規(guī)則和界面跑通之后最有成就感的收尾是把只會(huì)隨機(jī)落子的 AI 換成一個(gè)有基本棋感的對(duì)手。最輕量的改進(jìn)是給每個(gè)空點(diǎn)打靜態(tài)評(píng)分——角、星位給加成隨機(jī)擾動(dòng)控制在 10% 以內(nèi)保證同一局面不是每次都下同一個(gè)點(diǎn)// Ai.cpp —— 極簡(jiǎn)靜態(tài)評(píng)分落子 int EvalGrid(int r, int c) { if (board[r][c] ! EMPTY) return -99999; int score rand() % 10; if ((r 1 || r 19) (c 1 || c 19)) score 50; // 角 if (r 1 || r 19 || c 1 || c 19) score 15; // 邊 return score; }實(shí)現(xiàn)注意評(píng)分只在空點(diǎn)上調(diào)用有子的位置直接給極負(fù)分隨機(jī)擾動(dòng)最后加別讓隨機(jī)數(shù)蓋過棋型分。調(diào)參驗(yàn)證別靠人機(jī)試玩的主觀感受——讓新舊兩個(gè)版本各執(zhí)黑白自對(duì)弈 30 局統(tǒng)計(jì)勝率和平均手?jǐn)?shù)手?jǐn)?shù)明顯變長(zhǎng)說明策略變保守了勝率穩(wěn)定過半說明改動(dòng)真實(shí)有效。我個(gè)人的習(xí)慣是每改一個(gè)參數(shù)就往歷史棧里留一條記錄跑完自對(duì)弈回看上一版棋譜而不是靠一局勝負(fù)下結(jié)論。圍棋程序的黑匣子不淺但每一層都有具體驗(yàn)證方法局面快照驗(yàn)證規(guī)則自對(duì)弈統(tǒng)計(jì)驗(yàn)證策略最后才輪到人機(jī)試玩。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久精品国产亚洲AV无码电影| 伊人久操| 九九成人视频| 欧美91色| 四月丁香婷婷| 大JI巴好深好爽又大又粗视频| 久久无码电影| 99最新日韩偷拍视频| 午夜男女爽爽爽影院视频| 婷婷色导航| 天天综合站| 一级aaaaa欧美中文字幕录像片| 麻豆福利视频导航| 亚洲古典另类欧美在线| 黑人粗大V S日韩女优视频| 亚洲密乳AV| 宅男午夜在线视频| 国产肏逼网站| 熟女中出视频| 天天视频黄网站| 91丝袜激情在线| 国产精品麻豆免费视频| 天天干1区2区在线| 日本淫色网| 青青草久草| 美女黄页| 麻豆视频国产一区二区| 大香蕉在线SuP| 欧美成人AⅤ大片在线观看| 97就爱干| 欧美一级色| 特色a在线上| 综合网~91综合网| 无套内射人妻在线播放| 久久久久九九九九| 日本久久999| 亚洲国产欧美中日韩成人综合视频| 天天操天天干美女网址导航| 中文字幕人乱码中文字的预防方法| av网页一区二区三区| 日本淫穴在线| 乱色视频中文字幕| 狠狠色噜噜狠狠狠狠狠色综合久久| 国产精品在线一区二区| 9九九九九视频在线观看| 麻豆成人AV| 草久久久| 婷婷色播婷婷| 亚洲无码精品AV久久久| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 人人操肉肉| 凹凸视频在线观看伊人| 色91综合网| 老司机香蕉久久久久| 中文字幕视频2区| 欧洲亚洲国产综合在线| 少妇天堂| 日韩欧美午夜一区二区| 亚洲精品黑丝| 蜜桃在线观看一区二区三区| 无码少妇精品一区二区60岁老人| 激情色图| 丁香7月婷婷| 91 刺激在线| 天天爽夜夜爽夜夜爽精| 人妻少妇精品视频一区二区三区| 99热精品国产| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 激情小说图片亚洲首页| 97超碰碰| 亚洲情色 自拍| 99色在线| 最新日韩黄片| 国产Av超碰| 欧美亚洲在线| 亚洲综合一| 射丝袜高跟鞋99| 午夜国产成人福利视频| 狼人综合婷婷激情四射| 狠狠操狠狠插| 免费观看有码高清视频| 色狠狠综合| 国产成年免费大片黄在线观看| 日日骚中文字幕| 久久9精品网站| 中文字幕在线观看网页| 亚洲日韩肥臀视频在线观看| 激情久久av一区av二区av| 在线色导航| 国产精品成人AV片免费看网站| 丝袜美腿丝袜| 久久亚州大香蕉| 96国产污污污丝袜| 青青草伊人久久| 大香蕉123| 另类一区| 國產尤物AV尤物在線觀看| av毛片aaaaa免费看| 夜夜爽夜夜爽| 一线黄色免费性爱片| 人妻人人做人人澡人人爽欧美一区| 97精品一区二区三区免费| 人妻五十路在线| 日韩ab网 | 97久久国产| 五月天日日操夜夜操| 黑人精品久久97| 超碰精品| 樱花草社区www中国| 欧美色偷拍 | 老熟妇一区二区三区…| 日本人妻中文字幕精品| 一级特级aaaa毛片免费观看| 十八禁成人网站在线观看| 精品国产人成在线| 免费在线黄片视频| 成功精品影院| 野狼激情网| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 99热超碰在线| yirendaxiangjiashipin| 情色AV电影| 亚洲色堂免费视频| 欧亚不卡| 91狠狠狠| 91天天| 99夜夜操| 欧洲在线性爱视频| 岛国激情视频在线观看| 凹凸视频在线观看伊人| 久久五月天婷婷| 97色伦欧美| 高清不卡国产| 久草精品一区| 久久久久99999| 亚州综合色| 国产精品国产亚洲区艳妇糸列| A片A5445444| 久操com| 亚洲古典另类欧美在线| 95人妻爽爽人人做人人澡| 亚洲熟妇丝袜在线观看| 日产123区精品免费观看| 欧美在线中M| 色约约一区=区三区| 91精品国产91久久青草| 被体育老师抱着c到高潮| 九九aV| 人妻精品一区二区全免费| 免费成人在线熟妇网| 伊人网在线点播| 秋霞怕怕片| 国产综合网站在线播放 | 欧美人与动性人交a| 国产黄色小视频网站| 久草福利在线资源站| 欧美色偷拍| 啊啊啊啊啊啊啊在线| 久久二| 日逼逼免费看| 麻豆天美国美国产AV| 久婷婷一区| 国产农村妇女毛片精品久久| 青青草密桃在线播放| 床上啊啊啊一区二区三区| 日本精品性生活久久久| 精品女同一区| 资源新线在线天堂| 黄色小视频日本txt| 九九内射在线| 熟妇高潮二区三区| 中文字幕美女91| 成人精品在线| 久操| 欧美激情另类一区二区| 啊视频在线| 干b在线性社区| 日韩射精| 成人精品在线观看| 亚洲AV色图一区| 2019久久久久久久久福利| 91碰碰| 日本久久999| 国产又色又粗又黄又爽| 男人的天堂在线2| 熟女精品日韩一区二区三区| 六月丁香网| 久久精品综合| 国产区91柔拿会所技师| 九九拍拍精品视频在线播放 | 久久日韩毛| 夜夜黄| 乱伦3P视频| 超碰天天操你比| 国产探花日韩援交| 欧美情色贴图| 日本天天操| 欧美夜夜骑视频| 欧美成人A√在线一区二区| 蜜臀av在线播放一区二区三区| 超碰偷拍| 99精品在线观看| 中文字幕一区二区无码成人| 蜜桃视频精品一区二区| 一区二区视频在看| 亚洲,欧美,春色,另类| 国产伊人精品在线| 九九热免费视频| 亚洲高潮影院| 黄页网站成人免费| A片三级无码| 中日韩久久久免费看| 国产激情在线| 熟妇人妻精品一区二区| 淫淫总合网| 深夜福利黄片| 97综合国产精品高潮久久| 一区二区三区国产在线播放| 午夜福利久久久噜久噜久久综合| A一区片| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 夜夜免费视频| 久久婷婷亚洲| 亚洲国产熟妇综合色专区| 色综合98| 天天干天天狼在线视频| 午夜经典| 国产午夜视频| 韩国一级婬片A片AAAAA| 日本道不卡| 男女激情中文字幕| www.av在线观看| 超碰97久| 少妇人妻精品| 成人在线视频网| 日韩有码专区| 天天摸夜夜操视频| 99精品视频在线观看| 91精品人妻一区二区三区蜜桃| 色嘟嘟人妻天堂网| 亚欧性爱无码| 亚洲天堂男人天堂网| 色999偷自拍拍| 99在线无码精品秘 入口黑人| 婷婷国产精品一区二区| 青青草黑寡妇男人天堂| 97香蕉碰碰人妻国产欧美| 国产剧情在线| 97国产精品久久久久| 亚洲国产第一页综合视频| 久久精品国产AV一区二区三区| 亚洲熟妇综合久久久久久| 欧美一级三级| 中文久久爆乳| 欧美亚洲一级在线观看| 超碰97欧美| 色欧洲97| 久久綜合很很很| 玖玖大干人妻| 亚洲国产欧美中文永久| 网站A V在线| 色噜噜人妻av中文字幕| 亚洲美女黄色| 加勒比av中文| 美女的肌被草喷水视频| 亚州精人品大香蕉| 丁香六月啪啪| 果冻国产精品麻豆成人av| 亚洲欧美日韩制服另类| 天天综合中文字幕 91| 成人在线午夜视频一区| 超碰成人最新最好看| 国产伦精品一区二区三区在线观 | 夜夜青青无码影院| 日本三级一区二区 在线| αⅴ天堂| 欧美aa一级片| 三级日本一区二区三区| 男人天堂资源| 亚洲97综| 青草成人免费视频一COm| 少妇99| 亚洲第一页欧美| 日韩色图 一区二区| 精品超碰中文在线| 亚洲国产一区二区三区四区国产| 岛国在线免费视频| 在线观看不卡一区二区三区| 久草成人| 欧美精品宗合| 成人精品无码| 亚洲国产美女久久久久| 69视频入口| 成人毛片免费| 久久大黄片| 亚洲97在线| 日夜精品| 91操熟女| 欧美欧美啪啪视频| 98人妻精品一区二区色欲| 97干色| 久久激情婷婷| 大色综合| 国产日产精品久久快鸭的功能介绍| 免费a v| 亚洲精品九九九| 中文字幕99999| 亚洲久久久| 久草新在线| 欧美精品庄| 黑人在线91| 综合亚洲网| 精品人妻一区二区三区四区| 日韩三级伊人| 干日本人少妇午夜寂寞影院| 日韩av一级黄片| 日韩av不卡在线观看| 国产 无码 一区二区| 精品一二三区久久AAA片| A片三级无码| 翔田千里av一区二区三区| 91粉嫩萝控精品福利网站_精品影音先锋国 | 九九九九免费高| 啊啊啊快操我视频| 一二视频神马久久传媒| 91爱剪切久久| 高清无码久操视频| 亚洲欧美国产成人综合不卡| 最新日产中文在线麻豆| 91 亚洲 欧洲| 亚州色图欧美| 麻豆成人AV| 26UUU欧美日本| 亚洲啪啪视频一区二区| 去干网最新版| 国产suv精品一区二区四区999 | 天天做日日爱夜夜爽| 人人爱操| 91精产一区二区三区| 欧美黑人168页欧美黑人167| 人妻夜夜爽天天爽三区麻豆AV网站| 精品无码欧美三级| 91天堂色男人的天堂| 日韩一级二级| 亚洲综合 欧美| 亚洲Av诱惑| 成全动漫视频观看免费下载| 99视频自拍| 久久一区,青青青青草视频在线播放| 青青伊人加勒比海| 色99999| 日本欧美亚洲高清在线看| 天天综合精品| 久久同城AV| 天天做天天爱| 久综合网| 91日日夜夜| 欧洲在线性爱视频| 一二三区在线| 国产熟女高潮一区二区三区| 91精品无码久久久久久久| HEYZO高无码国产精品227| 91九九九馒头| 日本媚薬中文字幕在线| 秋霞曰韩R级| 97色欧州| 思思热在线视频免费| 日本久久精品| 一本色道久久综合亚洲二区三区| 成人av在线播放| K8久久久久| 青娱乐啪啪视频| 人人人人插| 人妻精品综合中文字幕在线| 久久精品操| av在线免费一区二区| 97午夜剧场日韩| 3P丝袜熟女 色综合| 色呦呦呦在线观看视频| 青青草乱入乱欲视频在线观看| 精品在线蜜臀| 欧日韩不卡视.频| 亚洲一二三四区在线免费看视频| 97人人操人人摸| 日韩传媒在线| 家庭乱伦国产精品| 男人天堂.AB| 超碰九7| 人妻少妇精品一区二区三区| 97色操| 大香蕉久| 亚洲资源一区| 欧美极品少妇交| 九热中文字幕| 精品视频免费在线一区| 思思99热| 最近二区三区视频大全| 日韩乱码Av| 国产精品96久久久久久| 先锋精品av色鲁| 人人操人人肉久久精品| 激情综合97| 中文字幕精品探花视频| 日本日日色视频| 色色网91| 日韩精品一区,二区 九九...老司机| 天天操天天射天天日| 欧美青青视频| 亚洲最大无码中文字幕网站| 亚洲综合色图欧美| 久99久视频精选| 在线日韩日本亚洲国产| 欧美 亚洲 另类 综合| 操日韩第| 亚洲国产精品久久久久婷婷老年| 婷婷五月天色色| 夜色91| 日韩伦理视频| 日韩成人性爱AV| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 亚洲成人日韩小说| 天欧美在线| 99综合视频一体| 999精品久久久久久久| 高清不卡国产| 色欲av一区二区三区蜜芽| 91在线/欧洲| 亚洲古典另类欧美在线| 玖玖爱影院| 老熟妇综合| 91干熟女| 中文字幕一区二区视频在线观看 | 综合欧美激情网| 超碰4A| 欧美最婬乱婬爆婬性视频 | 色欲蜜臀AV| 综合激情97 | 亚洲综合888| 日本狂喷奶水在线播放212| 亚洲精品久久久久久久蜜桃臀| 天天爽夜夜爽夜夜爽精| 亚洲电影中字一区二区| 日本福利社| 91人妻熟女| 死我十八禁| 亚洲精品久久久久毛片A片拉屎| 色色综合97| 91九九| 国产欧美日本亚洲精品 | 欧美色www亚洲国产阿娇要播| 亚洲成人妻日韩在线| 91丨九色丨43老版熟女| 俄罗斯一区二区视频在线观看| 国产日韩中文字幕欧美| 啊啊啊啊在线观看网址| 青青草九九九九九| 亚洲国产日韩欧美熟妇在线| 国产精品白丝在线播放| 天美传媒AV在线| 好爽免费视频,| 久操B网| 欧洲熟妇xxXx欧美老妇裸体| 中文字幕乱在线伦视频中文字幕乱码在线| 97天天综合| 懂色av中文字幕| 午夜欧美神马久久久久| 国产四虎在线| 人妻天天夜夜爽一区二区| 91成人精品在线播放| 激情五月综合开心五月| 亚州综合在线| 国产操偷| 人妻啪| 成人国产视频在线观看| 一区二区视频在看| 伊香蕉综合久久久久久久噜噜噜| 2020中文字幕在线| 香蕉色网| 欧美 亚洲 综合 制服 另类| 亚av顶级裸体一区二区三区四区五区 | 欧美成人一区二区三区在线播放| 国产高清亚洲日韩一区 | 人妻精品综合中文字幕在线 | 欧美偷拍区| 激情综合网激情综合| 中文字幕视频在线观看| 玖玖爱视频网站| 国产97av| 精品久久久久综合无码| 啊啊啊啊免费视频| 综合色区偷拍| 日韩欧美加勒比| 亚洲毛片基地专区| 蜜臀久久99精品久久久久久-DVD| AV有码在线| 久久老熟女| 精品免费囯产一区二区三区 | 人妻大相焦在线| 97综合国产精品高潮久久| 澳门人妻久久| 日韩激情视频| 九九九精品一区二区无码| 亚av顶级裸体一区二区三区四区五区 | 人妻第一页| 欲色综合| 亚洲97在线观看| 男人的天堂 在线一区| 五月婷亚洲精品天堂| 你懂的在线观看区国产| 日本一区二区三区午夜观看| 亚洲自拍一区夜夜操| 亚洲天堂日本| 2019午夜福利视频| 亚洲日韩资源| 欧美91精品国产自产| 极品销魂美女一区二区| 国产高清免费不卡av| 亚洲一本色道中文无码aV天美| 亚洲日本韩国在线| 亚洲人成色9999精品久久| 大香蕉欧美伊| 九九国产| 99热一区二区三区四区| 欧美狠狠干| 亚洲精品乱码线路中文字幕| 中国女人内射6XXXXX| 高清在线偷拍自拍视频| caopeng97| 九一精品牛牛一区二区| 天天搞欧美| 久久这里只有精品9| 国产91av在线播放| 日本中文字幕在线视频| 四虎永久在线精品免费网址| 97精品国产精品免费观看| 综合亚洲网| 欧美亚洲国产91在线| 91小视频| 裸模AV女优| 熟女久久| 亚洲图片色图欧美另类| 东京热亚洲一区二区| 日日做夜狠狠爱欧美黑人| 欧美大的香蕉有线电视视频| 欧美αv.com| 992这里有精品| 中文字幕-区二区三区四区视频中国| 91操熟妇| 无码操逼网| 江都AV在线| 玖玖综合视频| 国产av强奸美女| 玖色AV| 亚洲综合色在线| 被操高清无码视频| 欧美人妻一区二区| 操操操五月天婷婷丁香影院| 天天干,天天日| 欧美色日| 91人妻最真实刺激绿帽| 久久久艹艹艹| 精品人妻一区二区免费看| 综合 欧美 亚洲 日本| 热久久91婷婷| 亚洲 欧美 第一页 | 日韩美女高潮喷水视频| 日本孕妇一区二区视频操逼免费看 | 亚洲精品99| 蜜乳av一区二区三区| 韩国三级一线观看久| 色婷婷久久| 91美女视频电影| 国产女人高潮嗷嗷嗷叫小说| 双插在线| 亚洲欧洲无码bt精品合集| 91九九| 97亚洲自在精品在线观看| 国产亚洲精品av一区| 75大香蕉| 国产精品久久久无码aV去| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 九九综合久久中文字幕| 日韩伦理视频| 夜草网站| 97这里都是精品| 国产91福利小视频在线观看| 美女露胸露尿口| 亚州一区二区| 日韩内射视频| 97免费视频在线观看| 久久怡红院| 日韩在线电影| 区日韩亚洲乱码av电影| 欧美影院一区二区三区| 午夜精品久久久99| 91深夜夜| 91N综合网在线| 国产美女高潮叫床视频| 天天久久久久久| 超碰国产在线| 97国产精品| 97国产亚洲中文在线| 亚洲精品国产无码高清| 加勒比AV天堂| 岛国片在线观看视频亚洲| 老鸭窝在线视频播放| 五月婷婷五月天| w w w.久久精品| 日本999精品视频| 伊人久久大香线蕉无码| 男人天堂免费| 丁香激情五月天| 一级做受视频免费是看美女| 好舒服视频| 在线视频日韩欧美国产| 亚洲熟女综合网| 草b在线| 综合久久久久久久综合网| 久久亚洲日韩国产欧| 男人的天堂啪啪| 三男一女不戴套的A片| 青青伊人久久| 久久久一级| 自怕偷自怕亚洲精品| 欧美淫乱视频| 啊啊啊好湿国产一二| 日韩欧美aⅴ综合网站发布| 91老妇女| 日日干夜夜操视频h| 91三级理论片播放器| 91人妻熟女| 久久久久亚洲一区女同性恋中文字幕| 青草av在线| 日韩视频精品在线观看| 青青草在线视频美女| 素人美腿视频网站| 国产黄色av大片网站| 色色毛片| rivers-china.com| 欧美在线大香蕉| 亚洲久热| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 试看60秒 爽| 无码久| 91人妻超碰| 五月丁香社区婷婷日韩欧美精品影院| 国产熟女无套内射| 欧美成人国产精品| 国产农村妇女精品一二区| 久久人人看| 精品高清一区二区三区三州| 精品人妻一二三| 日韩干B| 大香网伊人久久综合网eew| 屌色在线97视频| 日韩人成网站在线播放| 精品国产91内射久久| 欧洲人妻视频| 99福利社| 99后入| 自拍二页| 夜夜操91744565| 男人的天堂在线有码| 影音先锋中文字幕日本好一区二区| 国产AAAAAABBBBB| 黄骗免费网站| 狠狠爱夜夜| 91美女视频直播| 日韩丨制服丨中文|在线| 妇人噜噜| 精品小视频在线| 日韩精品三区四区| 淫淫总合网| 大香蕉亚洲中文| 色婷婷狠狠18禁| 91人妻素女| 国产操操日韩三级黄| 性爱综合一区二区| 免费少妇一区二区| 国产真乱mangent| 操国产逼| a片 xxxx受爽视频| 97干97色| 久久精品| 欧美性爱第一页久久| 日本国产欧美一区三区二区| 久久精品人妻一区| 国产精品免费久久久久久久久久| 超碰97欧美| 亚洲色图欧美一区二区不卡| 五月亭亭六月丁香| 国产亚洲福利第一页丝袜| 亚洲精品久久久久毛片A片拉屎 | 欧美日韩精品久久久久东北老熟妇| 91无码人妻| 果冻传媒A片一二三区| 人人摸人人舔一区二区| 欧美色爱综合| 東南亚性呦成人伦理资源在线视频| 亚洲色图 91| 国产精品乱码久久久| 久久久偷拍| 91综合网| 97在线精品观看视频| 日韩Va亚洲va欧美Ⅴa久久| 太久视频| 色婷婷导航| 一道本久久棕合爱| 麻豆AV96熟妇人妻| 中文字幕在线2| 人妻少妇无码| 久久精品—区二区三区内射| 亚洲春色欧美激情自拍| 蜜乳AV一区| 免费看日产一区二区三区| 午夜天堂精品久久久久91| 熟妇视频一区二区三区在线观看| 日韩久久艹| 精品人妻一区二区三区蜜桃视频| 色综91| 五十路六十路素人熟女| 精品v日韩欧美国产| 亚洲高潮少妇| 人妻在线大香蕉| 啊啊啊轻点在线观看| 天天操天天舔| 欧美精品一区二区少妇免费A片| 成人午夜小视频手机在线看| 国产11页| 丝袜av一区二区三区| 天天躁日日躁狠狠狠躁| 搡老熟女免费视频| 大地资源在线观看中文第二页| 欧美嫩性色| 中文字幕AV片| 福利视频网站| 亚洲精品天堂久久A∨51成人漫| 丁香激情网| 密臀AV在线| 凌辱美少妇久久aV| 老熟女乱子伦中文字幕一区二区| 成人精品在线观看| 人妻人妻天天碰| 大香蕉综合网| 国产欧美日韩精品中文| 婷婷国产精品九区| 伊人久大| 岛国黄| 精品久一区免费| 亚欧洲一区二区视频| 天天影视色香欲综合网小说| 日韩啪啪视频| 国产第二页| 亚洲 无码 偷拍| 久久久精品国产亚洲AV无码| 10000部十八禁看电影| 色逼综合| 欧美日韩第一页| 一区| 波多野结衣AV无码一区| 性爱动态120秒| 日韩欧美~中文字| 国产美女裸体秘 永久无遮挡| 亚洲精品99| 五十路成人在线视频二区三区| 久久久久久亚洲Av无码| 麻豆精品久久久久久久| 99精品无码| 精品亚洲国产成人av网站| 清纯唯美激情四射| 97亚洲欧美| 亚洲国产精品久久久久久久久久| 欧美日韩97在线| 日本成人A片免费看| 色鬼在线综合| 一级毛片电影免费看| 五月丁香影院| 91热热色| 人人爱操| 亚洲欧美日韩不卡人妻| 九九色逼| avav青青草久久夜| 亚欧高清v| 96精品久久久| 国产1769在线| 懂色av中文字幕| 欧美人妻精品一区二区| 骚女高跟AV在线| 操逼片中文| A一级色女| 国产精品色片一区二区| 囯产精品强| 国产精品久久久久中文字幕| 亚洲十八禁止| 亚欧日韩成人| 伊人午夜福利视频| 国产福利第一视频| 日比av无码| 亚洲va综合va国产va中文| 欧美美女视频| 久久国色天香香蕉| 亚洲天堂五月天国产| 亚洲综合113页| 再深点灬舒服灬太大了添视频 | 色五月婷婷中文字幕| 日韩精品三级| 97天天摸天天碰| 青春草莓视频在线观看网址| 日日干夜夜操视频h| 高潮的A片激情扒开一区| 日韩欧美偷拍美女视频| 懂色AV蜜臀无码精品APP| 亚州,欧美在线| 开心五月婷婷| 久久国产在线一区二区| 中国小夫妻勾搭露脸淫荡对白| 国产h片在线观看视频| 亚洲精品黑丝| 99成人| 人妻一区二区三区视频| 狠色婷婷久久一区二区三区_| 亚洲偷拍自拍在线视频| 日韩小电影| 超碰天天操| 婷婷在线精品| av毛片aaaaa免费看| 日本中文字幕一区| 九九亚洲| 国产一区二区在线播放量| 天海翼久久| 天堂蜜桃无码视频一区二区| 福利社区午夜一区二区| 97中文综合| 欧美有码亚洲中文字幕一区二区三区四区| 91九色蝌蚪在线观看| 人人妻人人爽人人精品| 亚洲五区熟女| 激情专区综合| 国产辣妈在线视频福利| 欧美色91| 啊啊啊爽爽| 亚洲精品国产AV天美传媒| 国产真实野战在线视频| 色悠久| 91精品免费| 中文啪啪视频| 秋霞蝌科网日本一区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 欧美精品日韩一区二区| 人人爱人人乐人人操| 天天干夜夜一操| 亚洲女优有码无码高清| 国产大片精久久久久久| 精品成人av一区二区三区在线| 亚洲人成网站7777| 久久久精选| 久久草视频污视频| 午夜久久一区二区无码中出| 日韩黄色成人性爱| 亚洲图片日本AⅤ欧美在线| 国产欧美另类久久久精品课程| 日欧操屄| 九九热精品| 尤物视频偷拍免费| 国产美女91视频| 91人妻爽爽人人做人人澡| 岛国大片在线观看网站入口| 99精品国产户外露出| 殴美色网| 91久久精品美女高潮喷水| 四虎884a| 欧美无圣光在线| 色婷婷五月天| 秋霞视频一区二区| 亚洲av影院在线观看| 日韩精品色呦呦| av网站免费看| 性91| 99久在线精品99re8蜜桃| 欧美丝袜美女电影一二三四区| 久久水蜜臀亚洲AV无码精品| 78综合网| 婷婷四五区| 五月婷婷六月丁香| 香蕉综合网| 免费久久精品麻豆一区二区av| AV网站高清无码在线观看| 性久久久| 国产福利视频精品视频| 啪啪视频免费在线观看| 乱伦强奸区日韩| 九九九网站| 91亚洲人| 亚洲97| 大象AV在线| 成人精品无码| 操国产逼| av一区二区三区四区| 色在线综合| 久久亚州精品成人Av无| 亚洲国产精品无码AV久久久| 一个色导综合| 国产精品网址| 国产精品自拍xxxx| 日韩一区二区三区四区五区| 色青青久久影视| 四虎影院成年人片| 丁香五月色| 亚洲综合色男人网| 欧美性爱97超碰| 欧美日韩人人精品| 精品久久久久久久久久久久 | 懂色AV蜜臀无码精品APP| 亚洲最新a在线观看| 免费中文在线| 99爱精品| 1024亚洲中文字幕久在线看片你懂的 | 天美传媒Av在线| 男人天堂综合| 综合网亚洲1| 精品免费囯产一区二区三区| 九九热九九| 伦激情人妻另类人妻| 久干9操| 九九色影院| 久久精品视频久久久| 欧插网站| 国产欧美成人精品| 青青草原香蕉日本Ap| 亚洲男人天堂av| 一级@啪啪视频| 一个人免费HD91视频| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 日韩精品一区二区三区色欲| 国产情侣自拍在线播放| 五月婷在线| 91丝袜在线观看视频在线观看| 久久精品国产99国产精品亚洲| 玖玖爱伊人玖玖爱| 青草成人免费视频一COm| 亚洲乱色熟女一区| 激情久久久| www老逼91| 国产精品毛片| 中文字幕一区二区视频在线观看| 亚洲一区二区三区播放在线| 性一交一乱一交A片久久四色| 丰满人妻一区二区三区在线| 午夜精品久久999热蜜桃介男人用| 国产精品在线免费| 亚洲精品三区在线观看| 这里有精品| 农村妇女精品一区二区| 日韩精品午夜操呦呦不卡影院 | 久草毛片| 国产美女在线精品免费看| 91小视频| 亚洲色图欧美色图制服丝袜| 91超碰在线观看| 9国产超碰| 超碰免费在线| 欧美日韩青操| 人人摸人人入| 第一高清av中文字幕| 久久伊人网视频一区二区三区 | 天天综合欧美综合| 国产精品一区二区三区在线| 久久riav中文精品| 久热久一区二区三区| 九色 蝌蚪 熟女自 | 蜜汁欧美| 国产亚洲美日韩Aⅴ中文字幕无码成人| 欧美国产日韩清纯唯美| 久久骚| 影音先锋日本乱伦| 粉嫩国产精品久久粉嫩| 亚洲欧美国产精品久久久久久久| 黄片国产精品一区二区| 日本三级小说中文字幕| 欧美自拍网| 人伦四五区| h4610国产人妻| 亚洲熟女综合| 97在线视频观看| 五月丁香| 91精品91久久久久77777| 亚洲一级性爱视频免费看| 中文字幕丝袜人妻| 天天综合~91| 亚洲色色色| 国产精品伦理| 91精品黄在线观看| 99最新日韩偷拍视频| 嗯啊抽插大香蕉网页| 五月天久久婷婷亚洲| 日本影视久久免费| 97天天爽| 国产乱子伦久久精品综合一区二区三| 六十路日本| 蜜臀中文无码午夜| 色情综合| 天天肏夜夜肏| www.色99| 91爱剪切久久| 婷婷五月丁香五月| 97视频播放| 亚洲精品一区中文字幕乱码| 啊v在线观看视频| 国产精品色| 好爽视频在线观看视频| 人妻天天夜夜爽一区二区| 97亚洲中文| 欧美在线官网| 久久久久久网址| 九九英色视频| 国产乱色国产精品免费视| 伊人久久久日韩一区| 99国产精品视频尤物| 超碰无码五月97| 大伊香蕉在线视频免费| 国产自偷| 这里只有精品久久| 国产老女人久久毛| 久久亚洲天天做| 人人操人人插人www| 久久人人爽av亚洲精品天堂桃色| 久久东京国产精品视频| 久久久女人| 青青草九九九九九| 久久中文字幕一区不卡| 人人搡人人肉久久精品| 粉嫩不卡一区二区性爱| 强乱老妇中文字幕| 日韩另类色图| 黄色香蕉视频网站一区| 亚洲精品一区二区免费在线观看| 亚洲情色中文字幕一区| 亚州高清AV| 中文字幕91综合| 樱花蜜乳av| 亚洲久久天堂| 天天影视综合网欧美精品| 一级二级三级黑人无码| 91美女視頻| 欧美色图天堂在线| 欧美人人曰人人操人人射射| 不卡六六在线91| 一二三四日本视频高清| 涩涩涩综合| 78m成人视线| 五月天色电影| 90后性网国产欧美| 操逼网站网站| 97亚洲国产| AV天堂电影网| 成人三级片无码| 操国产高清| 亚洲在钱| 久久9 9 9精品| 国产女生在线| 国产高清视频无码在线| 蜜臀一二三区| 色诱avtt| 91九色网| 色网在线视频观看免费| 久久东京热久久| 欧洲精品久久| 台湾佬中文娱乐自偷自拍| 亚洲 欧美 手机在线观看| 精品视频一区二区| 好一吊区二区| 日韩啪啪啪视频| 五月天婷婷激情| 人妻aa| 亚洲成人在线高清| 精品无吗m| 人妻素股| 高清孕妇孕交 交孕妇| 色色色综合网| 欧美极品少妇| 婷婷色网| 强被迫伦姧在线观看无码网站| 日韩av色图综合| 肉嘟嘟www视频在线观看高清| 性91| 亚洲色香| 婷婷五月花| 久久久久久亚洲Av无码| 性欧美| 九九九九九九成人| 欧美 日韩 亚洲 春色| 精品久久九| 国产精品青草综合久久| 日韩成人私密一级精品av| 91在线美女| 天天干天天燥| 91网站在线播放| 欧美视频在线视频免费va| 夜夜精品视频| 亚洲情色在线| 四虎影院成年人片| 天天伊人| 色眯眯av| 啊…啊…操我用力操我 | 午夜理论片在线观看免费| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 天堂涩涩| 欧美亚洲第一页| 中文无线日韩一区| 亚洲天堂中文字幕无码男同| 97精品久久| 国产后入清纯| 丰满欧美少妇| 日本精品高清一二区一本到| 久久久少妇| 激情婷婷丁香网| 禁十八久久| 亚洲男人天堂2019| 久久久久亚洲?V片无码V| 91丝袜美女视频| 欧美超碰人妻97| 蜜桃精久三区| 六六久久日韩不卡| 成人乱码一区二区三少妇| 久久精品午夜国产亚洲AV无码| 伊人嫩草| 亚洲欧美91√| 中文字幕日韩精品一区二区三区| 综合色99| 亚洲午夜福利在线影院| 人人贴人人摸| 欧美一区二区一级岛国大片| 超碰日本97美女人妻人人玩人人爱| 亚洲熟女综合| 在线观看一卡二卡| 色色亚洲| 最新AVzaixian| 久久精品亚洲婷婷| 天天干天天做| 日本三级久| 成人精品电影| 18精品一区| 久久精品老司| 超碰人妻中文在线| 91夜夜蜜桃臀1区2区3区| 欧美中文字幕一区| 北条麻妃性愛视频| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 超碰午夜在线| 五月天伊人| 91精品人妻五十路| 午夜传煤十二区精品| 日韩精品-原创伙伴| 偷拍 欧美 日韩| 黄色片一区二区三区四区五区| 嗯啊抽插大香蕉网页| 五月婷婷无码| 成人网欧美风情| 国产蜜臀精品一区二区尤物| 亚洲精品一区二区精品|