色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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)庫(kù)頭文件報(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)棧空間完全扛得住。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ú)記錄。悔棋時(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兩棧同生共死?;谄灏粹o的消息響應(yīng)里調(diào) UndoLastMove 后記得 Invalidate(FALSE)讓棋盤立刻刷新。5. 避坑記錄VS2010 編譯運(yùn)行圍棋源碼的 5 個(gè)高頻翻車點(diǎn)編譯老工程和寫新工程完全是兩碼事。v100 工具集、MBCS/Unicode 字符集、GDI 重繪、MFC 運(yùn)行庫(kù)這四個(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)容換誰(shuí)打開都編不過。解決堅(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 代碼頁(yè)存盤或者反過來工程用多字節(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)聲明的代碼頁(yè)解析正文轉(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)行庫(kù)VS2010 對(duì)應(yīng) mfc100u.dll 和 msvcr100.dll目標(biāo)機(jī)器沒裝對(duì)應(yīng)版本運(yùn)行庫(kù)就啟動(dòng)失敗。0xc000007b 還經(jīng)常和 32/64 位不匹配摻在一起工程編的是 x86目標(biāo)機(jī)器沒裝 x86 運(yùn)行庫(kù)只有 x64 的也會(huì)報(bào)這個(gè)碼。解決不想在目標(biāo)機(jī)器裝運(yùn)行庫(kù)就在項(xiàng)目屬性 → 常規(guī) → MFC 的使用里改成「在靜態(tài)庫(kù)中使用 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
返回資訊列表
欧美狠狠弄| 91制服丝袜| 欧美人妻精品一区二区| 精品人妻一区二区三区不卡断| 综合网,亚洲,欧美| 强奸乱伦亚洲第一页| 亚洲欧美激情小说| 日韩 成人 有码| 嗯嗯啊啊啊好舒服| 日本在线视频导航| 国产无码三级视频在线观看| 久久香蕉国产线看观看亚洲女人 | 色综合潮| 日本在线一二| 日韩国产乱子伦App| 国产欧美在线观看免费观看| 一区二区视频在看| 精品久久九| 超碰国产情侣自拍网| 久久精品国产96精品亚洲拳交| 伊人九九九| 91无码人妻| 五月天婷婷基地| 欧美日韩中文亚洲v在线综合| 欧美一区二区三区不卡高清视频| 日本最新1区2区3区| 日韩久久超碰色| 性爱动态120秒| 第一高清av中文字幕| 婷婷在线视频在线观看| 麻豆天美在线| 超碰美国| 视频国产成人精品日本亚洲18| 欧色性第一页| 国产熟女精品区| 91色爽欧美| 久久9亚洲| 久热婷婷| 猛交交| 日韩有码一区三区| 中国黑人三级片网站上区| 欧美精品xxxwww| 综合久久99| 欧美综合天堂| 日日夜夜精品视频| 一线黄色免费性爱片| 高潮毛片无遮挡高清免费| 人人做,人人操,人人摸| 欧美精品久久久久久久丰满| 国产大学生口爆吞精合集| 6080YYY午夜理论片在线观看| 蜜臀aV午夜一区二区三区| 色娱乐色呦呦夜夜夜夜av| 欧美久久人妻少妇一区二区| 国产精品一区在线播放| 9118禁| 久久久999国产精品| 96一区二区| 欧美v亚洲v综合v国产v妖精| 自拍大香蕉乱插| 国产亚洲综合欧美一区| 97干色天堂| 啊啊啊啊啊啊啊在线| 狠狠干妹子| 亚洲影院成人| 蜜乳av一区二区| 偷窥自拍A片| 偷窥自拍亚洲天堂网爆| 日本久久综合| 国产精品久久妻无码网站| 在线观看中文av字幕| 亚洲精品久| 人人噜夜夜操| 亚洲中字幕日本一区二区三区| 国产毛片久久久久久久| 久久久久久久久久久六六| 久草草一二三四区久久| 九九碰九九爱97超碰| 亚洲情色中文字幕一区| 91在线/欧洲| 欧美性爱18观看| 超碰人人在线| 清纯唯美综合| 色优久久| 欧美翘臀视频网站一区二区三区| 日本午夜福利影院| 淫纸中9区| 多毛小伙内射老太婆 | 亚洲男人天堂网久久| 熟妇人妻精品一区二区| 午夜男人一级A片7777| 一本久久精品中文字| 国产Av超碰| 亚洲AV无码| 欧美中文综合| 在线视频五十市| 日欧操屄| 啊啊啊啊啊好舒服视频| 蜜乳AV网址| 日韩AV噜噜噜一区二区三区四区| 99热这里只有精品地址| a啊啊啊啊啊啊啊啊一区二区| 粉嫩绯色AV一区二区在线| 久九9精品| av日韩在线观看电影| 夜夜嗨一区| 五月天激情网站| 久久大黄片| 成人热久久精品| 高潮毛片无遮挡高清免费| 久久久久久波多野吉衣高潮| 国产蜜臀精品一区免费尤物| 乱伦一区二区三区‘| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 99re热| 日韩人妻少妇 一区二区三区| 精品午夜福利| 997色在线| 97国产精品国| 丁香五月影院| 综合网色| 97av在线视频| 日本 欧美 国产一区| 欧美18老人禁| 酒色综合网| 无码久| 免費人妻夜夜爽天天爽爽一区| 欧美一级久久久丰满| 国产精品伦理| 91制服丝袜| 美女黄码视频午夜| 超碰久久精品| 精品制服美女中文一区二区三区| 欧洲中文字幕| 一本久道久久综合狠狠爱| 操屄日韩| 国产亚洲欧美每日在线| 亚洲日韩久久精品一区| 刺激性视频黄页| 亚洲欧洲激情卡通另类文学四射小说网站 | 九色精品视频导航1| 热久久无毒不卡| 国产精品久久久久久夜夜夜| 日本午夜福利视频| 91国产精品熟女| 大香蕉草草| 丝袜狠狠草尤物 91| 操学生天天| 亚洲91亚洲| 亚洲激情网| 人人色人人操在线| 久久久97| 欧美激情亚洲色图| 亚洲限制级| 一区二区不卡| 超碰中文字幕人妻草一区| 欧美日日网| 操B久久| 欧美综合制服在线| 97精品全部| 97免费在线| 热久久国产| 国产精品久久久久久 百度| 国人欧美精品一区二区| 亚洲熟妇丝袜在线观看| 台湾肥佬网一区二区三区| 超碰中文字幕人妻草一区| 亚洲AV在线资源| 久草免费在线视频| 亚欧性爱ab| 国产在线76页| 怡红院久久老司机| 无码国产精品午夜不卡(| 少妇干B| 啊a一区在线| 9.1小视频| Sekablack无码一区| 日本亚洲熟女视频| 99热精品在线观看| 久久久久久十| 久久婷婷热| se,,,亚洲欧美| 免费视频97| 国产AV精久久| 一区二区视频你懂的| 无码国产精品96久久久久孕妇| 国产99久久99热这里只有精品15 | 69XX一中文字幕人妻91 | 91操熟女视频| 免费操逼视频下载| 91激情国产| 97国产高清视频在线观看| 视频在线观看一二三区| 亚洲色图A| 婷婷久月| 一区二区乱码福利| 日本中文字幕在线视频| 中文字幕在线第二页| 国产亚洲精品美女久久久久久2021| 99re3这里只有精品| 欧美夜夜草视频| 日日干夜夜操视频h| 97欧美日韩精品| 久久9 9 9精品| 97在线免费看视频| 欧美日韩亚洲五月天婷婷| 乱伦图av| 国产极品馒头逼| 色婷婷亚洲婷婷| 性色AV蜜色av色欲av| 国产精品熟女九九九| 尤物黄色在线观看网站| 色妺妺AⅤ| 色婷婷六月| 欧美不卡在线一区二区| 九色 蝌蚪 熟女自| 欧美日韩国产男人| 97超碰美国| 色综合av男人天堂| 国产福利一区二| 人妻 欧美亚洲| 91色噜噜狠狠| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 女人久久久| 五月丁香久久| 色噜噜婷婷| 久久综合资源一区二区| 国产精品无码成人精品| 水滴偷拍| 久热这里只有精品9| 欧美后入视频| 99热导航| 99热 按摩 日韩| 偷拍亚洲高清图片| 农村妇女精品一区二区| 色色色综合| 干婷婷综合网| 天天弄天天操| 色狠人在线99| 东北女人| 色综合99999| 日韩ab网| 好爽要喷了| 极品一区二区三区免费| 久久久久深夜无码| 91男人综合| 久久99操天天日| 大香交| 中文字幕在线免费观看视频| 天天摸天天舔天天操| 精品亚洲国产成人精品| 色av中文字| 亚卅熟女乱色| 大香蕉啪啪啪| 亚洲色图20p| 天天综合网合集91| 久无码| 国产久久日韩网站导航| 99精品伊人| 日韩八十路老熟女| 好属操| 国产av激情无码久久天堂| 操逼视频国产无套| 自拍偷拍2025在线观看| 色九九九综合| 国产乱不卡| 亚洲天天在线| 色黄污美女啪啪啪免费网站| 黄色高清无码无码破解免费暗网| 亚洲日本成人动漫| 人人搡人人肉久久精品| 久久久女人| 日日夜夜精品| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 97色网| 日本三级A片网站com| 亚洲精品一区二区三区在线播放| 久久国产精品91| 91 丝袜在线| 久久久久久久九九九九| 性爱1区| 999久久久精品国产| 99热日| 日本色色视频网站| 台湾肥佬网一区二区三区| 久久久久久久| 日韩免费大片一级播放| 北条麻妃99精品青青久久| 99re欧美| 欧美丝袜激情| 日韩乱伦影音先锋| 五十路熟女在线不卡观看一区二区| 日本色色视频网站| 亚洲九区| 欧州一区二区三区四区| 精品 码产区一区二-1080P高清在线www-B029AV| 日本人妻一区二区| 又大又大又大又粗爽高潮观看| 人人爱人人操人人性| 国产黄色动态精品| 欧美高清18A片| 97超碰美国| 起碰97| 少妇二级| 国产精品久久久久无码AV会牛| 高潮综合网| 国产黄色 A 片免费看| 欧美午夜视频| 国产精品成人蜜臀AV在线| 男人天堂网手机版婷婷| 色综合美国| 一级做a爰片性色毛片久久| 天天弄欧美| 九九综合久久中文字幕| 欧美自拍网| 精品久久視頻在线| 免费成人在线观看91| 精品176精品2| 激情专区综合| 飘花国产午夜精品不卡| 操一对老熟妇爽上天视频| 熟女丰满人妻一区| 欧美大香蕉同搞| 骚货 中文字幕 av| 亚洲黑丝在线| 人人操人人操人人操人人操人人操人人人11.CM | 久热色情精品| 久久av成人无码免费| 校园春色家庭伦理欧美激情| 亚洲欧美大| 性爱视频免费网址| 99国产精品自在自在| 精品丰满人妻一区二区三区免费观| 久久久亚洲| av东京热男人的天堂| 蜜乳AV色欲AVAV无码| 综合网91| 人澡逼| 这里是精品| 日本国产高清色www视频在线| 人人操人人肉久久精品| 激情四射婷婷六月天| 美女尤物福利视频| 欧美啪啪女女| 精品人妻1区| 72av视频| 91劲爆| 日本少妇va7777| 黑人精品成人一区二区三区 | 少妇高潮对白在线观看| 亚洲最新Av| 欧美成人精品一区二区男人蜜臀| 熟妇视频一区二区三区在线观看| 色情五月综合婷婷| 亚洲第一免费视频| 无码免费在线观看黄色片| 91熟女网| 九九九国产精品| 白丝少妇一区二区| 亚洲码和欧洲精品激情系列| 屌逼麻豆| 小草三级久久观看| 超碰在线成人| 日本高清有码网址视频| 激情五月天插| 国产黄片精品在线| 日韩熟女乱伦中出| 免费的很黄很污的全部视频| 少妇高潮流水av免费| 日韩97P| 美女91网| 精品在线78| 亚洲亚洲亚洲天堂天堂| 日本一久是| 免费成人在线熟妇网| 欧美成人精品一区二区三区| 精品一区96| 欧洲无码一区二区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 日本人妻最新在线中| 久草资源在线| 久久色网| 国产精品一区av在线| 日本黄大片在线观看视频| 国产女人视频三四五区| 色妇综合网| 国产精品96| 97色97干| 久久久久久69国产一区二区| 亚欧性爱无码| 精品一区二区人妖| 亚洲综合九九| 久久a久久| 99re只有精品| 加勒比伊人综合| q2午夜理论片夜色av| 蜜桃午夜视频一区二区| 熟妇人妻丰满久久久久久久无码| 久久激情婷婷| 亚洲黄片免费在线播放| 亚洲?V无码专区在线电影| 久久这里是精品| 韩国午夜理伦三级好看| 另类综合另类| 中文字幕天天操| 精品女同一区| 日本影视久久免费| 333kkkk·亚洲com久久| 丁香六月婷婷| 亚洲男人的天堂AV| 久久噜噜噜精品国产亚洲综合| 天天大干大香蕉| 国产区在线| 日韩成人无码| 视频分类 国内精品| 99色综合| 亚洲精品一区二区免费在线观看| 一卡二卡三卡| 国产a片操逼| 国产黄色av大片网站| 亚洲第一页色| 伊人久久亚洲色欲综合网站| 夜色综合| 一区二区三区 日韩欧美| 五月婷婷影院| 日韩特一级久久| 97久久超碰| 中日韩欧美精品无码AⅤ一区二区| 亚洲老熟妇xxx| 成熟熟女国产精品一区二区| 日日爱99| 国产超碰人人爽人人做| 欧美色一二三| 夜夜骑夜夜操| 日本亚洲熟女视频| 嗯嗯啊啊好疼| 国产精品爆乳懂色蜜乳| 综合久久婷婷| 97超碰中文| 凹凸视频在线一区二区| 色综合色欲色综合色综合色综合| 欧美 日韩 另类 亚洲| 91欧美经典| 午夜福利免费精品视频| 欧美五区| av网站在线看| 精品久久久无码| 天堂av最新电影网| 十八禁成人网站在线观看| 中文字幕国产精品1区| 搡老熟女国产1000部| 欧美极品美女aaaaaa级黄片| 天天影视网综合少妇| 97超碰国产亚洲精品| 成人自拍三级在线观看| 91国产大片| 在线观看中文字幕| 亚洲色天堂日韩中| 花花AV导航| 爱媛媛久久国产福利| 在线情色电影 91大 | 亚洲美女自拍偷拍视频| 狠操91,com| 在线岛| 玖玖资源中文字幕制服丝袜| 在线人成亚洲视频免费观看| 久久久穴999| av网站免费线看| 嗯啊啊啊轻点视频 | 亚洲黄色视频在线观看视频| 午夜成人福利影视| 久久中文字幕一区不卡| 91网亚洲| 日韩欧美成人综合在线| 日韩欧美中文字| 日韩一级成人毛片免费观看| 青青草一区二区三区四| 91日本在线观看| 青女偷拍网| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 91在线超高颜值国产| 欧美 牲| 日韩精品 视频一区二区| 久久亚洲色图中文字幕| 日本色色的视频| 208天天久久九九九| 99啪啪视频| 国产91 丝袜在线播放00-百度| 久久精品一区二区三区不卡| 2024年最新色情网站在线观看| 久久不卡一区二区| av天堂天堂av日韩| 少妇三p| 欧美色图亚洲色图成人在在线| 91人妻人人澡人人爽人人精品| 97色诱| 成人性爱美曰韩| 97久操| 欧美亚洲性爱一区二区| 久久五十路熟女人妻| 神马九九九| 思思热在线| 成人五级久久| 中文字幕av一区二区三区人妻少妇| 日韩成人电影AV| 中文乱码字字幕在线第5页| 六月婷婷一区二区三区| 天天干天天做| 小视频国产| 黑丝制服中文字幕| 91性生活久久久| 色狠狠色| 亚洲精品xxx| 天天综合中文字幕 91| 色情亚洲日本成人| 久久久人妻| 国产高清无码一区三区二区| 国色综合天| 久热久| 国产11页| www.国产高潮精品| 国产精品黑人一区二区三区| 久久久涩| 亚洲日韩XXX| 中文字幕一区二区三区人妻少妇在线| 亚洲欧美国产成人综合不卡| 亚洲一区日韩精品| 婷婷激情四射| 免费99精品国产自在在线| 日产国产精品中文久久婷婷| 久久久九九网站| 欧美性爱日韩性爱| 麻豆国产97在线| 天美麻豆一区二区三区| 锕锕好爽 死我在线观看| 日本九九久久99播| 青青草视频久久| 欧美成人性爱视频大全| 国产 亚洲 丝袜 制服| 欧美片第一页| 97超碰超碰| 日韩大香蕉AV影片| 国产后入式在线观看| 日本免费一区二区不卡| 99黄页网站| 国产精品午夜成人福利| 天美国产三级传媒| 深夜操逼网| www.狠狠操| 九久9精品| 破苞ⅩXXX性无码动漫无码| 国产欧美日韩一区二区三区| 中文字幕一区二区三区字幕| 国模无码人体一区二区三| 九九无码| 91丨国产丨白浆秘 洗澡动漫| 热热色中文无码| 欧美日韩亚洲天堂| 精品国产乱码久久久久久网站入口| 99re这里只有精品2| 91熟女视频网| 色狠狠一区二区三区香蕉| 91热色| 少妇高潮九九九九九九九| 亚欧美色图| 国产精品日日摸天天碰| 亚洲丝袜少妇在线| 99久久久无码国产精品性啊聊| 亚洲AV无码乱码| 亚洲色天| 国产一级特黄大片处女| 一区二区视频在线播放| 久久人人爽人人爽人人片Ⅴ| 五月天色图| 欧美性天天影视| 色哟哟-国产专区| 欧美性爱网97| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲精品国产专区在线观看| 91人妻中文| 色色五月丁香| 成人久久无码www| 久久99草| 91岛国动作片| 黄色免费网| 欧美成人性爱视频免费观看| 99久re热视频精品98| 禁片 高清 在线观看视频网站| 夜夜高潮夜夜爽高清视频一| 久久亚洲色图中文字幕| 9精品久久久久| 免费a v| 无码国产Av| 婷婷五月天av| 秋霞鲁丝午夜无码一区二区三| av天堂加勒比| 超碰在线欧美性爱激情| 伊欧美综合视频| 精品丰满人妻一区二区三区免费观| 天天日天天舔东京热| 亚洲色棕合| 青青操网| 91狠狠色丁香婷婷综合久久精品| 国产综合久久久鬼色| 校园春色美腿丝袜 | 欧美日韩美女精品久草一区二区三区| 婷婷久月| 日人妻视频91| 天天香香欲综合| 久久9久久| 国产一区自拍欧美日韩| 天天爽天天爽| 综合性视频99| 成人免费毛片| 精品女人999| 久久久9 9 9精品| 久久无码一区二区二三区性色| 国产67194| 男人网站婷婷| 尤物av网站免费在线播放| 中文字幕一区日韩精| 亚洲在高跟鞋自慰久久在色线| 亚洲成人ab| 亚洲欧美日韩精品久| 99热导航| 日韩成人性日韩成人性爱视频在线免费观看| 麻豆啪啪啪视频| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 狠狠热这里都是精品| 女人被添高潮免费视频| 国产精品乱人伊人网| 国人欧美精品一区二区| 夜夜高潮夜夜爽高清视频一 | 亚洲 欧美 小说| 一本久道久久综合狠狠爱一密臀精 | 99re这里只有精品中心播放| 人人妻人人爽人人精品| 日韩av不卡在线观看| 亚洲性少妇| 精品中文字幕第一页| 午夜性| 人妻一区二区三区视频| 无码一区二区三区四区五区六区七区八区九区十区视频 | 亚洲啪啪啪啪视香蕉| 少妇厨房愉情理伦片bd在线观看| 亚洲欧洲美腿丝袜| 欧美精品成人一区二区在线观看 | 亚洲 欧美 色图| 激情五月天丁香| 久操| 99啪啪视频| 国产精品另类| 能看的av| 精品一区二区三区国产| 久艹伊人精品综合在线| 男人女人18禁片免费看网站| 日韩熟女精品无码专区一区二区| 日本孕妇一区二区视频操逼免费看| 蜜色网色哟哟| 国产 亚洲 一二三四| 亚洲黄日韩无码专区| 五十路六十路素人熟女| 久久综合av| 熟女突然公开看18禁影片| 中韩中文字幕在线观看| 天天综合日韩网| 亚洲无码国产精品久久| 色偷偷男人的天堂麻豆| 9色在线| 老司机福利青青草| 中文字幕超碰CAO| 国产呦精品一区二区三区下载| 欧美操逼录像国产黄色国产| 小草精彩毛片| 秋霞影音一区二区三区| 九九九精品美女| 性色中出| 女人爽到高潮潮喷18禁网站 | 五月天婷婷成人网| 高清在线不卡一区二区 视频| 久久这里| 亚洲 日本 一 二 三| 亚洲一区操| 激情文学亚洲| 欧美综合色站| 伊人婷婷五月天| 1769一区| 国产午夜精品一区二区三区牛牛| 综合亚洲情色| 久久9视频| 精品毛片av一区二区| 综合少妇网| 国产精品网站免费| 婷婷五月天小说| av网站在线观看了| 五月天亚洲色图| 日韩中文字幕宗合在线| 日韩欧美麻豆大片| 性爱1区| 五十路六十路七十路熟婆| 精品少妇高潮久久| 玖玖爱一区在线| 久久五月份| 中文字幕123| 亚洲第一页第二页激情| 99999久久精| 欧美国产操逼| 麻豆人妻少妇在线免费观看| 99热在线观看| 天天天天天天天天天天干美女| 97超碰人人模人人拍人人| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 2017,超碰| 激情人妻另类| 欧美精品 - 91爱爱| 嗯嗯啊在线视频| 欧美黄色片AAAAA| 久久av一级av少妇av高潮| 国产无码成人无码| 青青草久草| 99视频自拍区| 久久中文字幕女同性恋一区| 亚洲黄a三级三级三级看三级| 青青草视频爽一爽| 少妇99成人麻豆| 亚州精人品大香蕉| www五月| 五月丁香激情综合网| 国产乱码精品一区二区三区四川| AV一起草在线| 老子午夜伦不卡影院| 成人小说另类在线| 久久精品国产亚洲5555| 淫荡网址| 欧美激情综合| 成年无码动漫av片无尽在线| 97干在线| 免费人成毛片乱码| 欧洲性爱无码区| 中国AAAAAA黄色片| 午夜男女爽爽大片免费观看| 人妻一区二区三区四区视频| 成·人免费午夜在线观看| 极品色| 欧美天天综合网| yiqicaoav| 超碰免费人妻人人| 亚洲国产精品9999在线观看| 中文字幕精品一区欧美| 园内精品自拍视频在线播放| 免费的很黄很污的全部视频| 国产高清MV操逼视频| 精品一啪| 99久久婷婷| 亚洲一区二区三区久久 亚洲一区二区| 天天色综合图片| 中文字幕视频2区| 日韩精品9999| 久草线上视频免费看| 加勒比综合在线| 人妻久久| 欧美欧美啪啪视频| 人人操人人操人人操人人操人人操人人人11.CM | 欧美成人四级在线播放| 午夜福利免费精品视频| 欧美激情综合| 免費人妻夜夜爽天天爽爽一区| 97天天综合网| 亚州精品人妻一二三区| 亚州男人天堂| 1人人看人人摸人人操| 91亚州日韩高清| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 97色伦97色伦国产欧美| 五月婷网站| 99精品网| 青青伊人久久| 精品九区| 欧美老妇曰批的视频| 色九区| 十八禁黄色成人网站观看| 国产热av| jazzjazz国产精品麻豆| 肉嘟嘟www视频在线观看高清| 日韩另类色图| 玖玖爱伊人玖玖爱| 日韩三级伊人| 伊人久久大香大香线蕉中文| 久久9精品视频| 亚洲综合色在线| 大香蕉一级黄色片久久| 午夜福利免费精品视频| 一区二区三区 丝袜 高跟 美腿| 亚洲男人综合网| 亚洲国产成人精品女人久久久| 国产女人操逼视频| 国产精品久久久视频| 亚洲骚男同com| 国产亚洲精品无码三区| 七久久久| 疯操AV| 欧美日韩国产黄色片| 激情综合97| www.人人摸在线视频| 看大黄色大片原件| 91色艳| 欧洲视频在线| 色久桃花影院在线观看| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 极品粉嫩一区二区| 成人一二三区| 综合久久欧美| 亚洲怡春院| 精品无码久久久久久国产浪潮| 天美国产三级传媒| 91 偷| 国产成人无码高清| 使劲用力艹少妇视频一区二区| 97综合久久| 婷婷综合五月| 黑人精品欧美一区二区蜜桃| 日本天天操| 91性生活久久久| 欧美97| 97久久精品亚洲| 国产激情在线| 色婷婷综合网站| 深夜激情 | 丰满人妻一区| 免费啪啪一级视频| 中文久久96| 国产AV精久久| 中文字幕诱惑制服人妻丝袜美丝袜美| 蜜乳AV.COM| 黄网站黄视频网站进入口| 青娱乐999| 欧美在线伊人色| 乱伦一二三区| 青青草色情网站视频| 欧美自拍偷拍综合图片| 爱爱动态试试看6 0秒| 人人操 欧美| 欧美人妻色| 国产精品无码av嫩草| 97碰碰日本乱偷人妻中文的| 操日韩第| 久久久熟女一区| 色婷亚洲五月在线观看| 大香蕉狠狠爱| 在线啊啊啊啊| 天天操人人操狠狠插| 学生妹天天看| 精品黑人一区二区| 色97欧美| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 91高跟美女在线播放| 无码最新| 亚洲精品蜜桃久久久| 五月天激情小说网| 啪啪性爱免费视频| 伊人久久亚洲中文字幕不卡| 最近2019中文字幕国语免费版| 精品女同一区| 97电影院超碰| 操www| …中文字幕亚洲乱,97人妻无码费视…| 国产高潮AA片免费看| 天天干18禁| 久久超碰亚洲人| 夜夜影视四色| 98久久超碰| AV天堂男人的天堂| 九九性爱网| 麻豆天美91| 色眯眯av| 又大又白奶子| 高清国产成人无码| 超碰97日韩| 屌妞视频久久久久久久久久久久| 国产精品香蕉热久久新品| 蜜臀久久99精品久久久久久| 国产盗摄美女如厕大神作品在线观看| 中文字幕av亚洲在线| 91亚洲网| 91国产伊人大香蕉| 国产精品九9| 欧美日日夜夜| 久久久久9| 99re热有精品视频国产| 久久久久国色αv免费观看| 亚州精品丝袜-不卡成人免费| 大色综合网| 永久电影三级在线观看| 91天天美女| 天天看特黄的免费网站| 大香蕉综合网| 中文字幕精品一区二区精| 好吊色综合| 日韩人人精品| 99色婷婷中文字幕乱色| 999在线电影香蕉| 91动漫操逼视频| 无遮挡又黄又刺激的视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 日韩精品三区四区| 日韩成人电影AV| 性影在线视频| 无遮挡又黄又刺激的视频| 花花AV导航| 91精品在线播放| 蜜臀久久久国产| 欧洲免费一区二| 天天拍天天操| 九九RE视频在线精品| 天天综合网日韩7799| a男人的天堂久久一级A毛片| 97在线视频免费看| 97国产中文| 天天热精品| www. 男人天堂成人在线| 今日头条成人一区二区三区四虎精品| 77777亚洲蜜臀精品久久综合蜜臀| 久草视频分类在线| 亚洲美女自拍偷拍视频| 国产一区二区三区视频在线看| 亚洲自拍偷拍视频在线| 97久久网| 国产品精品自在在线午夜免费| 激情欧美97| 久久精品超碰| 好爽视频在线观看| 超碰人妻久久| 婷婷午夜清品久久久久久久性色视频观| 欧洲自拍第一页| 亚洲欧洲激情| 热热色色综合| 超碰到97情色| 中文字幕av一区二区三区人妻少妇| 国产免费一区| 大屁股熟女一区二区三区| 青草影院内射高潮| 色五月激情AV在线| 熟女露脸激情自拍视频| 超碰97综合网| 色97欧美| 人人妻人人玩人人澡人人爽| 91人妻少妇| 2018天天日天天日| 密乳AV免费观看| 3D污黄视频在线观看| 岛园激情| 中文字幕一区av| 欧美日韩情色一区二区| 欧美综合第一| 亚洲天天影视色综合| 97射欧美| 97在线免费看视频| 粉嫩av平台| 国产精品自拍xxxx| 免费视频a级毛片免费视频| 91蜜桃婷婷狠狠久久综合9色| 97天天爽| 97超碰巨乳| 精品制服美女中文一区二区三区| 综合色欧美| 欧美色www亚洲国产阿娇要播| 370p日韩欧美亚洲精品| 国产a级午夜毛片| 午夜精品一区二区三区三上悠亚| 日本不卡三级网在线播放| 亚洲中文字幕日产无码久久| 国产精品久久久久久久久久二区三区| 亚洲综合在线91| 国产精品com| 五月丁香拍拍激情综合三级| 99热这里只有精品9| 中文有码第五页| 天天天操天天天爱| 熟妇色99| 亚洲无吗在线视频| 综合五月天| 欧美少妇色综合| 女优大全 - 91n| 人妻中文字幕精品无码| 狠狠狠狠狠| 极品后入免费视频| 国产白丝AV| 国产91啪| 亚洲图片欧美91N| 天天草AV| 亚欧高清| 婷婷97| 中文字幕精品乱码| 亚洲超碰97| 日本在线视频导航| 日本女厕偷拍| 精品久久97观看在线视频| 亚洲天天做日日做天天谢日日| 99在线精品观看99| 欧美大片一区二区三区| 97精品视频| 99热这里只有精品地址| AV丝袜少妇| 久久久蜜桃臀无码视频| 强奸乱伦αv片| 78久久久| 亚洲精品九九九| 久久久久婷婷| 色网1| 91丨九色丨国产丨人妻在线| 96精品在线| 青青草在线视频播放器| 3d成人精品一区二区| 欧美色66| 国产品精品自在在线午夜免费| 色欲天天综合网| 人人操人人精品影片| 日韩欧美成人综合在线| 亚洲精品丝袜| 久草午夜| 夜夜骑日日| 久久91精品国产9丨久久分亭| 嫩草 人人网精品| 97在线视频观看| 中文字幕一区av| 亚欧洲日韩国产精品| 亚洲色图欧美视频| 久久精品国产久精国产| 26UUU欧美激情一区二区| 97玖玖超碰| 国产二区三区免费视频| 91青视频| 天天日天天操天天射河南省| 日韩人妻大香蕉| 人妻精品一区二区| 欧美综合站| 九九九九国产| AV色天香在线| 色综合av综合久久| 内射中出日韩在线观看视频| 呦呦一区| 蜜桃中文字日产乱幕4区| 最新日本中文字幕| 香蕉一区二区三区在线视频| 在线视频亚洲无码| 久久国产视频专区一二三| 香港澳门日本三级网站| 禁十八久久| 国内毛片婷婷六月色| 激情五月天校园春色网| 中文字幕免费看大片| 9.1小视频| www.久久爱| 99无码| 老熟妇综合| 国产精品久久久久久久毛片1| 中字一区| 色五月首页| 精品人妻一区二区三区四区不卡在| 久久大香蕉手机高清| 少妇一级无码精品| 亚州熟妇精品| 国产尹人在线视频免费| 久九九九九九九九热| 天堂蜜桃无码视频一区二区| 黑人娇小av在线播放| 色综合加勒比四四季| 国产中文大片资源中文字幕 | 啪一啪免费视频| 91欧美www| 欧美爆操91| 日韩一性一交一A片俄罗斯| 欧美在线亚洲| 亚洲AV无码| 在线中文字幕极品av| 美女t无毒不卡不卡| 日本精品人妻少妇一区二区| 国产欧美精选自拍一区| 一区二区三区一亚洲中文字幕、综合区灬 | 日日日日做夜夜夜夜做无码97| 婷婷激情四射| 亚洲AV成人无码一二三久久| 久久久久久裸体| 日本亚洲vr欧美不卡高清专区| 波多野结衣一级视频| 久久久久成人网| 91精品人妻一区二区三区蜜桃臀| AAAAAAAAA黄片| 射久久| 超碰碰小说97| 69AV女优男人的天堂| 亚洲第一无码播放立川理惠| 岛国黄片网站| 人妻啊啊人妻啊| 韩国手机不卡无码三级视频| 亚洲女优有码无码高清| 九月AV| 综合激情婷婷| 久久黄色视频一区二区三区| 亚洲男人在线观看天堂| 试看福利| av中文字幕在线熟女| 亚洲国产一级精品毛一级精品看免费视频| 草草草视频| 日韩资源网| 久久久久国产亚洲一区欧美色图日韩| 亚欧国产无码精品在线| 玖玖爱在线视频免费观看| 欧美综合网站999| 啊啊啊啊啊好大好舒服想要| 欧美成人精品A片免费一区99| 少妇无码av专区线| 九九九久久久| juliaann欧美丝袜办公室| 日韩一级二级三级免费看完整版国语版 | 天天干天天操天天操夜夜操天天操| 欧美色道啊| k频道色撸撸| 欧美日韩婷婷中文| 精品国产网站| 久久久久久亚洲精品不卡人乳| 最新中文字幕精品在线| 欧美激情性久久久久久| 国产乱子伦一区二区三区在线观看| 天天干夜夜操一区二区| 一区二区视频你懂的| 97色97好| 成年男人的天堂| 人妻久热在线| oumeisetu综合| 久久99操天天日| 噜噜噜狠狠色综合| 丁香六月激情综合| 国产精品久久久三级无码| 黄色网址在线免费观看| 国产精品网址| 国产一级高跟丝袜| 啪啪啪东京| 久久久久亚洲AV无码专区少妇| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 亚洲乱色熟女一区| 三级日本一区二区三区| 日韩三级伊人| 人人么人人操| 超碰免费人妻人人| 中字幕人妻一区二区三区| 91视频精品| AV在线性爱| 欧美国产精品| 亚洲人妻中文高清| 日韩欧美字幕亚洲一区二区| 精品性爱一二三区| 一区二区三区精品视频| 亚洲aV无码成人在线观看| 国产精选三级在线观看| 国产动漫操逼视频| 亚洲激情久久| 天天欧美色| 综合网亚| 色老牛|