基于C的游戲設(shè)計_第1頁
基于C的游戲設(shè)計_第2頁
基于C的游戲設(shè)計_第3頁
基于C的游戲設(shè)計_第4頁
基于C的游戲設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

-.z.ThedocumentwaspreparedonJanuary2,2021ThedocumentwaspreparedonJanuary2,2021基于C的游戲設(shè)計-.z.****:實習(xí)論文〔本科〕學(xué)院數(shù)學(xué)與統(tǒng)計學(xué)院專業(yè)統(tǒng)計學(xué)年級2021級姓名論文題目基于C++的2048游戲設(shè)計指導(dǎo)教師職稱講師成績2021年10月16日-.z.目錄-.z.基于C++的2048游戲設(shè)計學(xué)生**:**:學(xué)院:數(shù)學(xué)與統(tǒng)計學(xué)院專業(yè):統(tǒng)計學(xué)指導(dǎo)教師:職稱:講師摘要:專業(yè)實習(xí),是教學(xué)方案中的一門重要的必修課和綜合實踐課程,是培養(yǎng)學(xué)生的專業(yè)素質(zhì)和實際能力的重要實踐環(huán)節(jié)。通過此次的C++實習(xí),掌握了程序設(shè)計的根本理論與方法,能夠運用根本代碼進展簡單的程序設(shè)計,運行根本的游戲程序。關(guān)鍵詞:C++;設(shè)計;程序TheGameDesignof2048BasedonC++Abstract:Theimportantrequiredcourseintheteachingplanandprehensivepracticecurriculum,professionalinternships,istocultivatethestudents'professionalqualityandpracticalabilityoftheimportantlinkofpractice.ThroughtheC++practice,wegraspthebasictheoryandmethodofprogramdesign,beabletousebasiccodetobuildsimpleprogramandrunit.Keywords:C++;Design;Program前言這次實習(xí)是我們畢業(yè)前的一次實踐性實習(xí)。為了拓展我們的知識面,增強我們對所學(xué)知識的應(yīng)用能力,增加我們在社會競爭中的經(jīng)歷,鍛煉和提高我們的綜合素質(zhì),以便在以后畢業(yè)后能真正走入社會,并且能夠在生活和工作中很好地處理各方面的問題,學(xué)校特地從達內(nèi)科技集團聘請了專業(yè)的C++工程師講師來對我們進展專業(yè)實訓(xùn),進一步運用所學(xué)知識分析和解決實際專業(yè)問題,從而為就業(yè)打下良好的根底。1實習(xí)前的準備學(xué)校對我們的實習(xí)非常重視,本著通過實習(xí)來檢驗本專業(yè)教學(xué)中存在的問題,改良教學(xué)工作的目的,提前就為我們聯(lián)系好了與專業(yè)相關(guān)的單位來做實習(xí)培訓(xùn)。在正式進入機房實訓(xùn)前,講師還專門做了一場關(guān)于實習(xí)內(nèi)容的分享會,介紹了實習(xí)的根本情況、根本要求、實習(xí)工程的根本情況,學(xué)習(xí)和了解實習(xí)工程的相關(guān)文件和資料,幫助我們更系統(tǒng)地了解和熟悉接下來的實習(xí)課程內(nèi)容。2實習(xí)目的1.培養(yǎng)理論聯(lián)系實際的思想作風和工作作風;2.培養(yǎng)作為計算機類工作人員的專業(yè)素質(zhì);3.培養(yǎng)獨立或與團隊一起開展信息處理工作的根本業(yè)務(wù)能力。3實習(xí)任務(wù)1.通過實際操作,了解并逐步熟悉掌握C++;2.掌握常用軟件的熟練操作,為今后所期望的專業(yè)方向做準備;3.在教師指導(dǎo)下,利用C++編程,完成獨立的游戲編程任務(wù);4.最后在實習(xí)指導(dǎo)教師的指導(dǎo)下,參與信息處理與計算工作,完成一篇相關(guān)的實習(xí)論文〔或?qū)嵙?xí)記錄〕。4實習(xí)內(nèi)容2048游戲簡介2048游戲是一款簡單而流行的數(shù)字游戲,屬于益智游戲。操作界面上有16個格子,初始時會有兩個格子上安放了兩個數(shù)字2,每次可以選擇上下左右其中一個方向去滑動。每滑動一次,所有的數(shù)字方塊都會往滑動的方向靠攏。兩個一樣數(shù)字方塊撞在一起之后合并成為他們的和。每次操作之后會在空白的方格處隨機生成一個2或者4〔其他模式會有所改變〕,最終得到一個"2048〞的方塊就是勝利了。由于規(guī)則簡單,各種版本和平臺上均有該款游戲。相信有不少人都玩過它,但是操作界面只有半個巴掌大的一個游戲,背后卻要用到類似隨機數(shù)的產(chǎn)生、大批量數(shù)據(jù)的處理、UI設(shè)計等任務(wù),真的不算是一個很簡單的工作。本次的游戲程序設(shè)計任務(wù)將運用C++來實現(xiàn)。2048模塊需求分析首先分析了這款游戲的功能需求。2048游戲一般由以下幾個模塊來構(gòu)成:1.矩陣方塊;2.控制模塊;3.計算模塊;4.輸出模塊。每個模塊來實現(xiàn)2048游戲的各項功能:方向移動、方塊合并、記錄當前數(shù)據(jù)和輸出計分結(jié)果、游戲勝利或失敗后執(zhí)行完畢游戲操作等。UI界面的規(guī)劃設(shè)計首先進展UI界面的規(guī)劃設(shè)計。創(chuàng)立一個800×600的背景模塊,在模塊左側(cè)這里我們需要16個方塊,按照4×4的規(guī)格排列整齊。模塊右側(cè)的空白區(qū)域需要添加功能鍵:上、下、左、右、重置、關(guān)閉。另外我們還需要再添加一個計分標簽,用來計算并輸出游戲得分。最后按照模塊功能與人的操作習(xí)慣,將標簽分別排列在適宜的位置。最終的UI界面如圖1所示:圖1UI界面〔矩陣方塊〕設(shè)計完成以后,接著來開場程序代碼的編寫。頭文件的需求分析首先分析需要用到的頭文件。第一步需要生成隨機數(shù),第二步要為16個矩形模塊填充隨機數(shù)所對應(yīng)的圖片,第三步為操作界面添加背景,第四步在游戲成功或失敗時即時輸出信息。分析完成以后將所有需要用到的頭文件都寫入文件里:#include""#include""#include<ctime>#include<cstdlib>#include<QPi*map>#include<QPalette>#include<QMessageBo*>QDialog(parent),ui(newUi::Show)隨機數(shù)的生成接下來我們開場寫入生成兩個隨機數(shù)和分數(shù)從零開場的代碼,同時參加圖片加載和聲明面板對象的代碼:{ui->setupUi(this);srand(time(NULL));for(inti=0;i<4;i++){for(intj=0;j<4;j++){map[i][j]=0;}}sui();sui();fen=0;QPi*mappi*(":/image/");ng");ui->show_1->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[0][1])+".png");ui->show_2->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[0][2])+".png");ui->show_3->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[0][3])+".png");ui->show_4->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[1][0])+".png");ui->show_5->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[1][1])+".png");ui->show_6->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[1][2])+".png");ui->show_7->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[1][3])+".png");ui->show_8->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[2][0])+".png");ui->show_9->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[2][1])+".png");ui->show_10->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[2][2])+".png");ui->show_11->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[2][3])+".png");ui->show_12->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[3][0])+".png");ui->show_13->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[3][1])+".png");ui->show_14->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[3][2])+".png");ui->show_15->setPi*map(QPi*map::fromImage(img));(":/image/"+QString::number(map[3][3])+".png");ui->show_16->setPi*map(QPi*map::fromImage(img));ui->fen->setTe*t(QString::number(fen));}主體算法的分析和實現(xiàn)接下來進入主要的算法設(shè)計步驟。在此根據(jù)2048游戲算法的功能需求和功能模塊,對主要算法進展分析并實現(xiàn)。對于控制模塊,一共有上、下、左、右、重置、關(guān)閉六個控制功能鍵。對于左移功能鍵的算法,每點擊一次,所有的數(shù)字方塊都會往滑動的方向靠攏。兩個一樣數(shù)字方塊撞在一起之后合并成為他們的和。每次操作之后會在空白的方格處隨機生成一個2或者4。此時分數(shù)也在累計增加。這一局部中重置和關(guān)閉這兩個功能鍵相對與其他功能鍵獨立,而上、下、左、右四個功能鍵的算法有一定的相似之處,所以以下僅詳細展示左移功能鍵的代碼。現(xiàn)在開場對這六個功能鍵進展代碼編寫:voidShow::on_pushButton_3_clicked(){程序設(shè)計教程[M].清

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論