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

正文內(nèi)容

五子棋游戲的設(shè)計與開發(fā)—免費(fèi)-文庫吧資料

2024-12-15 10:22本頁面
  

【正文】 類,它負(fù)責(zé)規(guī)則的處理。 ar m_x。 ar m_y。 ar) { if (()) { ar m_turn。這 3個數(shù)據(jù)就是網(wǎng)絡(luò)要傳的數(shù)據(jù)。 int m_y。 CMessg類主要的成員變量: int m_turn。 return FALSE。 } else { //對方關(guān)閉了連 接 m_bClose=true。//輸出串行化 m_aSessionOutFlush()。 } } } while (!m_aSessionInIsBufferEmpty())。 m_viewInvalidate(FALSE)。//刷新視圖,顯示對方的走子位置 if(m_view(m_viewm_who%2+1,m_viewm_winpos)) { m_viewm_bWin=TRUE。//輸入數(shù)據(jù)串行化 //判斷對方發(fā)送過來的數(shù)據(jù)是否是落子的位置 if(m_view(,m_viewm_who%2+1)) {//是對方落 子的信息 m_viewm_turn=。 do { CMessg temp。當(dāng)關(guān)閉客戶端Socket 是使用成員函數(shù) CloseSocket 關(guān)閉。連接服務(wù)器所需參數(shù)通過對話框 獲得,如圖 44: 圖 44 客戶端設(shè)置圖 CClientSocket 類中需要數(shù)據(jù)串行化網(wǎng)絡(luò)數(shù)據(jù)。另外,作為 CSocket 類的繼承類,當(dāng)然采用了串行化方式來處理網(wǎng)絡(luò)數(shù)據(jù)。//調(diào)用視圖類中連接處理函數(shù) } 游戲連接 —— CClientSocket 類的實現(xiàn) 這是一個專門用做會話類,它負(fù)責(zé)數(shù)據(jù)的發(fā)送和接受。 } void CServerSocket::OnAccept(int nErrorCode) //授受客戶端請求 { CSocket::OnAccept(nErrorCode)。 return FALSE。 return FALSE。 m_view=view。當(dāng)有監(jiān)聽客戶端的連接消息時, OnAccept函數(shù)響應(yīng)。并且在類成員函數(shù) Init(UINT port, CFiveChessView* dlg)中負(fù)責(zé)監(jiān)聽 SOCKET 和創(chuàng)建SOCKET。 主要類的工作 示意圖 圖 42 主要類工作 示意圖 五子棋游戲?qū)崿F(xiàn) 游戲連接 —— CServerSocket 類的實現(xiàn) 這是一個專門用來監(jiān)聽客戶端連接的 Socket 類,它繼承于 CSocket,響應(yīng)OnAccept 消息。 CSoundThread 類:是游戲中負(fù)責(zé)多媒體播放的線程類,主要負(fù)責(zé)音樂播放。 CServerDlg 類:是游戲 中服務(wù)器端設(shè)置的對話框類。 CClientDlg 類:是游戲中客戶端設(shè)置的對話框類。在游戲中它負(fù)責(zé)在主窗口中繪制盤和棋子。在游戲運(yùn)行中,它保存著一個二維數(shù)組記錄當(dāng)前棋盤的信息,它還負(fù)責(zé)判斷能否在某個位置下棋,是否有人贏棋。它就是用來在網(wǎng)絡(luò)上傳輸?shù)男畔?。這個對象是用來連接服務(wù)器,它連接上以后,就可以通過 他進(jìn)行數(shù)據(jù)的交換。 CClientSocket 類:是一個專門用做會話類,它負(fù)責(zé)數(shù)據(jù)的發(fā)送和接受。當(dāng)游戲運(yùn)行,選擇了開啟服務(wù)器之后,即調(diào)用本類來初始一個 Socket 對象。 ? 多媒體功能設(shè)計模塊: 音頻播放模塊:負(fù)責(zé)播放 MP3, WMA等格式的音樂。 游戲規(guī)則模塊:負(fù)責(zé)游戲的控制和結(jié)果的判斷,使游戲按規(guī)則進(jìn)行。游戲設(shè) 計是按如下功能模塊的設(shè)計思路來安排的: ? 五子棋游戲設(shè)計可以分成如下幾個模塊: 服務(wù)器模塊:負(fù)責(zé)建立游戲服務(wù)器并接受客戶端的連接和處理客戶端的數(shù)據(jù)。 設(shè)想如下圖 31: 圖 31 五子棋設(shè)想圖 五子棋游戲(網(wǎng)絡(luò)版)研究思路 本畢業(yè)設(shè)計是利用 VC 這一集成開發(fā)工具,在 Windows 環(huán)境下開發(fā)一款休閑網(wǎng)絡(luò)游戲。 ? 擴(kuò)展功能 在游戲中當(dāng)下棋位置不對或者還沒有輪到本機(jī)下棋能提示用戶相應(yīng)信息。該功能是多媒體播放功能,在用戶游戲時候能隨意播放自己喜歡的音樂。當(dāng)用戶五子連成一線時即贏。//停止播放音樂 3 五子棋游戲(網(wǎng)絡(luò)版)研究方法 五子棋游戲(網(wǎng)絡(luò)版)需求分析 ? 五子棋游戲基本功能 該功能為程序設(shè)計的最基本的功能,程序有服務(wù)器端和客戶端。mciPlay)。//打開文件 m_wDeviceID = 。//傳遞給 MCI 標(biāo)準(zhǔn)控件文件路徑 mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)(LPVOID)amp。 if(()==IDOK)//打開對話框 { strFileName=()。 CString sFilter=MP3 文件 (*.mp3)|*.mp3|Wav 文件 (*.wav)|*.wav|WMA 文件(*.wma)|*.wma||。這種方式有三個核心函數(shù) MciSendCommand、 MciGetDeviceID、MciGetErrorString。 基于消息命令接口函數(shù)的編程方式,也就是游戲設(shè)計中采用的方式。 基于字符串多媒體控制接口的編程方式,通過向設(shè)備發(fā)送字符串實現(xiàn)對多媒體設(shè)備的控制。它們的不同之處在于有著不用的命令結(jié)構(gòu)和發(fā)送消息到多媒體設(shè)備的不同原理。 MCI 可以在 C 語言中直接調(diào)用函數(shù)庫。 通訊完畢后,銷毀 CArchive、 CSocketFile 和 CSocket 對象 多媒體 MCI 接口介紹 多媒體控制接口 MCI 是 MicroSoft Windows 定義的多媒體接口標(biāo)準(zhǔn)。切記 CArchive 是不能和數(shù)據(jù)報套接字一起工作的。 產(chǎn)生一個 CSocketFile 對象,并把它與 CSocket 對象關(guān)聯(lián)起來。 如果是客戶方套接字,則調(diào)用 CAsyncSocket ∷ Connect()函數(shù)與服務(wù)方套接字連接;如果是服務(wù)方套接字,則調(diào)用 CAsyncSocket∷ Listen()開始監(jiān)聽來自客戶方的連接請求,收到連接請求后,調(diào)用 CAsyncSocket∷ Accept()函數(shù)接受請求,建立連接。而對于服務(wù)方程序,必須在調(diào)用 Create 時指定一個端口。 使用這個對象的 Create()成員函數(shù)產(chǎn)生一個 socket 對象。以下介紹的針對字節(jié)流型套接字的操作步驟中,只有第 3 步對于客戶方和服務(wù)方操作是不同的,其他步驟都相同。但在 CSocket 類中,為了利用 CArchive 處理通訊中的許多問題和簡化編程,它的一些成員函數(shù)總是具有阻塞性質(zhì)的,這是因為 CArchive 類需要同步的操作。如果一個 socket 處于非阻塞模式(即異步操作),則會被調(diào)用函數(shù)立即返回。 CSocket 對象提 供阻塞模式,因為阻塞功能對于 CArchive 的同步操作是至關(guān)重要的。阻塞函數(shù)(如 Receive()、Send()、 ReceiveFrom()、 SendTo() 和 Accept())直到操作完成后才返回控制權(quán),因此如果需要低層控制和高效率,就使用 CasyncSock 類;如果需要方便,則可使用 Csocket 類。 Csocket 類和 CsocketFile 類可以與 Carchive 類一起合作來管理發(fā)送和接收的數(shù)據(jù),這使管理數(shù)據(jù)收發(fā)更加便利。如果是在棧上產(chǎn)生的 CAsyncSocket對象,則對象超出定義的范圍時自 動被析構(gòu);如果是在堆上產(chǎn)生,也就是用了new 這個操作符,則必須使用 delete 操作符銷毀 CAsyncSocket 對象。 調(diào)用其他的 CAsyncSocket 類的 Receive()、 ReceiveFrom()、 Send()和 SendTo()等成員函數(shù)進(jìn)行數(shù)據(jù)通信。 如是客戶方程序,用 CAsyncSocket∷ Connect()成員函數(shù)連接到服務(wù)方;如是服務(wù)方程序,用 CAsyncSocket∷ Listen()成員函數(shù)開始監(jiān)聽,一旦收到連接請求,則調(diào)用 CAsyncSocket∷ Accept()成員函數(shù)開始接收。 2) socket 類型,可以是 SOCKSTREAM(默認(rèn)值,字節(jié)流)或 SOCKDGRAM(數(shù)據(jù)報)。 該函數(shù)的參數(shù)有: 1)端口, UINT 類型。 第一種方法在棧上產(chǎn)生一個 CAsyncSocket 對象,而第二種方法在堆上產(chǎn)生CAsyncSocket 對象;第一種方法中 Create()成員函數(shù)用缺省參數(shù)產(chǎn)生一個字節(jié)流套接字,第二種方法中用 Create()成員函數(shù)在指定的端口產(chǎn)生一個數(shù)字報套接字。 int nPort=27。 //使用默認(rèn)參數(shù)產(chǎn)生一個字節(jié)流套接字 ()。 CAsyncSocket類針對字節(jié)流型套接字的編 程模型簡述如下: 構(gòu)造一個 CAsyncSocket 對象,并用這個對象的 Create 成員函數(shù)產(chǎn)生一個 Socket 句柄。這個類基于程序員了解網(wǎng)絡(luò)通訊的假設(shè),目的是為了在MFC中使用 WinSock,程序員有責(zé)任處理諸如阻塞、字節(jié)順序和在 Unicode 與 MBCS 間轉(zhuǎn)換字符的任務(wù)。 CAsyncSocket 類介紹 微軟的 MFC 把復(fù)雜的 WinSock API 函數(shù)封裝到類里,這使得編寫 網(wǎng)絡(luò)應(yīng)用程序更容易。再調(diào)用 int closesocket( SOCKET s) 來關(guān)閉套接字句柄。 函數(shù)來接收和發(fā)送數(shù)據(jù),因為 ,TCP 連接是雙向的。 當(dāng)服務(wù)器端和客戶端建立連接以后,無論是客戶端 ,還是服務(wù)器端都可以使用: int send( SOCKET s , const char FAR* buf , int len , int flags )。 如果客戶端有了連接請求,還必須使用 int accept( SOCKET s , struct sockaddr FAR* addr , int FAR* addrlen )來接受客戶端的請求。 當(dāng)綁定完成之后,服務(wù)器端必須建立一個監(jiān)聽的隊列來接收客戶端的連接請求。 把網(wǎng)絡(luò)字節(jié)轉(zhuǎn)化成主機(jī)字節(jié)的函數(shù); u_long ntohl( u_long long ) 。 } 就包含了需要建立連接的本地的地址,包括地址族, ip和端口信息; Winsock API 提供了幾個函數(shù),把主機(jī)字節(jié)轉(zhuǎn)化成網(wǎng)絡(luò)字節(jié)的函數(shù); u_long htonl( u_long hostlong )。 struct in_addr sin_addr 。 struct sockaddr_in { short sin_family 。 int WSAStarup( WORD wVersionRequested , LPWSADATA lpWsAData ) SOCKET socket( int af , int type , int protocol ); 當(dāng)調(diào)用了 socket()接口函數(shù)創(chuàng)建了一個套接字后,必須把套接字與需要進(jìn)行通訊的地址建立聯(lián)系。通訊則必須有服務(wù)器端 和客戶端。 TCP/IP 的分層情況如圖 12 所示。 TCP/IP 也是一個分層的網(wǎng)絡(luò)協(xié)議,不過它與 OSI 模型所分的層次有所不同。 TCP/IP 協(xié)議使用范圍極廣,許多廠商的計算機(jī)操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)產(chǎn)品都采用或含有 TCP/IP 協(xié)議。每一層負(fù)責(zé)一項具體的工作,然后把數(shù)據(jù)傳送到下一層。1至 4層被認(rèn)為是低層,這些層與數(shù)據(jù)移動密切相關(guān)。國際標(biāo)準(zhǔn)組織(國際標(biāo)準(zhǔn)化組織)制定了 OSI 模型。 開發(fā)環(huán)境是程序員同 Visual C++的交互界面,通過它程序員可以訪問 C++源代碼編輯器、資源編輯器,使用內(nèi)部調(diào)試器,并且可以創(chuàng)建工程文件。可視化編程就是軟件開發(fā)階段的可視化。 進(jìn)入 90 年代以來,隨著多媒體技術(shù)和圖形圖像技術(shù)的不斷發(fā)展,可視化( Visual)技術(shù)得到廣泛的重視,越來越多計算機(jī)專業(yè)人員和非專業(yè)人員都開始研究并 應(yīng)用可視化技術(shù)。 Visual C++不僅是 C++語言的集成開發(fā)環(huán)境,而且與 Win32 緊密相連,所以,利用 Visual C++可以完成各種各樣的應(yīng)用程序的開發(fā),從底層軟件直到上層直接面向用戶的軟件。這樣五子棋休閑游戲?qū)⒉辉谑且粋€功能單一界面枯燥的無聲游戲,而是一個較完善的休閑游戲。 五子棋游戲現(xiàn)狀及研究意義 如今網(wǎng)絡(luò)上的提供免費(fèi)五子棋游戲,大多數(shù)是單機(jī)版的,界面單一,功能單一。 網(wǎng)絡(luò)游戲是通過信息網(wǎng)絡(luò)傳播和實現(xiàn)的互動娛樂形式,是一種網(wǎng)絡(luò)與文化相結(jié)合的產(chǎn)業(yè)。 MCI 目 錄 論文總頁數(shù): 27頁 1 引言 .......................................................................................................................... 6 網(wǎng)絡(luò)游戲背景 ................................................................................................. 6 五子棋游戲現(xiàn)狀及研究意義 ............................................................................ 6 2 游戲開發(fā)環(huán)境介紹 ..................................................
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1