freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于mfc的對戰(zhàn)象棋設(shè)計與實現(xiàn)畢業(yè)設(shè)計(專業(yè)版)

2025-07-21 13:12上一頁面

下一頁面
  

【正文】 map[nChessinfo[choosed].x][nChessinfo[choosed].y]=nChessinfo[choosed].type。 ( 3) LButtonUp 操作 LButtonUp 操作要做的就是判斷能否到達,保存數(shù)據(jù),判斷勝 負的工作。amp。選棋子只要就是鼠標左鍵按下事件下進行,按下時要判斷這里是否有棋子,即棋盤 MAP[][]數(shù)組是否是小于 14(棋子的 type 最大為 13), 否則不響應(yīng)我選棋子的操作。 淮陰師范學院畢業(yè)論文(設(shè)計) 26 } } else //紅兵 if (chesstype==0) { //未過河 if ((Old_Point_y=6)amp。過河后,黑卒可以 X 前后不變, Y 比之前多 1,也可以前后Y不變, X 比之前多 1或者少 1,均可達 。 } //同一行 else if (Old_Point_y==Now_Point_y) { int maxrow=(Old_Point_xNow_Point_x)?Old_Point_x:Now_Point_x。0==col)) return true。amp。(row==1)) { return true。 int col=abs(Now_Point_xOld_Point_x)。amp。amp。(2==col)amp。 } else if (2==col) { if(14==map[Old_Point_x][Old_Point_y+1]) return true。amp。 //判斷移動前后位置之間有無其他子 for (int i=mincol。 ifdef _DEBUG virtual void AssertValid() const。//認輸 void OnSend()。//背景句柄 淮陰師范學院畢業(yè)論文(設(shè)計) 17 CDC ChessAll。 ( 3) CChess_mView 類是程序的顯示類,也包含少部分的棋子控制操作功能和很多消息響應(yīng)函數(shù),由于篇幅問題沒有全部顯示。 name 棋子的名字,例如“炮”。 例如點擊棋盤的水滴 棋盤 void CChess_mView::OnDrop() { m_strBoard = res\\images\\。 ChessList[9] = LoadFileBmp(strPiece + )。 游戲界面 網(wǎng)絡(luò) 游戲內(nèi)核 淮陰師范學院畢業(yè)論文(設(shè)計) 11 圖 22 程序流程圖 開始 結(jié)束 等待直到收到消息 調(diào)用 FetchMsg 處理相應(yīng)的信息 如 果帥編號屬性不是帥 等待直到收到消息 調(diào)用 FetchMsg 處理相應(yīng)的信息 如果將編號屬性不是將 Y 輸入主機 IP 地址 和端口號 N m_State=1 建立主機 建立端口 m_State=0 走棋 ,悔棋 ,還原 操作 SendMsg 相應(yīng)消息 Y N Y (m_State+1)%2 Y Y N N N 淮陰師范學院畢業(yè)論文(設(shè)計) 12 3 程序詳細設(shè)計說明 界面設(shè)計 本程序界面簡單明了,包括棋盤顯示, listbox,開始、悔棋、還原、認輸四個按鈕,還有用于聊天的 edit 和發(fā)送按鈕 。 因為棋子位圖周圍有白色邊框,通過 “ 遮罩技術(shù) ” 可以消除邊框,實現(xiàn)棋子透明覆在棋盤上,更具美感。每個窗口使用窗口進程 來處理發(fā)送給它的消息。 GDI 繪圖 GDI 是 Graphics Device Interface 的縮寫,含義是 圖形設(shè)備接口 ,它的主要任務(wù)是負責系統(tǒng)與繪圖程序之間的信息交換,處理所有 Windows 程序的圖形輸出。 MFC 及相關(guān)技術(shù) MFC:微軟基礎(chǔ)類 (Microsoft Foundation Classes), C++是一種應(yīng)用程序框架,隨微軟 Visual C++開發(fā)工具 一起 發(fā)布。炮是象棋里面 唯一 一個 可以越子的棋種 ,威力也很大 。己方的棋子始終使用己方的線路編號,無論棋子是否“過河”。為了方便其更好的推廣,并且為了擺脫傳統(tǒng)棋盤、棋子、場地的束縛,網(wǎng)絡(luò)版象棋備受青睞,這也是本款 象 棋游戲 開發(fā)的意義所在。 畢業(yè)設(shè)計說明書 學生姓名 學 號 學院 計算機科學與技術(shù) 學院 專 業(yè) 軟件工程 題 目 基于 MFC 的 對戰(zhàn)象棋設(shè)計與實現(xiàn) 指導(dǎo)教師 (姓 名) (專業(yè)技術(shù)職稱 /學位) 年 月 畢業(yè)論文獨創(chuàng)性聲明 本人鄭重聲明: 本論文是我個人在導(dǎo)師指導(dǎo)下進行的研究工作及取得的研究成果。相信未來幾年,象棋這一中國國粹在各個領(lǐng)域?qū)⒌靡酝茝V,產(chǎn)生巨大影響。 象棋棋子 象棋是一種雙方 對弈 的競技項目。 淮陰師范學院畢業(yè)論文(設(shè)計) 6 馬 是 先 直 后 斜,即先直著走一格,然后再斜著走一個對角線,俗稱“馬走日”。該類庫提供一組通用的可重用的類庫供開發(fā)人員使用,大部分類均從 CObject 直接或間接派生,只有少部分類例外。 在 Windows 操作系統(tǒng)下,絕大多數(shù)具備圖形的的應(yīng)用程序都離不開 GDI,他們利用 GDI所提供的眾多函數(shù)可以方便地在屏幕,打印機及其他輸出 設(shè)備上輸出圖形、文本等。 系統(tǒng)或應(yīng)用程序有兩種傳輸消息的方法:發(fā)送消息或寄送消息。 利用 “ 內(nèi)存 DC 雙緩沖技術(shù) ” 消除閃爍,將棋盤和棋子信息一次性顯示,并實現(xiàn)棋子黏在鼠標上,動態(tài)移 動 。 菜單欄包括文件,控制 ,背景,幫助。 ChessList[8] = LoadFileBmp(strPiece + )。 SetBoardandPiece(res\\images\\,m_strPiece)。 x, y 是棋子在邏輯坐標軸上的坐標。 class CChess_mView : public CView { protected: CChess_mView()。 //最終刷新句柄 CDC Buffer。//發(fā)送聊天信息 //函數(shù)定義 void InitData()。 virtual void Dump(CDumpContextamp。i=maxcol。(14!=map[Now_Point_x][Now_Point_y])) return true。 淮陰師范學院畢業(yè)論文(設(shè)計) 21 else return false。amp。(Now_Point_y=9)) { int row=Now_Point_xOld_Point_x。(14==map[Old_Point_x+1][Old_Point_y1])) { return true。 if ((0==rowcol)amp。 } else return false。0==col)) return true。 else return false。 int minrow=(Old_Point_xNow_Point_x)?Now_Point_x:Old_Point_x。 //黑卒 if (chesstype==7) { //未過河 if ((Old_Point_y=3)amp。amp。移動棋子到達目的地時,要判斷棋子是否能到達這里,即調(diào)用 CanGoTo()和 ShuaiCanGoTo()函數(shù),若可以則讓該棋子落在此處。([OldX][OldY]14amp。 void CChess_mView::OnLButtonUp(UINT nFlags, CPoint point) { [choosed].type=OldType。 PrintAll()。 nChessinfo[choosed].y=Marry[top][7]。 } ( 2) LButtonMove 操作 為了美觀, LButtonMove 操作需要做的就是選中的棋子跟著鼠標移動,主要要用到雙淮陰師范學院畢業(yè)論文(設(shè)計) 28 緩沖技術(shù),這個在關(guān)鍵技術(shù)那部分做詳細介紹。[OldX][OldY]=0)||(==1 amp。 } } 功能 走棋 走棋 功能包括三個部分,第一是選棋子,第二是移動棋子,第三是選擇目的地。 } else return false。如黑卒 ,未過河前, X前后不變 , Y比之前多 1, 可達。 else return false。amp。1==col)||(1==rowamp。amp。(Now_Point_y=2)) { int row=abs(Now_Point_yOld_Point_y)。(2==col)amp。 } //紅象 else if(4==chesstype) { 淮陰師范學院畢業(yè)論文(設(shè)計) 22 if ((Now_Point_y=5)amp。amp。 else return false。 else if((2==n)amp。 int n=0。 //}}AFX_VIRTUAL // Implementation public: virtual ~CChess_mView()。//還原 void OnRenShu()。 //背景設(shè)置選擇 //定義畫圖用 CDC CDC Background。 //是關(guān)于將帥問題的能否到達判斷,將帥不共線 }。 Type 即棋子的類別用于判定屬于哪種棋子。 每按一個按鈕,其實是改變了存放棋盤或棋子的函數(shù) SetBoardandPiece(CString 淮陰師范學院畢業(yè)論文(設(shè)計) 14 strBoard , CString strPiece)中的 strBoard 或 strPiece,即棋譜棋子的存放文件夾相對物理地址 ,完成了棋盤棋子的種類切換,并用 Invalidate(FALSE)及時更新顯示。 ChessList[10] = LoadFileBmp(strPiece + )。 具體流程 , 見圖 22程序流程圖。如果下一步坐標的位置上有棋子,則將該棋子的 type 改為 15,這樣繪圖時就不會顯示該棋子的位圖。通常,消息是從系統(tǒng)發(fā)送到窗口,或從窗口發(fā)送到窗口。而只需要使用對話框資源 編輯器對對話框模板進行簡單的編輯即可。 ( 9)“ 兩頭蛇 ” :把三路兵和七路兵挺起的陣式。 但 當吃子時, 它 和 目標 棋子中間必須 有 一個且僅此一個 棋子(無論 己 方或 對方棋子)。為了比賽記錄和學習棋譜的統(tǒng)一,現(xiàn)在 規(guī)則規(guī)定:從右至左 的 九條豎線 , 用中文數(shù)字一至九來表示紅方,用阿拉伯數(shù)字 1 至 9來表示黑方。 作為中華民族悠久文化的代表之一,中國象棋不僅源遠流長,而且基礎(chǔ)廣泛,作為一項智力運動,中國象棋開始走向世界。本論文除引文外所有實驗、數(shù)據(jù)和有關(guān)材料均是真實的。 象棋 簡介 中國象棋歷史悠久。棋子共有 紅黑 16 個,共 32 個棋子。馬 一個可到周圍八個點 ,故有 “ 八面威風 ” 之說。 MFC 應(yīng)用程序的總體結(jié)構(gòu)通常由開發(fā)人員從 MFC 類派生的幾個類和一個 CWinApp 類對象(應(yīng)用程序?qū)ο螅┙M成。 GDI的出現(xiàn)時程序員無需關(guān)心硬件設(shè)備及設(shè)備 驅(qū)動,就可以將應(yīng)用程序的輸出轉(zhuǎn)化為硬件設(shè)備上的輸出。 鼠標和鍵盤消息一般是寄送消息,而所有其他消息通常都是發(fā)送消息 。 網(wǎng)絡(luò)部分,繼承 MFC 中的 CAsyncSocket 和 CSocket 進行開發(fā)。 其中 listbox 是記錄每步棋子走棋 的信息 和聊天信息 ,也是實現(xiàn)悔棋功能的一個重要存儲器。 ChessList[7] = LoadFileBmp(strPiece + )。 Invalidate(FALSE)。 ( 2) Cmanager 類是棋子控制類 ,是游戲內(nèi)核 。 DECLARE_DYNCREATE(CChess_mView) // Attributes public: CChess_mDoc* GetDocument()。//緩沖句柄 用于雙緩沖 CListBox m_listbox。 //初始化 void NewGame()。 dc) const。i++) { if(14!=map[i][Old_Point_y]) n++。 else return false。 } else return false。(14==map[Old_Point_x1][Old_Point_y+1])) { return true。 int col=Now_Point_yOld_Point_y。 } else if((2==r
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1