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

正文內(nèi)容

基于游戲平臺的斗地主畢業(yè)設(shè)計-在線瀏覽

2024-08-03 07:59本頁面
  

【正文】 齊齊哈爾大學(xué) 畢業(yè)設(shè)計(論文) 7 第 3 章 需求分析及可行性分析 需求分析 需求分析的作用 需求分析就是分析軟件用戶的需求是什么 。 比如 , 用戶需要一個 基于 linux 環(huán)境下 的軟件 , 而 在軟件開發(fā) 的時候沒有考慮到 軟件的運行環(huán)境 , 忘了向 程序員通知 這個問題 , 而想當(dāng)然 的以為 是開發(fā)基于 windows 環(huán) 境下 的軟件 , 當(dāng)你 辛苦 地 完成 此程序時候 向用戶提交時才發(fā)現(xiàn)出了問題 ,那這個時候的 財產(chǎn)和精力 損失就 會 是巨大的。 ( 1) 問題 鑒定 : 就是從系統(tǒng) 的方面 來 了解 軟件 , 確定 符合 開發(fā)系統(tǒng)的 基本 要求 ,并提出這些需求的實現(xiàn)條件 , 以及需求應(yīng)該達到 什么樣 的標(biāo)準(zhǔn) 。 綜合成系統(tǒng) 程序 的解決方案 , 給出 是 做 哪方面程序的大體架構(gòu)與需求 。 然后 向下一 步 提交 [6]。 驗證完成通過方 可進行下階段 工作 , 否則 需要 重新進行需求 驗證與總結(jié) ??尚行匝芯康哪康?,是根據(jù)所開發(fā)系統(tǒng)的請求,通過初步調(diào)查和系統(tǒng)目標(biāo)分析,對要開發(fā)的 民航票務(wù)管理系統(tǒng)從技術(shù)上、經(jīng)濟上、資源上和管理上進行是否可行的研究。 齊齊哈爾大學(xué) 畢業(yè)設(shè)計(論文) 8 經(jīng)濟方面 可行性:主要 做的就是 分析成本與收益、投資效果 方面的評估 。 資源方面 可行性:主要 考慮 經(jīng)費能否得到 有效的 保證。 可行性分析報告 以下為將可行性分析轉(zhuǎn)化為的可行性報告 ( 1) 經(jīng)濟上的可行性 ( 2) 技術(shù)上的可行性:本系統(tǒng)技術(shù)實現(xiàn)簡單可靠,因為不需要大規(guī)模的計算和讀取數(shù)據(jù),所以對計 算機的性能要求并不高,對環(huán)境的搭建沒有特殊的要求。 ( 4) 管理上的可行性:對于每個玩家 都 可以自己建立賬號直接進入,方便簡單。作為面向廣大用戶 電子 游戲,主要用于提供斗地主的游戲平臺,提供發(fā)牌 、 出牌 、 勝負(fù)判定 、積分 以及退出等主要功能。 C/S模式 結(jié)構(gòu) 主要 有 客戶應(yīng)用程序 (Client) 、服務(wù)器管理程序 (Server) 和中間 插件(middleware)。服務(wù)器 端用來接收客戶端請求來進行請求的操作 ,如管理一個數(shù)據(jù)庫, 主要工作是 多個消息 并發(fā)地請求服務(wù)器上的相同資源時,對這些 資源進行最優(yōu)化管理 以及調(diào)配 。 設(shè)計原則 ( 1) 客戶端與服務(wù)器端必須連接在一起。當(dāng)?shù)卿浫藬?shù)達到 3 時,拒絕其他客戶端登錄請示;當(dāng)已登錄玩家中,有人中途退出,其他已準(zhǔn)備玩家須保持其狀態(tài)(除非自行請示改變),而下面請示的玩家將直接填補退出者的位置。 ( 3) 當(dāng)滿足開始游戲條 件時,服務(wù)器發(fā)牌至每個連接客戶端。 ( 4) 所有的客戶端的任何動作必須詢問服務(wù)器。否則,服務(wù)器發(fā)送拒絕消息,客戶端則顯示有關(guān)錯誤信息。 基于 C/S 的模塊設(shè)計 服 務(wù)器端模塊設(shè)計 (1) 數(shù)據(jù)傳輸?shù)膶崿F(xiàn) 使用 WINSOCK 編程實現(xiàn) C/S 之間的通信。 類 CListenSocket: 監(jiān)視連接 socket,監(jiān)視來自客戶端的連接請求。 類 Cs : C/S 模式之間的數(shù)據(jù)傳送。 ar),專用于收發(fā)數(shù)據(jù),并存儲于內(nèi)存。并創(chuàng)建一個 CClientSocket 對象, CClientSocket 處于活躍狀態(tài)。 (2)游戲規(guī)則的實現(xiàn) 通過封裝相應(yīng)的類來實現(xiàn)規(guī)則 類 card :卡片類(牌),數(shù)據(jù)成員為花色( color) ,牌面( value),數(shù)目 ( num),存在 標(biāo)志( exist)。 結(jié)構(gòu)體 b :內(nèi)含頭頭是單,雙,三順,炸彈,火箭等所有牌型的標(biāo)記位。成員函數(shù):游戲初始化 initgame(),洗牌 suffle(),發(fā)牌 sendCards(),出牌 outcards(player amp。 Card 是游戲 的對象,一般而言,特定的游戲都有特定的游戲?qū)ο蟆?Colors 是各個 牌的花色共有 6 種,后兩種是小鬼(Bjoke)大鬼 (Rjoke),不用于其他牌。在斗地主中,牌型有單牌 ,順子,對子, 3 帶 1, 4 帶 2,炸彈,火箭等??蛻舳送顺鰰r,才被關(guān)閉。數(shù)據(jù)成員:消息 ID 號 message,數(shù)據(jù)相關(guān)者 InfoAbout 等等。 ar),該成員函數(shù)專用于收發(fā)數(shù)據(jù),并存儲于內(nèi)存。下面是 54 張紙牌中 15 種類型牌的截圖: 圖 51 牌型 紙牌的出牌類型 每一種游戲都是有其定義的游戲規(guī)則的,斗地主也一樣,其出牌牌型也有很多種,具體的有:單牌、一對、三張、三帶一、四張、順子、三帶一對、四帶二、四帶二對、連對(至少 3 對)、飛機,其牌型及牌值定義如 下: 牌型 (Cards_Type) 牌值 (Cards_Value) 牌數(shù) : 單牌 : 1 (面值 ) 1 一對 : 2 (面值 ) 2 三張 : 3 (面值 ) 3 三帶一 : 31 三張的 (面值 ) 4 四張 : 4 (面值 ) 4 單順 : 5 最小牌的 (面值 ) 5 三帶一對 : 32 三張的 (面值 ) 5 齊齊哈爾大學(xué) 畢業(yè)設(shè)計(論文) 12 單順 : 6 最小牌的 (面值 ) 6 雙順 : 222 最小牌的 (面值 ) 6 三順 : 33 最小牌的 (面值 ) 6 四帶二單 : 411 四張的 (面值 ) 6 單順 : 7 最小牌的 (面值 ) 7 單順 : 8 最小牌的 (面值 ) 8 雙順 2222 最小牌的 (面值 ) 8 三順帶二單 : 3311 最小三張的 (面值 ) 8 四帶二對 : 422 四張的 (面值 ) 8 單順 : 9 最小牌的 (面值 ) 9 三順 : 333 最小三張的 (面值 ) 9 單順 : 10 最小牌的 (面值 ) 10 雙順 : 22222 最小牌的 (面值 ) 10 三順帶二對 : 3322 最小三張的 (面值 ) 10 單順 : 11 最小牌的 (面值 ) 11 單順 : 12 最小牌的 (面值 ) 12 雙順 : 222222 最小對牌的 (面值 ) 12 三 順 : 3333 最小三張的 (面值 ) 12 三順帶三 : 333111 最小三張的 (面值 ) 12 雙順 2222222 最小對牌的 (面值 ) 14 三順帶三對 : 333222 最小三張的 (面值 ) 15 三順 : 33333 最小三張的 (面值 ) 15 雙順 22222222 最小對牌的 (面值 ) 16 三順帶四單 : 33331111 最小三張的 (面值 ) 16 雙順 222222222 最小對牌的 (面值 ) 18 三順 333333 最小三張的 (面值 ) 18 雙順 2222222222 最小對牌的 (面值 ) 20 三順帶五單 : 3333311111 最小三張的 (面值 ) 20 三順帶四對 : 33332222 最小三張的 (面值 ) 20 //獲取類型 BYTE CGameLogic::GetCardType(const BYTE cbCardData[], BYTE cbCardCount) { //簡單牌型 switch (cbCardCount) { case 0: //空牌 齊齊哈爾大學(xué) 畢業(yè)設(shè)計(論文) 13 { return CT_ERROR。 } case 2: //對牌火箭 { //牌型判斷 if ((cbCardData[0]==0x4F)amp。(cbCardData[1]==0x4E)) return CT_MISSILE_CARD。 return CT_ERROR。 AnalysebCardData(cbCardData,cbCardCount,AnalyseResult)。amp。 if (([3]==1) amp。 (cbCardCount==6)) return CT_FOUR_TAKE_ONE。amp。amp。 return CT_ERROR。 BYTE cbFirstLogicValue=GetCardLogicValue(cbCardData)。 //連牌判斷 for (BYTE i=1。i++) { BYTE cbCardData=[2][i*3]。 } } else if( cbCardCount == 3 ) return CT_THREE。 if ([2]*4==cbCardCount) return CT_THREE_TAKE_ONE。amp。 return CT_ERROR。 BYTE cbFirstLogicValue=GetCardLogicValue(cbCardData)。 //連牌判斷 for (BYTE i=1。i++) { BYTE cbCardData=[1][i*2]。 } //二連判斷 if (([1]*2)==cbCardCount) return CT_DOUBLE_LINE。 } 齊齊哈爾大學(xué) 畢業(yè)設(shè)計(論文) 15 //單張判斷 if (([0]=5)amp。([0]==cbCardCount)) { //變量定義 BYTE cbCardData=[0][0]。 //錯誤過慮 if (cbFirstLogicValue=15) return CT_ERROR。i[0]。 if (cbFirstLogicValue!=(GetCardLogicValue(cbCardData)+i)) return CT_ERROR。 } return CT_ERROR。 //設(shè)置按鈕 HINSTANCE hInstance=AfxGetInstanceHandle()。DDevice,TEXT(BT_SORT_CARD_ORDER),TEXT(PNG),hInstance)。 } //設(shè)置變量 m_cbSortType=(m_cbSortType!=ST_ORDER)?ST_ORDER:ST_COUNT。 (m_cbHandCardData,m_cbHandCardCount[wMeChairID],m_cbSortType)。 BYTE cbShootCount=(BYTE)[MYSELF_VIEW_ID].GetShootCard(cbShootCard,CountArray(cbShootCard))。 //提起撲克 [MYSELF_VIEW_ID].SetShootCard(cbShootCard,cbShootCount)。 (amp。 //更新界面 CRect rcClient。rcClient)。 return 0。 if (GetGameStatus()!=GAME_SCENE_CALL) return 0L。 (!IsLookonMode())。 //設(shè)置撲克 [MYSELF_VIEW_ID].SetCardData(m_cbHandCardData,m_cbHandCardCount[GetMeChairID()])。amp。 (true)。 (true)。 (true)。 (true)。 } //更新按鈕 UpdateButtonControl()。 //清楚當(dāng)前操作 [SwitchViewChairID(m_wCurrentUser)].SetCardData(0)。 (SwitchViewChairID(m_wCurrentUser), 0)。 //激活框架 if ((IsLookonMode()==false)amp。(m_bTrustee==false)) ActiveGameFrame()。 } 數(shù)據(jù)庫的設(shè)計 圖 52 數(shù)據(jù)庫相關(guān)表 數(shù)據(jù)庫需要包括的字段 [8],輸贏,以及 寫分操作均記錄在此表中,也可以對此表進行修改達到對用戶的數(shù)據(jù)修改。 數(shù)據(jù)庫的字段 游戲采用 SQL SERVER 數(shù)據(jù)庫。 : QPTreasureDB,金幣數(shù)據(jù)庫:存放用戶金幣、游戲局?jǐn)?shù)的相關(guān)
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1