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

正文內(nèi)容

智能斗地主課程設(shè)計論文(編輯修改稿)

2025-07-21 00:46 本頁面
 

【文章內(nèi)容簡介】 MainComputer。//主機,是主機則是true 不是則為false。 Managers()。 virtual ~Managers()。 Card PlayCards[3][20]。//最多20張牌 int PlayerAc。//這臺機器上的玩家 int PlayerMain。//地主 Card OutCards[20]。//走的牌,一次也最多出20張牌 int OutPlayer。//走牌的玩家 Card Sendleft[3]。//記錄剩下的3張牌 int Game_State。 // 2游戲沒開始 // 1游戲準(zhǔn)備中,選地主 // 02 游戲玩家出 // 35 對應(yīng)02玩家勝利 void Updata()。//更新 int Power。//計算當(dāng)前游戲如果農(nóng)民勝利則每人得的分 int PlayerMaininfo。//記錄有幾個玩家選擇放棄地主 如果都放棄則游戲結(jié)束 void SendCard()。 //發(fā)牌 void SortCard(Card ca[])。//給牌排序private: void CardsInfo(Card ca[],int amp。num,int amp。min,int amp。type)。 bool CheckCard(int pl)。//檢查出牌的合法性 Card PreOut[20]。}。DoMsg(int num,int action)準(zhǔn)備過牌/出牌/單擊牌/放棄地主/接受地主退出游戲用戶操作 點擊則改變Click屬性 Game_state=1時選地主PlayCards[x][y].Click改變PlayMain,改變誰是地主 點牌則改 1Game_state3時出牌過牌 出牌過牌,直接改變Game_StatePlayMain CheckCard(int pl)CardsInfo(Card ca,intamp。num,int amp。min,int amp。type)不能走牌什么都不做OutCardsOutPlayer 這個函數(shù)用來得到牌的信息到底是炸彈,改變OutCards和OutPlayer連牌還是其它牌型圖25 Manager算法方案流程圖SOCKET 與 bind函數(shù)SOCKET socket( int af, int type, int protocol )該函數(shù)接收三個參數(shù)。第一個參數(shù)af指定地址族,對于TCP/IP協(xié)議的套接字,它只能是AF_INET(也可寫成PF_INET)。第二個參數(shù)指定Socket類型,它只支持兩種類型的套接字,SOCK_STREAM指定產(chǎn)生流式套接字,SOCK_DGRAM產(chǎn)生數(shù)據(jù)報套接字。第三個參數(shù)是與特定的地址家族相關(guān)的協(xié)議,如果指定為0,那么它就會根據(jù)地址格式和套接字類別,自動為你選擇一個合適的協(xié)議。這是推薦使用的一種選擇協(xié)議的方法。如果這個函數(shù)調(diào)用成功,它將返回一個新的SOCKET數(shù)據(jù)類型的套接字描述符。如果調(diào)用失敗,這個函數(shù)就會返回一個INVALID_SOCKET,錯誤信息可以通過WSAGetLastError函數(shù)返回。int bind( SOCKET s, const struct sockaddr FAR *name, int namelen )。n 這個函數(shù)接收三個參數(shù)。第一個參數(shù)s指定要綁定的套接字,第二個參數(shù)指定了該套接字的本地地址信息,是指向sockaddr結(jié)構(gòu)的指針變量,由于該地址結(jié)構(gòu)是為所有的地址家族準(zhǔn)備的,這個結(jié)構(gòu)可能(通常會)隨所使用的網(wǎng)絡(luò)協(xié)議不同而不同,所以,要用第三個參數(shù)指定該地址結(jié)構(gòu)的長度。 sockaddr結(jié)構(gòu)定義如下: struct sockaddr { u_short sa_family。 char sa_data[14]。 }。 n sockaddr的第一個字段sa_family指定該地址家族,在這里必須設(shè)為AF_INET。sa_data僅僅是表示要求一塊內(nèi)存分配區(qū),起到占位的作用,該區(qū)域中指定與協(xié)議相關(guān)的具體地址信息。由于實際要求的只是內(nèi)存區(qū),所以對于不同的協(xié)議家族,用不同的結(jié)構(gòu)來替換sockaddr。除了sa_family外,sockaddr是按網(wǎng)絡(luò)字節(jié)順序表示的。在TCP/IP中,我們可以用sockaddr_in結(jié)構(gòu)替換sockaddr,以方便我們填寫地址信息。 網(wǎng)絡(luò)編程采用客戶機/服務(wù)器模式客戶機/服務(wù)器模式在操作過程中采取的是主動請求的方式。 首先服務(wù)器方要先啟動,并根據(jù)請求提供相應(yīng)的服務(wù):①打開一個通信通道并告知本地主機,它愿意在某一地址和端口上接收客戶請求。②等待客戶請求到達該端口。③接收到重復(fù)服務(wù)請求,處理該請求并發(fā)送應(yīng)答信號。接收到并發(fā)服務(wù)請求,要激活一個新的進程(或線程)來處理這個客戶請求。新進程(或線程) 處理此客戶請求,并不需要對其它請求作出應(yīng)答。服務(wù)完成后,關(guān)閉此新進程與客戶的通信鏈路,并終止。④返回第二步,等待另一客戶請求。⑤關(guān)閉服務(wù)器。 客戶方:①打開一個通信通道,并連接到服務(wù)器所在主機的特定端口。②向服務(wù)器發(fā)服務(wù)請求報文,等待并接收應(yīng)答;繼續(xù)提出請求。③請求結(jié)束后關(guān)閉通信通道并終止。網(wǎng)絡(luò)編程設(shè)計服務(wù)器端程序:創(chuàng)建套接字(socket)。 將套接字綁定到一個本地地址和端口上(bind)。將套接字設(shè)為監(jiān)聽模式,準(zhǔn)備接收客戶請求(listen)。等待客戶請求到來;當(dāng)請求到來后,接受連接請求,返回一個新的對應(yīng)于此次連接的套接字(accept)。用返回的套接字和客戶端進行通信(send/recv)。返回,等待另一客戶請求。關(guān)閉套接字。客戶端(發(fā)送端)程序:創(chuàng)建套接字(socket)向服務(wù)器發(fā)送數(shù)據(jù)(sendto)關(guān)閉套接字第三章 詳細設(shè)計 游戲界面設(shè)計1.首先用MFC單文檔工程向?qū)Ы⒁粋€工程圖31 MFC單文檔工程向?qū)Ыrogram工程BOOL CMainFrame::PreCreateWindow(CREATESTRUCTamp。 cs){ if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE。 // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs = WS_CAPTION | FWS_ADDTOTITLE| WS_SYSMENU | WS_MINIMIZEBOX。 =0。=100。=50。=810。=620。 return TRUE。}3. 加載位圖BOOL CProgramView::PreCreateWindow(CREATESTRUCTamp。 cs){ // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs //加載位圖 (IDB_BACKGROUND)。 (IDB_CARD)。 return CView::PreCreateWindow(cs)。}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CProgramView::OnDraw(CDC* pDC){//加載桌面和54張牌 CProgramDoc* pDoc = GetDocument()。 ASSERT_VALID(pDoc)。 // TODO: add draw code for native data here //初始化CDC static bool st=TRUE。 if(st) { (pDC)。 (m_background)。 (pDC)。 (m_card)。 st=FALSE。 } PrintAll()。},對位置進行大致的確定再來看看如何讀取鼠標(biāo)指針的坐標(biāo),對位置進行大致確定。而要完成位置的確定就需要確定鼠標(biāo)位置的坐標(biāo),所以引入(,)來確定鼠標(biāo)的坐標(biāo)。而這又需要在CprogramView類中添加一個WM_MOUSEMOVE響應(yīng)。void CProgramView::OnMouseMove(UNIT nFlags,CPoint point){ //TODO:Add your message handler code here and/or call default//跟蹤光標(biāo)坐標(biāo)int mx=。int my=;CString st;CDC *pDc=GetDc();(”%d,%d”,);pDcTextOut(400,5,st);ReleaseDc(pDc);CView::OnMouseMove(nFlags,point);按鈕的創(chuàng)建利用CButton的初始化函數(shù)來創(chuàng)建Button:BOOL Create(LPCTSTR lpszCaption,DWORD dwStyle,const RECT amp。rect,CWND*pParentWnd,UNIT nId)(_T(確定),//按鈕的caption屬性,按鈕的顯示 WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, // 按鈕也是一種窗體,同樣有不同 //風(fēng)格,通過對常量或運算進行組合,達到一定的效果,這些常量的含義可以參考MSDN CRect(660,410,765,450), //這個參數(shù)指出按鈕在視圖中左上角和右下角坐標(biāo), //在確定了按鈕位置的同時也確定了其大小 this,//這個指針指向按鈕這個窗體的父窗體 ID_OK)。//這是剛才為按鈕定義的常量,按鈕的控制IDint CProgramView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == 1) return 1。 // TODO: Add your specialized creation code here//創(chuàng)建按鈕OK (_T(確定), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(660,420,765,460), this, ID_OK)。 //創(chuàng)建按鈕CANCEL (_T(退出), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(660,502,765,542), this, ID_CANCEL)。 //出牌 (_T(出牌), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(532,387,637,427), this, ID_SENDCARD)。 //過牌 (_T(過牌),WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(533,460,638,500),this,ID_PASS)。當(dāng)輸入?yún)?shù)為SW_SHOW表示顯示按鈕,當(dāng)為SW_HIDE表示隱藏按鈕 //按鈕的顯示控制 (SW_SHOW)。 (SW_SHOW)。 (SW_SHOW)。 (SW_SHOW)。按鈕的實現(xiàn)添加相關(guān)的消息響應(yīng)函數(shù):把按鈕和函數(shù)進行關(guān)聯(lián)就實現(xiàn)了確定、取消、發(fā)牌、過牌四個不同的動作。下面分析四個按鈕具體代碼:void CProgramView::OnOK(){//確定按鈕 if(!=2)return。//判斷是否為主機if(!pControlm_Isseverse){ pControlSendGetReady()。//如果不是主機則發(fā)送“準(zhǔn)備的消息”}else{ pControlm_ready[1]=true。//如果是主機則準(zhǔn)備完畢//如果三個玩家都準(zhǔn)備完畢后if(pControlm_ready[0]amp。amp。pControlm_ready[1]amp。amp。pControlm_ready[2]){ pControlm_ready[0]=false。 pControlm_ready[1]=false。 pControlm_ready[2]=false。 ()。//游戲開始 pControlStartCards()。//發(fā)牌}}CDC *pDC=GetDC()。ReleaseDC(pDC)。}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CProgramView::OnCancel(){//取消按鈕 Exit(0)。//退出程序}/////////////////////////////////////////////////////////////
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1