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

正文內(nèi)容

基于mfc的對戰(zhàn)象棋設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)-免費(fèi)閱讀

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

下一頁面
  

【正文】 (%d:%s(%d,%d)(%d,%d),top++,nChessinfo[choosed].name, Marry[top][2],Marry[top][3],Marry[top][6],Marry[top][7])。 if (Marry[top][4]32) { //如果這里有子,那么把他的類型賦為 15 不顯示 nChessinfo[Search(,)].type=15。CanGoTo(OldX,OldY,()/CHESS_SIZE, ()/CHESS_SIZE,OldType)) { Marry[top][0]=choosed。 //[OldX][OldY]=14。 OldType=[choosed].type。amp。amp。amp。(Old_Point_yNow_Point_y==1)) { return true。 } else if ((abs(Now_Point_xOld_Point_x)==1)amp。amp。 } 兵(卒) 兵(卒) 不能后退且只能一步一步前進(jìn), 未過河前,只能向前 。i=maxrow。 //炮吃子 else if((3==n)amp。炮首先判斷是否在同一列或者同一行,然后判斷當(dāng)前位置和目標(biāo)位置中間是否存在其他棋子,若中間無子且目標(biāo)位置處無子,則表示炮在行走且可達(dá);若中間有一個棋子且目標(biāo)位置有子 ( 不能為本方棋子,前面已經(jīng)做過判斷 ) ,則表示炮在吃子且可達(dá)。 if((0==rowamp。 } //紅帥 else if(6==chesstype) { if ((Now_Point_x=3)amp。 int col=abs(Now_Point_xOld_Point_x)。判斷時,只需先判定在 九宮內(nèi) ,再判斷始末位置的 X,Y的差值絕對值 是不是 一個 為 1,一個為 0。(Now_Point_y=9)) { int row=abs(Now_Point_yOld_Point_y)。 } else 淮陰師范學(xué)院畢業(yè)論文(設(shè)計(jì)) 23 return false。amp。(2==col)amp。(14==map[Old_Point_x1][Old_Point_y+1])) { return true。amp。(14==map[Old_Point_x+1][Old_Point_y+1])) { return true。amp。amp。但 相(象)的 走法判斷和馬類似, 都是先判斷差值,來確定田字范圍,再判斷有沒有 塞象眼 ,即田字中間有沒有棋子。 } else if (2==row) { if(14==map[Old_Point_x+1][Old_Point_y]) return true。若是,則判斷有沒有蹩馬腿,即同側(cè)的第一個位置 map[][]必須為空。i=maxrow。 else if((2==n)amp。若 有 兩個,且目標(biāo)位置不為空,則表示吃子,可達(dá)。 棋子走法 棋子走棋規(guī)則在“ 象棋棋子”已有介紹,這里不再累述。 protected: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo)。//提示現(xiàn)在出牌 void PrintAll()。 //用于只有在有悔棋額情況下才能還原的控制 // Operations public: void OnOk()。 //開始按鈕 CButton m_goback。 //位圖數(shù)組 CString m_strPiece。 //網(wǎng)絡(luò)控制顯示 int choosed。 //記錄 listbox 的步數(shù) 包括游戲步奏和聊天記錄 public: 淮陰師范學(xué)院畢業(yè)論文(設(shè)計(jì)) 16 int Search(int x,int y)。//記錄 32 個棋子的信息 int map[9][10]。 int x。 光標(biāo)的生 成 ,可以起到提醒對方我已經(jīng)走過棋了, 也利于在我方還沒有出招之前始終知道對方的上一步是怎么走的,只有在我方出招之后對方的操作痕跡才可能被銷毀,這樣的設(shè)計(jì)增強(qiáng)了棋譜的可讀性,也減輕了玩家的記憶負(fù)擔(dān)。 ChessList[16] = LoadFileBmp(strPiece + )。 ChessList[5] = LoadFileBmp(strPiece + )。 } void CChess_mView::SetBoardandPiece(CString strBoard, CString strPiece ) { //0 紅兵 1 紅袍 2紅車 3 紅馬 4紅相 5紅士 6 紅帥 7黑兵 8 黑袍 9黑車 10黑馬 11 黑象 12黑士 13 黑將 大于 13 不是棋子 ChessList[13] = LoadFileBmp(strPiece + )?;谄宀僮骺梢詮?中得到相應(yīng)的數(shù)據(jù)來實(shí)現(xiàn)悔棋功能。 走棋, 點(diǎn)擊鼠標(biāo)左鍵選中棋子,移動,放到想到達(dá)的地方,系統(tǒng)調(diào)用 CanGoTo 函數(shù),判斷是否可到,若可到,則棋子放到目的地,否則返回棋子原來的地方能夠。本設(shè)計(jì)采用連接協(xié)議的 Socket編程模型,保證網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)及時、正確的到達(dá)。每個棋子包含了自身的 type, name,及其在棋盤中的位置 x,y。寄送消息時,把消息發(fā)送到擁有那個窗口的應(yīng)用程序的消息隊(duì)列中。 命令消息一般與用戶請求有關(guān),當(dāng)用戶單擊一個菜單項(xiàng)時,命令消息產(chǎn)生,并發(fā)送給能處理這個消息的類對象(如編輯文本等)。 想要在屏幕或者其他輸出設(shè)備上 輸出圖形或者文字,就必須先獲得一個稱為設(shè)備描述表( DC:Device Context)的對象的句柄,以它為參考,調(diào)用各種 GDI 函數(shù)來實(shí)現(xiàn)各種文字或圖形的輸出。 ( CChess_mView) 該類占有框架窗口的客戶區(qū),主要負(fù)責(zé)顯示文檔數(shù)據(jù),也為文檔對象和用戶之間提供了用以交互的可視接口,另外,也完 成了與文檔打印相關(guān)的操作,通常,一般的繪制操作都是在該類中完成,因此有時也稱視圖類窗口為“繪制窗口”。 Windows 應(yīng)用程序中, MFC 的主包含文件為 。 ( 6)“炮碾丹沙”: 車炮在底線成將 , 從而殺去障礙 (主要是士象 )成殺勢。 兵(卒) 不能后退且只能一步一步走, 未過河前,只能向前 。 車在象棋中威力最猛 ,只要 起始位置和目的位置中間沒有其他棋子 , 它就 可 以到達(dá)它橫豎線所在的任何地方 。 帥(將)是棋中的 首腦 , 也是戰(zhàn)術(shù)核心 。在長方形的平面上,共 有九條平行的豎線和十條平行的橫線,共有九十個交叉點(diǎn)。”。電腦游戲行業(yè)經(jīng)過二十余年的發(fā)展,已成為與音樂、影視等并駕齊驅(qū)的全球最重要娛樂行業(yè)之一。 其他同志對本研究所做的任何貢獻(xiàn)均已在論文中作了明確的說明并表示了謝意。 作者簽名: 日 期: 淮陰師范學(xué)院畢業(yè)論文(設(shè)計(jì)) 1 摘 要: 中國象棋是我國歷史悠久的智力對戰(zhàn)游戲,發(fā)展至今已有數(shù)千年的歷史,是中華民族智慧的結(jié)晶。 時下,與角色扮演類、即時戰(zhàn)略類游戲相比,棋牌類游戲這種上手快、游戲時間短的傳統(tǒng)游戲方式,仍在廣大群眾中占有舉足輕重的地位?!墩f苑》載:雍門子周以琴見 孟嘗 君,說:“足下千乘之君也, ?? 燕則斗象棋而舞鄭女。 棋盤兩 端的中間,也就是第四條到第六條豎線之間的正方形部位, 有 斜交叉線 “米”字方格的地方,叫作“九宮” ,象征著中軍帳 ,是將和帥的駐扎地 。它只能在 本方 九宮 之內(nèi)活動,可 上下左右沿著橫線或者豎線移動一格 。 俗稱 “ 一車十子寒 ” 。 過河以后 , 允許左右移動 。 ( 7)“ 車炮抽殺 ” :泛指炮在車后時,一面跳炮吃子,一面露車叫將,令對方顧此失彼的一種戰(zhàn)術(shù)。 此外 MFC 的部分類為 MFC/ATL 通用,可以在 Win32 應(yīng)用程序中單獨(dú)包含并使用這些類。 ( CMainFrame) 框架類表示應(yīng)用程序的主框架窗口,其主要作用是響應(yīng)標(biāo)準(zhǔn)的窗口消息,不過,它通常先將消息按照一定的次序傳遞給視圖類以及文檔類等其他命令處理類,另外,它還為視圖類提供可視化的邊框,同時也包括標(biāo)題欄,一些標(biāo)準(zhǔn)的窗口組件等。 設(shè)備描述表是 GDI內(nèi)部保存數(shù)據(jù)的一種數(shù)據(jù)結(jié)構(gòu),此結(jié)構(gòu)中的屬性內(nèi)容與特定的輸出淮陰師范學(xué)院畢業(yè)論文(設(shè)計(jì)) 8 設(shè)備(顯示器、打印機(jī)等)相關(guān),屬性定義了 GDI函數(shù)的工作細(xì)節(jié)。 控件消息在某些重要事件發(fā)送時,由控件窗口發(fā)送給父窗體處理, 如打開一個對話框。當(dāng)應(yīng)用程序空閑時,它會搜索消息隊(duì)列 ,并處理優(yōu)先級較高的消息,然后從隊(duì)列中刪除它,并把處理結(jié)果發(fā)送給既定窗口 。 棋子走法是利用鼠標(biāo)的消息處理函數(shù),獲得棋子種類,當(dāng)前坐標(biāo)和下一步坐標(biāo),共五個信息,再利用規(guī)定的 CanGoTo()函數(shù)判斷能否到達(dá)。 主要功能 通過計(jì)算機(jī)的鼠標(biāo)鍵盤操作操作界面,必須按照象棋的規(guī)則進(jìn)行對弈,如果在對弈過程中,一方出招錯誤,電腦會予以簡單提示,并無視錯誤操作。走棋成功后,發(fā)送消息給對方,對方接收消息后,進(jìn)行相應(yīng)的操作 。 文件內(nèi)有新游戲、擺棋操作,控制內(nèi)有悔棋、還原、認(rèn)輸操作,背景內(nèi)有棋盤和棋子的切換操作。 ChessList[12] = LoadFileBmp(strPiece + )。 ChessList[4] = LoadFileBmp(strPiece + )。 //用于遮罩技術(shù)(見關(guān)鍵技術(shù)) } ( 2) 棋盤、棋子的 切換 當(dāng)點(diǎn)擊菜單欄背景的棋盤或者 棋子,可以選擇不同的 棋盤和棋子。 光標(biāo)在棋盤載入的時候就一起載入了 ChessList[14] = LoadFileBmp(strPiece + )。 int y。//記錄棋盤上的信息 int PlayerAc。//找是第幾顆棋子 共 32 顆( 0~31),若不存在棋子,返回 32 bool CanGoTo(int Old_Point_x,int Old_Point_y,int Now_Point_x,int Now_Point_y,int chesstype)。 //記錄前一個棋子是第幾個棋子 int OldType。//棋子根目錄 CString m_strBoard。 //悔棋按鈕 CButton m_huanyuan。//開始 void OnGoBack()。 //把界面存儲于 buffer 中 void PrintAllMsg()。 virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)。 這里主要介紹各個棋子的程序具體實(shí)現(xiàn)。 //車 if (9==chesstype||2==chesstype) { //同一行 if (Old_Point_y==Now_Point_y) { int maxcol=(Old_Point_xNow_Point_x)?Old_Point_x:Now_Point_x。amp。i++) { if(14!=map[Old_Point_x][i]) n++。 //馬 if (3==chesstype||10==chesstype) { int row=Now_Point_xOld_Point_x。 else return false。 //黑象 if (11==chesstype) { if((Now_Point_y=0)amp。(14==map[Old_Point_x1][Old_Point_y1])) { return true。(2==col)amp。 } else return false。(2==col)amp。 } else if((2==row)amp。amp。(Now_Point_y=0)amp。 } else return false。 int col=abs(Now_Point_xOld_Point_x)。 //黑將 if (13==chesstype) { if ((Now_Point_x=3)amp。 if((0==rowamp。amp。amp。 //炮 if (1==chesstype||8==chesstype) { //同一列 if (Old_Point_x==Now_Point_x) { int maxcol=(Old_Point_yNow_Point_y)?Old_Point_y:Now_Point_y。amp。i++) { if(14!=map[i][Old_Point_y]) n++。 過河以后 , 允許左右移動 。(Now_Point_yOld_Point_y==1)) { return true。amp。 } else return false。(0==Old_Point_yNow_Point_y)) { return true。(=BOAR
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1