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

正文內容

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

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

下一頁面
  

【正文】 eturn true。 int minrow=(Old_Point_xNow_Point_x)?Now_Point_x:Old_Point_x。i=maxcol。 else return false。amp。0==col)) return true。(Now_Point_y=0)amp。 } else return false。amp。 if ((0==rowcol)amp。 //黑士 if (chesstype==12) { if ((Now_Point_x=3)amp。(14==map[Old_Point_x+1][Old_Point_y1])) { return true。amp。(Now_Point_y=9)) { int row=Now_Point_xOld_Point_x。amp。amp。 //田字范圍 if ((2==row)amp。 淮陰師范學院畢業(yè)論文(設計) 21 else return false。(2!=row*col)) return false。(14!=map[Now_Point_x][Now_Point_y])) return true。 int minrow=(Old_Point_yNow_Point_y)?Now_Point_y:Old_Point_y。i=maxcol。 淮陰師范學院畢業(yè)論文(設計) 19 車 車只要中 間沒有棋子阻礙,可以到達它橫豎線所在的任何地方。 virtual void Dump(CDumpContextamp。//給棋盤棋子賦值 // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CChess_mView) 淮陰師范學院畢業(yè)論文(設計) 18 public: virtual void OnDraw(CDC* pDC)。//發(fā)送聊天信息 //函數(shù)定義 void InitData()。//用于聊天的 edit int down_move。 //最終刷新句柄 CDC Buffer。 //記錄當前一個棋子是第幾個棋子 int ROldX。 class CChess_mView : public CView { protected: CChess_mView()。 //記錄游戲步數(shù) int Marry[500][8]。 x, y 是棋子在邏輯坐標軸上的坐標。 ( 1) CChess 類是棋子類,存儲了棋子的相關屬性信息。 SetBoardandPiece(res\\images\\,m_strPiece)。 ChessList[0] = LoadFileBmp(strPiece + )。 ChessList[8] = LoadFileBmp(strPiece + )。故本程序采用外部圖片載入的方式,載入棋盤棋子,每次切換調用SetBoardandPiece(CString strBoard , CString strPiece)重新對棋盤棋子的位圖進行賦值。 菜單欄包括文件,控制 ,背景,幫助??蛻魴C建立,則選擇主機的 ip 地址和端口。 利用 “ 內存 DC 雙緩沖技術 ” 消除閃爍,將棋盤和棋子信息一次性顯示,并實現(xiàn)棋子黏在鼠標上,動態(tài)移 動 。 淮陰師范學院畢業(yè)論文(設計) 9 2 概要設計 設計思路分析 本程序采用 MVC 模式,將棋子信息與顯示分離,統(tǒng)一由 control 控制。 系統(tǒng)或應用程序有兩種傳輸消息的方法:發(fā)送消息或寄送消息。 繪圖結束后必須釋放設備描述表句柄。 在 Windows 操作系統(tǒng)下,絕大多數(shù)具備圖形的的應用程序都離不開 GDI,他們利用 GDI所提供的眾多函數(shù)可以方便地在屏幕,打印機及其他輸出 設備上輸出圖形、文本等。類 CWinApp 提供了幾個關鍵的可重載的虛成員函數(shù),他們是 InitInstance, Run, ExitInstance 以及 OnIdle 等。該類庫提供一組通用的可重用的類庫供開發(fā)人員使用,大部分類均從 CObject 直接或間接派生,只有少部分類例外。 ( 3)“ 天地炮 ”: 一炮從中路牽制對方中士中象,另一炮從底線牽制對方底士底象。 淮陰師范學院畢業(yè)論文(設計) 6 馬 是 先 直 后 斜,即先直著走一格,然后再斜著走一個對角線,俗稱“馬走日”。 相(象)的主要作用 也 是防守,保護自己的帥(將)。 象棋棋子 象棋是一種雙方 對弈 的競技項目。此外,高材質的象棋也具有收藏價值,如:高檔木材、玉石等為材料的象棋。相信未來幾年,象棋這一中國國粹在各個領域將得以推廣,產(chǎn)生巨大影響。本設計還進行了畫面閃爍消除,視覺效果更加人性化,且鼠標操作,簡單易用,無須安裝,即開即用。 畢業(yè)設計說明書 學生姓名 學 號 學院 計算機科學與技術 學院 專 業(yè) 軟件工程 題 目 基于 MFC 的 對戰(zhàn)象棋設計與實現(xiàn) 指導教師 (姓 名) (專業(yè)技術職稱 /學位) 年 月 畢業(yè)論文獨創(chuàng)性聲明 本人鄭重聲明: 本論文是我個人在導師指導下進行的研究工作及取得的研究成果。 本設計正是開發(fā)這樣一款電子象棋游戲,它采用 MFC 文檔視圖體系結構和 Visual C++開發(fā)工具,實現(xiàn)了具有背景棋盤和棋子種類的變換,走棋,悔棋,還原和網(wǎng)絡對弈功能。為了方便其更好的推廣,并且為了擺脫傳統(tǒng)棋盤、棋子、場地的束縛,網(wǎng)絡版象棋備受青睞,這也是本款 象 棋游戲 開發(fā)的意義所在。象棋是我國正式開展的 78個體育運動項目 之一,為促進該項目在世界范圍內的普及和推廣,已將“中國象棋”項目名稱更改為“象棋”。己方的棋子始終使用己方的線路編號,無論棋子是否“過河”。 仕(士)是將(帥)的貼身保鏢 ,主要任務是防守 ,它也只能在九宮內走動 ,且只能斜走 ,不先后左右移動 。炮是象棋里面 唯一 一個 可以越子的棋種 ,威力也很大 。 ” ( 2)“ 馬后炮 ”: 泛指炮在馬后,以馬限制對方將帥的 退路,兼以炮向對方叫將。 MFC 及相關技術 MFC:微軟基礎類 (Microsoft Foundation Classes), C++是一種應用程序框架,隨微軟 Visual C++開發(fā)工具 一起 發(fā)布。這個對象是全局對象,因此它在創(chuàng)建任何窗口前首先被構造。 GDI 繪圖 GDI 是 Graphics Device Interface 的縮寫,含義是 圖形設備接口 ,它的主要任務是負責系統(tǒng)與繪圖程序之間的信息交換,處理所有 Windows 程序的圖形輸出。 如果有必要,可以使用一些 GDI函數(shù)獲得和改變設備描述表中的屬性值。每個窗口使用窗口進程 來處理發(fā)送給它的消息。通常,應該盡量發(fā)送一個消息,除非想把動作延遲到所有鼠標和鍵盤消息被處理之后。 因為棋子位圖周圍有白色邊框,通過 “ 遮罩技術 ” 可以消除邊框,實現(xiàn)棋子透明覆在棋盤上,更具美感。若建立主機 ,則建立一個端口,用于和客戶機的交互連接,然后等待知道有客戶機連上。 游戲界面 網(wǎng)絡 游戲內核 淮陰師范學院畢業(yè)論文(設計) 11 圖 22 程序流程圖 開始 結束 等待直到收到消息 調用 FetchMsg 處理相應的信息 如 果帥編號屬性不是帥 等待直到收到消息 調用 FetchMsg 處理相應的信息 如果將編號屬性不是將 Y 輸入主機 IP 地址 和端口號 N m_State=1 建立主機 建立端口 m_State=0 走棋 ,悔棋 ,還原 操作 SendMsg 相應消息 Y N Y (m_State+1)%2 Y Y N N N 淮陰師范學院畢業(yè)論文(設計) 12 3 程序詳細設計說明 界面設計 本程序界面簡單明了,包括棋盤顯示, listbox,開始、悔棋、還原、認輸四個按鈕,還有用于聊天的 edit 和發(fā)送按鈕 。若程序在開始時就全部加載,會浪費大量內存,因為游戲過程中只需要一副棋盤棋子,且不利于更多棋盤和棋子種類的更新,也 不利于后期維護。 ChessList[9] = LoadFileBmp(strPiece + )。 ChessList[1] = LoadFileBmp(strPiece + )。 例如點擊棋盤的水滴 棋盤 void CChess_mView::OnDrop() { m_strBoard = res\\images\\。 CNet, CNetControl 兩個類用于網(wǎng)絡部分,后面網(wǎng)絡功能部分再詳解。 name 棋子的名字,例如“炮”。// 游戲狀態(tài) 游戲等待中 ,等待開始 0、游戲中 紅方走棋 游戲中 黑方走棋 int top。 ( 3) CChess_mView 類是程序的顯示類,也包含少部分的棋子控制操作功能和很多消息響應函數(shù),由于篇幅問題沒有全部顯示。 //記錄前一個棋子的縱坐標 ///用于右鍵功能 int Rchoosed。//背景句柄 淮陰師范學院畢業(yè)論文(設計) 17 CDC ChessAll。//聊天發(fā)送 按鈕 CEdit m_edit。//認輸 void OnSend()。 //載入位圖 void SetBoardandPiece(CString strBoard,CString strPiece)。 ifdef _DEBUG virtual void AssertValid() const。 if (map[Old_Point_x][Old_Point_y]/7==map[Now_Point_x][Now_Point_y]/7) return false。 //判斷移動前后位置之間有無其他子 for (int i=mincol。 } //同一列 else if (Old_Point_x==Now_Point_x) { int maxrow=(Old_Point_yNow_Point_y)?Old_Point_y:Now_Point_y。amp。amp。 } else if (2==col) { if(14==map[Old_Point_x][Old_Point_y+1]) return true。 int col=Now_Point_yOld_Point_y。(2==col)amp。 } else if ((2==row)amp。amp。 } else if ((2==row)amp。amp。 } } 仕(士 ) 仕(士)只能在 各自 九宮內走動 ,所以紅黑士要分開判斷范圍,然后在判斷棋子是否斜走,而不是直走,即始末位置的 X,Y 的差值絕對值要都是 1。 int col=abs(Now_Point_xOld_Point_x)。(Now_Point_x=5)amp。(row==1)) { return true。amp。amp。(Now_Point_y=7)amp。0==col)) return true。 //判斷兩位置之間是否有子間隔 for (int i=mincol。 } //同一行 else if (Old_Point_y==Now_Point_y) { int maxrow=(Old_Point_xNow_Point_x)?Old_Point_x:Now_Point_x。amp。過河后,黑卒可以 X 前后不變, Y 比之前多 1,也可以前后Y不變, X 比之前多 1或者少 1,均可達 。amp。 淮陰師范學院畢業(yè)論文(設計) 26 } } else //紅兵 if (chesstype==0) { //未過河 if ((Old_Point_y=6)amp。(Old_Point_y=0)) { if ((Old_Point_x==Now_Point_x)amp。選棋子只要就是鼠標左鍵按下事件下進行,按下時要判斷這里是否有棋子,即棋盤 MAP[][]數(shù)組是否是小于 14(棋子的 type 最大為 13), 否則不響應我選棋子的操作。amp。amp。amp。 ( 3) LButtonUp 操作 LButtonUp 操作要做的就是判斷能否到達,保存數(shù)據(jù),判斷勝 負的工作。 Marry[top][4]=Search(,)。 map[nChessinfo[choosed].x][nChessinfo[choosed].y]=nChessinfo[choosed].
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1