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

正文內(nèi)容

基于qt的貪吃蛇游戲設(shè)計(jì)與實(shí)現(xiàn)本科設(shè)計(jì)與實(shí)現(xiàn)-閱讀頁(yè)

2024-12-26 06:13本頁(yè)面
  

【正文】 式的重要產(chǎn)業(yè)。而今天,以游戲?yàn)榇淼碾娮訆蕵氛诔蔀橹髁?娛樂方式。 貪吃蛇是家喻戶曉的益智類小游戲,選擇這個(gè)題目一是為了將自己的所學(xué)知識(shí)加以運(yùn)用,二是一直以來(lái)貪吃蛇這個(gè)游戲就深深地吸引著我,它的制作方法對(duì)于以前的我而言都是很神秘的。雖然我的編程能力不是很強(qiáng),但是我有信心,在這次學(xué)習(xí)中我將從實(shí)踐和實(shí)際的項(xiàng)目中提高自己的編程能力。 操作可行性 貪食蛇是一個(gè)簡(jiǎn)單、容易和休閑的小游戲 ,其操作簡(jiǎn)單 ,在很多的平臺(tái)都可以使用,例如: Win7, Window XP 等。 技術(shù)可行性 貪食蛇游戲是基于 QT 平臺(tái)的一款小游戲,透過(guò) QT 平臺(tái)編寫從而實(shí)現(xiàn),使用的語(yǔ)言主要以 C++為主,在技術(shù)方面沒問(wèn)題。可以說(shuō)在經(jīng)濟(jì)方面不需要投入很多,甚至可以說(shuō)是零投資,而隨著社會(huì)的進(jìn)步,這樣的小游戲?qū)?huì)普及,我們只需要投入較小的成本,就可以得到很多的回報(bào)。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級(jí)的圖形用戶界面所需的所有功能。 Qt Creator:一個(gè)用于 Qt 開發(fā)的輕量級(jí) 跨平臺(tái) 集成開發(fā)環(huán)境。即使不開發(fā) Qt 應(yīng)用程序, Qt Creator也是一個(gè)簡(jiǎn)單易用且功能強(qiáng)大的 IDE。 縮寫詞: GUI:圖形用戶界面 條件基礎(chǔ) 硬件條件: HP 6450b 運(yùn)行環(huán)境: 投入運(yùn)行時(shí)間:待定 實(shí)現(xiàn)目標(biāo) 軟件實(shí)現(xiàn)后可以讓廣大用戶在休息時(shí)享受輕松愉快的游戲時(shí)間,提高生活質(zhì)量,讓用戶勞逸結(jié)合,提升工作和學(xué) 習(xí)的效率,對(duì)生活報(bào)以積極地心態(tài)。 結(jié)論意見 由于投資效益比遠(yuǎn)大于 100%,技術(shù)、經(jīng)濟(jì)、操作都有可行性,可以進(jìn)行開發(fā)。作為該過(guò)程的結(jié)果,需求規(guī)格說(shuō)明書是對(duì)系統(tǒng)的功能和行為完整的描述。一旦構(gòu)建完成,該系統(tǒng)就會(huì)投入使用,同 時(shí)會(huì)不可避免地產(chǎn)生更多的新需求。 本貪吃蛇游戲軟件在可行性研究的基礎(chǔ)上,是為了進(jìn)一步明確貪吃蛇游戲的軟 件需求,以便安排項(xiàng)目規(guī)劃與進(jìn)度,組織軟件開發(fā)與測(cè)試,撰寫本文檔。 開發(fā)背景 隨著科技的發(fā)展,現(xiàn)在電腦功能已不僅僅是簡(jiǎn)單地工作、學(xué)習(xí)了,更多的電腦用戶希望在工作學(xué)習(xí)之余通過(guò)方便小型的游戲休閑娛樂。 雖然現(xiàn)在市面上存在著各種各樣的游戲版本,可是貪吃蛇其市場(chǎng)還是相當(dāng)大的。隨著游戲速度的不斷加快,其刺激性也更強(qiáng)。對(duì)于在外忙碌的 人,不可能花費(fèi)大量時(shí)間在娛樂上,而在工作閑暇之余隨手就能打開的貪吃蛇小游戲正好迎合了他們的需求。我希望通過(guò)自己的所學(xué)知識(shí)把它剖析開來(lái),真真正正的了解它的本質(zhì)和精髓。因此我選定了這個(gè)題目。這款小型的貪吃蛇游戲,可以讓我們隨時(shí)隨地的享受游戲給我們帶來(lái)的快樂與放松,讓我們從繁重的日常生活中解脫出來(lái)。游戲的控制應(yīng)該做到易懂、易操作,以給玩家一個(gè)很好的游戲環(huán)境。一般用戶經(jīng)過(guò)幾分鐘練習(xí)就可以熟練掌握本游戲的規(guī)則。 游戲主界面模塊: 主要包括游戲圖形區(qū)域界面、難度設(shè)置按鈕、游戲時(shí)間顯示、分?jǐn)?shù)顯示、難度提升、右鍵菜單 等功能。 對(duì)性能的規(guī)定 本游戲在設(shè)計(jì)方面本著方便、實(shí)用及娛樂性高的宗旨,在對(duì)界面進(jìn)行設(shè)計(jì)的過(guò)程中,始終堅(jiān)持清晰明了,在性能方面能夠?qū)崿F(xiàn)效率高,不易出錯(cuò)等優(yōu)點(diǎn)。游戲控制模塊應(yīng)做到易懂、易操作, 而且準(zhǔn)確率高,不易出錯(cuò) 。根據(jù)貪吃蛇的進(jìn)食數(shù)量調(diào)節(jié)蛇的運(yùn)動(dòng)速度,提升難度。當(dāng)按鍵的時(shí)候,蛇就開始移動(dòng),按照按鍵的方向運(yùn)動(dòng)。 提出的要求 ( 1)按鍵的時(shí)候可以控制蛇身按照設(shè)置的方向移動(dòng) ( 2)當(dāng)選擇游戲的等級(jí)程度提升時(shí),蛇的運(yùn)動(dòng)速度應(yīng)該也是加快的 ( 3)當(dāng)游戲開始時(shí)候,應(yīng)該有一個(gè)初始化,設(shè)置蛇身,食物等 ( 4)當(dāng)游戲結(jié)束時(shí),會(huì)有相應(yīng)的處理,比如提示 可以實(shí)現(xiàn)的要求 ( 1)簡(jiǎn)單友好的界面:基本界面,蛇,食物 ( 2)蛇的移動(dòng)和控制:通過(guò)上下左右控制蛇的行進(jìn)方向 ( 3)對(duì)蛇的狀態(tài)的監(jiān)聽,及顯示吃到 食物蛇的長(zhǎng)度會(huì)增加 ( 4)蛇的狀態(tài)的變化 關(guān)鍵點(diǎn) ( 1)蛇的運(yùn)動(dòng)算法實(shí)現(xiàn)過(guò)程 ( 2)在監(jiān)聽蛇的狀態(tài)的方法實(shí)現(xiàn)并處理 嵌入式特性 為了實(shí)現(xiàn)此軟件的廣泛使用,設(shè)計(jì)貪吃蛇游戲軟件可以嵌入在硬件中使用, 既可以嵌入在電腦中,也可以 嵌入在移動(dòng)設(shè)備中,讓用戶不論處于何地都可以方便的使用。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 15 5 貪吃蛇分析 貪吃蛇要求 貪食蛇游戲軟件在 window XP 和 win7 系統(tǒng)上為玩家提供貪吃蛇游戲的基本功能。 貪食蛇設(shè)計(jì)思想 紅色背景區(qū)域?yàn)樯叩倪\(yùn)動(dòng)區(qū)域,邊框表示圍墻,藍(lán)色矩形代表蛇, 變色 小方塊代表食物 , 程序關(guān)鍵在于表示蛇的圖形及蛇的移動(dòng)。移動(dòng)時(shí)必須從蛇頭開始,所以蛇不能向相反的方向移動(dòng),如果不按任意鍵,蛇自行在當(dāng)前方向上前移,但按下有效方向鍵后,蛇頭朝著該方向移動(dòng),一步移動(dòng)一節(jié)身體,所以按下有效方向鍵后,先確定蛇頭的位 置,而后蛇的身體隨蛇頭移動(dòng),圖形的實(shí)現(xiàn)是從蛇 尾 新位置開始畫出蛇, 長(zhǎng)度為保存蛇每個(gè)節(jié)點(diǎn)信息的數(shù)組的長(zhǎng)度 。 當(dāng)設(shè)置游戲難度為不可穿墻時(shí),蛇頭的位置坐標(biāo)和墻的坐標(biāo)或者自己身體的某個(gè)節(jié)點(diǎn)的坐標(biāo)相同時(shí),蛇就死掉了,游戲結(jié)束。 貪吃蛇游戲功能 游戲是運(yùn)行在圖形模式下的,所以第 一步一定是初始化圖形模式,接著要有開始的界面,就像書有封面一樣,我設(shè)置了一個(gè)游戲的標(biāo)題畫面。貪吃蛇的要求為:一條蛇在封密的圍墻內(nèi) ,在圍墻內(nèi)隨機(jī)出現(xiàn)一個(gè)食物。如果蛇在移動(dòng)過(guò)程中 ,撞到墻壁或蛇頭撞到自己身體游戲結(jié)束??梢?用一個(gè)小矩形表示蛇的一節(jié)身體 ,身體每長(zhǎng)一節(jié) ,增加一個(gè)矩形塊 ,蛇頭用一節(jié)表示。如果不按任何鍵 ,蛇自行在當(dāng)前方向上前移 ,當(dāng)游戲者按了有效的方向鍵后 ,蛇頭朝指定的方向移動(dòng) ,一步移動(dòng)一節(jié)身體 ,所以當(dāng)按了有效的方向鍵后 ,先確定蛇頭的位置 ,然后蛇身體隨著蛇頭移動(dòng) ,圖形的實(shí)現(xiàn)是從蛇頭的新位置開始畫出蛇。食物的出現(xiàn)和消失也可以用畫矩形塊和覆蓋 矩形塊方法實(shí)現(xiàn)。 輸出 在該程序中,輸出的數(shù)據(jù)有玩家單局游戲的總時(shí)間,升到的等級(jí),蛇吃到食物的個(gè)數(shù),以及目前的得分,玩家可以通過(guò)點(diǎn)擊右鍵打開菜單,了解一些相關(guān)信息,當(dāng)玩家控制的蛇死亡后要輸出一個(gè)消息 GAME OVER 表示蛇的死亡。接下來(lái)是蛇頭的移動(dòng),蛇頭的移動(dòng)要根據(jù)蛇的運(yùn)動(dòng)方向來(lái)做出相應(yīng)的移動(dòng)。以下進(jìn)行簡(jiǎn)述 ( 1)節(jié) 一條蛇可以看成由許多正方形的“小格子”拼湊成,稱作節(jié)。 ( 2)數(shù)組 用來(lái)保存每一段 的狀態(tài),數(shù)組的元素單位是節(jié)。 ( 3)坐標(biāo)系 以左上角那點(diǎn)為( 0,0),向右則 x遞增,向下則 y遞增。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 17 表 61 數(shù)據(jù)的類型及含義 名稱 類型 含義 SnakeBody[Max][2] int 蛇頭在數(shù)組中的位置 header_Index char 蛇的身體坐標(biāo)信息 tail_Index int 蛇尾在數(shù)組中的位置 eat_X int 出現(xiàn)食物的位置的橫坐標(biāo) eat_Y int 出現(xiàn)食物的位置 的縱坐標(biāo) level int 游戲的等級(jí) speed int 蛇的運(yùn)行速度 score int 出現(xiàn)食物的位置的橫坐標(biāo) eatNum int 貪吃蛇吃到食物的數(shù)量 map_row int 貪吃蛇運(yùn)動(dòng)范圍的長(zhǎng)度 map_col int 貪吃蛇運(yùn)動(dòng)范圍的寬度 Dir int 當(dāng)前貪吃蛇移動(dòng)的方向 step int 貪吃蛇移動(dòng)的步長(zhǎng) tempx int 蛇頭下一個(gè)臨時(shí)存放位置的橫坐標(biāo) tempy int 蛇頭下一個(gè)臨時(shí)存放位置的縱坐標(biāo) CanGoThroughWall bool 判斷貪吃蛇是 否能夠穿墻 hasMoved bool 用于避免兩次方向鍵之間間隔太小造成的錯(cuò)誤 處理流程 開 始顯 示 游 戲 主 界 面和 操 作 控 制 界 面用 戶 的 各 種操 作 指 令執(zhí) 行 相 應(yīng) 的 判 斷 處理執(zhí) 行 相 應(yīng) 的 操 作是否 判 斷 蛇 的 狀 態(tài)L i f e = t r u e結(jié) 束L i f e = f a l s e 圖 61 處理流程圖 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 18 根據(jù)要求的貪吃蛇結(jié)構(gòu)設(shè)計(jì)出相應(yīng)的貪吃蛇 處理 流程 圖(如圖 61 所示) 。在主界面上有設(shè)置游戲難度按鈕,可以更改游戲難度,游戲開始后,可以通過(guò)方向鍵控制貪吃蛇的運(yùn)動(dòng)方向 ,也可以選擇 P 鍵使游戲暫停。 流程圖的主要作用是可以很直觀的了解到游戲的功能,同時(shí),在繪制好流程圖后,在后面的編寫代碼時(shí)也比較明確。 1)貪吃蛇運(yùn)動(dòng)界面主要包括:食物的隨機(jī)出現(xiàn)位置 ,蛇的移動(dòng) 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 19 2)信息顯示界面包括:得分顯示,等級(jí)顯示,難度顯示,游戲難度設(shè)置,游戲說(shuō)明,退出 2. 與程序 的關(guān)系 貪吃蛇運(yùn)動(dòng)界面貪吃蛇的移動(dòng)及吃到食物的發(fā)生,向信息顯示界面發(fā)出信號(hào),刷新得分,并在達(dá)到一定限額提升等級(jí)。 運(yùn)行設(shè)計(jì) 運(yùn)行控制 由用戶選擇游戲控制類別:開始、暫停、繼續(xù)、游戲設(shè)置、退出,不可以手動(dòng)控制游戲級(jí)別,只能在達(dá)到一定界限,自動(dòng)增加難度,這樣有助于循序漸進(jìn)。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 20 7 貪吃蛇實(shí)現(xiàn) 程序系統(tǒng)的組織結(jié)構(gòu) 每個(gè)模塊 的名稱、標(biāo)識(shí)符 explicit Snake(QWidget *parent = 0)。 ~Snake()。 void iniWidget()。 void iniConnect()。 bool isEating()。 bool isGameOver()。 void iniGame()。 void changeScore()。 void changeLevel()。 QColor getColor()。 void paintEvent(QPaintEvent *)。 void keyPressEvent(QKeyEvent *event)。 void doMoveSnake()。 void setEnableGoThroughWall()。 void timerEvent(QTimerEvent *)。 void InfoChange()。 void AboutChange()。 模塊之間的關(guān)系 此程序中各個(gè)模塊之間的關(guān)系如圖 71 所示 圖 71 模塊關(guān)系圖 程序描述 目的和意義 該部分以窗體上的按鈕或鍵盤上的快捷鍵為用戶提供友好的控制手段。 特點(diǎn)說(shuō)明 程序交互性好,操作性強(qiáng)。簡(jiǎn)單而有趣。 程序 詳解 構(gòu)造函數(shù) Snake(QWidget *parent) Snake::Snake(QWidget *parent) : QWidget(parent), ui(new Ui::Snake),step(15) { uisetupUi(this)。 //如何讓 QWidgt 接收鍵盤事件和點(diǎn)擊事件 setFixedSize(630,340)。 //取時(shí)間作為產(chǎn)生隨機(jī)數(shù)的種子 map_row=Height/step。 CanGoThroughWall=false。min=0。 iniWidget()。 iniGame()。取用時(shí)間作為產(chǎn)生隨機(jī)數(shù)的種子,用于之后貪吃蛇的蛇身初始化,食物的初始化。 通過(guò)調(diào)用 iniWidget()函數(shù)初始化了 Widget 中的 控件 信息等,通過(guò)調(diào)用 iniConnect()函數(shù)初始化了連接信號(hào),通過(guò)調(diào)用 iniGame()函數(shù)初始化了游戲的基本信息。 timeNumbersetFont(QFont(Times,15))。 timeLabelsetFont(QFont(Times,15))。 scoreNumber = new QLCDNumber(5)。 //設(shè)置顯示方式 scoreNumbersetParent(this)。 scoreLabel = new QLabel(this)。 //設(shè)置字體 scoreLabelsetText(Score:)。 //設(shè)置大小 levelNumber = new QLCDNumber(5)。 levelNumbersetParent(this)。 levelLabel = new QLabel(this)。 levelLabelsetText(Level:)。 setlabel = new QLabel(this)。 // setlabelsetGeometry(325,150,115,90)。 //setlabelsetFont(QFont(Times,18,QFont::Black))。 setlabelsetText(tr(游戲難度:禁止穿墻 ))。 //顯示 setlabel 字體顏色為綠色 (QPalette::WindowText,Qt::b
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1