基于Linux系統的嵌入式拼圖游戲的設計與實現2296_第1頁
基于Linux系統的嵌入式拼圖游戲的設計與實現2296_第2頁
基于Linux系統的嵌入式拼圖游戲的設計與實現2296_第3頁
基于Linux系統的嵌入式拼圖游戲的設計與實現2296_第4頁
基于Linux系統的嵌入式拼圖游戲的設計與實現2296_第5頁
已閱讀5頁,還剩98頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

i嵌入式拼圖游戲的設計與實現嵌入式拼圖游戲的設計與實現要拼圖游戲是一種可變性很高且耐玩的游戲,在平時空閑的時候可以自己制定圖片種大人與小孩都能玩的游戲,它可以開發智力且幫助大家提高動腦解決問題的能力。玩拼圖還有助于手眼協調,玩家能訓練和了解“部分”與“全部”的關系,可以知道許多的“部分”能拼湊出一個本游戲中通過分析C游戲的開發流程,對功能進行設計。該游戲主要實現了開始游戲,更改圖片,游戲難度選擇(9宮初級,16宮中級和25宮高級),戰況成績統計,成績排名,背景音樂等功能。游戲界面美觀,操作簡單,功能齊全,是廣大游戲愛好者都喜歡的一款游戲,具有一定的復雜性和可玩性。Tii嵌入式拼圖游戲的設計與實現"parts"canpiecetogetheran"All",aswellasan"All"iscomposedofmany"partial"ii嵌入式拼圖游戲的設計與實現 iii嵌入式拼圖游戲的設計與實現 1嵌入式拼圖游戲的設計與實現1前言,加深對結構化設計C這款游戲的新的難度要求。另外要求軟件設計精致,畫面親和,人機交互高效快捷,使我們能夠更加全面地掌握游戲設計的整體策劃以及系統地掌握游戲設計的體系結計算機技術的T2嵌入式拼圖游戲的設計與實現開發需求較明確固定的信息系統。D出一組幫助系統分析人員產生功能規約的原理與技術。它一般利用圖形表達用戶需求,使用的手段主要有數據流圖、數據字典、結構化語言、判定發者在初步了解用戶需求的基礎上,開發出能實現系統最基本個原型,再根據用戶對原型使用與評價的意見,提出修改方案,修改完善原終系統為止。開發過程以用戶為中心,開面向對象方法(Object-OrientedMethod)是一種把面向對象的思想應用于軟件開ed作進行共享的一種方式。所謂面向對象就是基于對象概念,以對:分析當前的情況,做出反映當前物理模型的DFD;;設計每個類的內部實現(數據結構和方法);3嵌入式拼圖游戲的設計與實現本文第一部分主要以前言為主,說明了文章的研究背景、主要工作,概要說明了括了功能需求,總體設計方案,系統流程設計,功能模塊的設計。第五部分為詳細設當中涉及到的相關算法,模塊命名,系統快照。第六部分為測試部分,4嵌入式拼圖游戲的設計與實現2項目開發語言及開發環境C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言設計語言,編寫系統件的應用程序。它的上,而且各類科研都CC制特C最大的速度或最大的內存使用率。共用體類型等。這些數據類型能用來實現各種復雜的數據結構(如鏈表、樹、棧等)的5嵌入式拼圖游戲的設計與實現C使其6嵌入式拼圖游戲的設計與實現新的輕量級集成開發環境(IDE)。此IDE能夠跨平臺運行,支持的系統包括Linux 標是使開發人員能夠利用Qt這個應用程序框架更加快速及輕易的完成開發任務。關的幫助代碼折疊括號匹配和括號選擇模式高級編輯功能。集成了領先Qt類結構可一目了然集成了QtDesigner可視化布局和格式構建器只需單擊一下就可生成和運行Qt項目。2.4嵌入式開發一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,7嵌入式拼圖游戲的設計與實現體應用有機地結合在一起,它的升級換代也是和具體產品同步進8嵌入式拼圖游戲的設計與實現3可行性分析與用企業理財的理論和方法進行資本預算管理,對投資項目進行投資決策和融資決策的通行做法存在重大差異,并且在經濟評價方面不恰當地使用了"國民經濟評價"通過研究分析拼圖游戲所具備的能力及實現的方法來確定主體結構。利用現階段C9嵌入式拼圖游戲的設計與實現現在做出來的只是一個拼圖游戲的核心部分,這些代碼經過許多測試和修改穩定開始時鼠標單擊會選中拼圖區之外的圖塊,經過修改后鼠標不會選中拼圖區之外擊圖塊邊緣時明明是單擊的這個圖塊,卻由于計算偏差選中了另一個圖塊。這些精確的計算也嵌入式拼圖游戲的設計與實現4總體設計全局問題的設計,也就是設計系統總的處理方案,又稱系統概要設計。它包括:計算機配置設計、系統模塊結構設計、數據庫和文件設計、代碼設計以及系統可靠性與內部控制設計等內容。軟件功能分解屬于下列軟件開發中的總體設計它包括:計算機配置設計、系統模塊結構設計、數據庫和文件設計、代碼設計以及系統可靠性與內部控制設計等內容。軟件功能分解屬于下列軟件開發中的總體設計e。也就嵌入式拼圖游戲的設計與實現。邏輯過程。嵌入式拼圖游戲的設計與實現進行拼圖的過程,然后可對于拼圖成功進,嵌入式拼圖游戲的設計與實現圖游戲隨機打散圖片流程嵌入式拼圖游戲的設計與實現具體模塊所涉及到的主要算法、數據結構、類的層次結構及調用關系,需要說明軟件應當保證軟件的需求完全分配給整個軟件。詳細設計應當足夠詳細,能夠根據詳細設在軟件編碼階段,根據概要設計中對數據結構、算法分析和模塊實現等方面的設計要求,開始具體的編寫程序工作,分別實現各模塊的功能,從而實現對目標系統的功能、性能、接口、界面等方面的要求。在規范化的研發流程中,編碼工作在整個項嵌入式拼圖游戲的設計與實現5詳細設計圖5-1拼圖區窗口關于八數碼問題,是該程序設計的一個難點,也是首要突破的一的難點,搞清楚八數碼函數的運算邏輯是該程序設計的關鍵。八數碼問題(九宮問題)在一個3*3的九宮中有1-8這8個數及一個空格隨機的吻合的形式。調整的規則是:每次只能將與空格(上、下、或左、右)相鄰的一個數字平移們可以把一個隨機排列的數組F(7)=0;F(1)=0;F(2)=1;F(6)=3;嵌入式拼圖游戲的設計與實現F(3)=2;F(4)=3;圖5-2圖像分割嵌入式拼圖游戲的設計與實現1voidPintuWindow::random(){srand(time(NULL));for(inti=0;i<9;++i){tarandtarandtemp=map[randData1/3][randData1%3];map[randData1/3][randData1%3]=map[randData2/3][randData2%3];map[randData2/3][randData2%3]=temp;}}voidPintuWindow::random(){pfor(inti=0;i<3;++i)for(intj=0;j<3;++j){andDatarandtemp=map[i][j];map[i][j]=map[randData/3][randData%3];map[randData/3][randData%3]=temp;}}voidPintuWindow::random(){pfor(inti=0;i<3;++i)嵌入式拼圖游戲的設計與實現for(intj=0;j<3;++j){andDatarandtemp=map[i][j];map[i][j]=map[randData/3][randData%3];map[randData/3][randData%3]=temp;}}voidPintuWindow2::random(){pfor(inti=0;i<5;++i)for(intj=0;j<5;++j){arandtemp=map[i][j];map[i][j]=map[randData/5][randData%5];map[randData/5][randData%5]=temp;}}繪圖區代碼:voidPintuWindow::paintEvent(QPaintEvent*event){QPainterpainter(this);tersetPenQPenQtyellowpainter.drawPixmap(this->rect(),QPixmap(":/images/gamebackground.jpg"));//整體框架painter.drawLine(498,15,498,485);painter.drawLine(502,15,502,485);//繪圖區和原圖區的繪制twhite//窗口間距嵌入式拼圖游戲的設計與實現intspaceX=157;intspaceY153;//加載圖像/*QStringstr=":/images/myImage";intnum=qrand()%3+1;str+=QString::number(num);str+=".jpg";*/QImageimagestrImg);//高、寬intimageW=image.width();height//窗口間距intspaceW=imageW/3;intspaceH=imageH/3;//原圖視窗體painter.setViewport(507,20,473,460);imageH//對比圖描繪//拼圖區圖像for(inti=0;i<3;++i)for(intj=0;j<3;++j){painter.setViewport(20+i*spaceX+1,20+j*spaceY+1,painter.drawImage(0,0,image,(map[i][j]/3)*spaceW,(map[i][j]%3)*spaceH,spaceW,spaceH);}//描繪網格線painter.setViewport(20,20,473,460);paintersetWindow,460);twhitepainter.drawLine(2*spaceX,0,2*spaceX,460);painter.drawLine(0,2*spaceY,473,2*spaceY);//選中的圖像y{嵌入式拼圖游戲的設計與實現paintersetViewportselectedxspaceX+selected.y*//凸顯選中圖像Qtyellow}}對于拼圖區中坐標的計算代碼://157*3+20=491153*3+20=479for(inti=0;i<3;++i)for(intj=0;j<3;++j){painter.setViewport(20+i*spaceX+1,20+j*spaceY+1,painter.drawImage(0,0,image,(map[i][j]/3)*spaceW,(map[i][j]%3)*spaceH,}//117*4+20=491114*4+20=479for(inti=0;i<4;++i)for(intj=0;j<4;++j){painter.setViewport(20+i*spaceX+1,20+j*spaceY+1,painter.drawImage(0,0,image,(map[i][j]/4)*spaceW,(map[i][j]%4)*spaceH,}//94*5+20=49191*5+20=479for(inti=0;i<5;++i)for(intj=0;j<5;++j){painter.setViewport(20+i*spaceX+1,20+j*spaceY+1,painter.drawImage(0,0,image,(map[i][j]/5)*spaceW,(map[i][j]%5)*spaceH,}嵌入式拼圖游戲的設計與實現首先獲得鼠標點擊的位置,判斷鼠標點擊的位置是否在拼圖區,如果不在,PressEventQMouseEventevent{intx=event->pos().x();inty=event->pos().y();//進行坐標范圍的判定if(20<x&&x<491&&20<y&&y<479)//157*3+20=491{intindX=(x-20)/157;intindY=(y-20)/153;<3){if((indX==selected.x&&-2<indY-selected.y&&indY-selected.y<2)||(-2<indX-selected.x&&indX-selected.x<2&&indY==selected.y)){//可以交換就交換inttemp=map[indX][indY];map[indX][indY]=map[selected.x][selected.y];}else{indY嵌入式拼圖游戲的設計與實現}}else{indY}}else{}//判斷是否成功,成功的話就彈出提示成功了inti=0;for(;i<9;++i)if(map[i/3][i%3]==i);if(i==9){}}這是單獨的voidPintuWindow2::changeimage(){//cout<<"123"<<endl;//使用字符串的連接strImg2=":/images/myImage";//產生隨機數intnum=qrand()%4+1;strImg2+=QString::number(num);嵌入式拼圖游戲的設計與實現strImg2+=".jpg";//QImageimage(str);repaint();}d{};{//定義槽函數嵌入式拼圖游戲的設計與實現//定義繪圖事件,鼠標事件//定義按鈕};on{嵌入式拼圖游戲的設計與實現//定義成功窗口//定義重玩和退出信號//定義私有成員//繪圖事件,按鈕};{//成功窗口的繪制//槽函數添加嵌入式拼圖游戲的設計與實現}//繪圖事件{}}}}5.4用戶界面快照設計概述嵌入式拼圖游戲的設計與實現進入到正式游戲界面中,開始進行拼圖。選擇其中的不再適當位置的圖片與其橫完成拼圖,彈出成功對話框,之后玩家可以進行重玩,重選圖片,其他難度或直接退嵌入式拼圖游戲的設計與實現嵌入式拼圖游戲的設計與實現6軟件測試因為在系統開發以及修改的過程中,在各個階段都有可能存在錯誤和缺陷。通過測試可以發現系統設計中存在的種種問題,并可以及時改正,避免在系統投入使用時才發現不必要的錯誤,從而導致不必要的損失,尤其對于大多數將要投入市場的軟件產品;嵌入式拼圖游戲的設計與實現測試,通常有兩種方式:單元測試和組裝測試。對本系統而言,選擇單元測試的測試方法。單元測試中設計白盒測試以及黑盒測試。黑盒測試即針對程序所有功能設計的測試方法,而白盒測試針對程序的邏輯結構設計測試用例,用邏輯覆蓋率來衡量測試的完整性。黑盒測試的缺點在于其難于衡量測試的完整性,而白盒測試恰恰具有易于衡量測試完整性的優點,兩者之間具有極好的互補性。所以在對一個軟件產品進行測試時,為了謹慎全面的測試出軟件的質量,通常使用白盒測試法,也就是根據程(1)語句覆蓋。(2)判定覆蓋。得一次“真”值和“假”值,從而使程序的每一個分支至少都通過一次,因此判定覆蓋也稱分支覆蓋。(3)條件覆蓋。條件覆蓋是指設計足夠的測試用例,使得判定表達式中每個條件的各種可能的值。(4)判定條件覆蓋。該覆蓋標準指設計足夠的測試用例,使得判定表達式的每個條件的所有可能取值至少出現一次,并使每個判定表達式所有可能的結果也至少出現一次。(5)條件組合覆蓋。條件組合覆蓋是比較強的覆蓋標準,它是指設計足夠的測試用例,使得每個判定表達式中條件的各種可能的值的組合都至少出現一次。(6)路徑覆蓋。路徑覆蓋是指設計足夠的測試用例,覆蓋被測程序中所有可能的路徑。部分用例,以達到路徑覆蓋測試標準。嵌入式拼圖游戲的設計與實現(1)劃分等價類。在輸入條件規定了輸入值的集合或者規定了“必須如何”的條件的情況下,可確立個有效等價類和一個無效等價類。和若干個無效等價類(從不同角度違反規則)。在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該(2)確定測試用例。使用邊界值分析方法設計測試用例時一般與等價類劃分結合起來。但它不是從一個等價類中任選一個例子作為代表,而是將測試邊界情況作為重點目標,選取正好等。如果輸入條件規定了值的范圍,可以選擇正好等于邊界值的數據作為合理的測試用例,同時還要選擇剛好越過邊界值的數據作為不合理的測試用例。如輸入值的范圍如果輸入條件指出了輸入數據的個數,則按最大個數、最小個數、比最小個數少記件分別按照以上原則⑴或⑵確定輸出值的邊界情況。如,一個學生測試用例(不合理輸出等價類)。由于輸出值的邊界不與輸入值的邊界相對應,所以要檢查輸出值的邊界不一定可如果程序的規格說明給出的輸入或輸出域是個有序集合(如順序文件、線形表、鏈表等),則應選取集合的第一個元素和最后一個元素作為測試用例。有針對性地編寫檢查這些錯誤的測試用例,這就是錯誤推測法。等價類劃分和邊界值方法分析方法都只是孤立地考慮各個輸入數據的測試功能,而沒有考慮多個輸入數據的組合引起的錯誤。嵌入式拼圖游戲的設計與實現,但可綜合表6-1拼圖測試測測試用例1描述測試游戲是否能拼圖,能否拼圖成功測試方法點擊鼠標左右鍵進行游戲,直至拼圖成功期望結果成功產生相應的拼圖成功效果測試結果(正確或錯誤)正確拼圖測試的測試用例表如表6-1所示,表中體現出該用例是針對拼圖游戲是否能測試用例描述測試方法期望結果表6-2游戲難度測試2測試游戲難度情況點擊游戲難度選擇相應的難度,每種都能拼圖成功初級,中級,高級均可拼圖成功嵌入式拼圖游戲的設計與實現測測試結果(正確或錯誤)正確運行程序度選擇相完成了預游戲外觀測試3測試拼圖游戲窗體外觀點擊系統提供的相應外觀選項3測試拼圖游戲窗體外觀點擊系統提供的相應外觀選項出來的效果均是選擇的相應選項相符正確描述測試方法期望結果測試結果(正確或錯誤)游戲窗體外觀測試的測試用例表如-3所示,表中體現出該用例是針對拼圖游行程序即可,從難度選擇按鈕到達不可以正常顯示外觀,即點擊系統提供明軟時間設很容易等核心個嵌入式拼圖游戲的設計與實現嵌入式拼圖游戲的設計與實現結論那么這,再進行逐步的工作崗位具有重要意義,相信這也,手開發之前不要急于編程,先應有一步代碼心底有數有條不絮。嵌入式拼圖游戲的設計與實現觸得說,我認發程序設嵌入式拼圖游戲的設計與實現參考文獻杜晨互聯網上的拼圖游戲經理世界,,()譚浩強程序設計(第版)清華大學出版社,劉海燕,荊濤系統應用與開發教程機械工業出版社,嚴蔚敏,吳偉民數據結構(語言版)清華大學出版社,章英,葉穎澤在“拼圖”游戲中學習語言湖北教育學院院報,杜晨互聯網上的拼圖游戲經理世界,,()龔立威一種嵌入式游戲系統的研究與實現華南理工大學,嵌入式拼圖游戲的設計與實現致謝、敏成過程等方面嵌入式拼圖游戲的設計與實現Cexplicitlyconvertavaluefromonetypetoanother,orbyusingpointersorunionstoion嵌入式拼圖游戲的設計與實現ht嵌入式拼圖游戲的設計與實現m嵌入式拼圖游戲的設計與實現snydereferencedelementofx,asinn=sizeof*xorn=sizeofx[0],andthenumberofy嵌入式拼圖游戲的設計與實現likealltherestoftheinterlockingpieces,withnosmoothedge,tomakethemmoreeynh嵌入式拼圖游戲的設計與實現rroposedsoftwarefd嵌入式拼圖游戲的設計與實現ss嵌入式拼圖游戲的設計與實現嵌入式拼圖游戲的設計與實現ny嵌入式拼圖游戲的設計與實現te嵌入式拼圖游戲的設計與實現CC有一個靜態,弱類型,類型系統,這與其他有共同之處。有內置類型對不同大多數類型的表達式的正確性,但程序員可以用不同的方法覆蓋檢查,要么通過使用類型轉換顯式地將一個值從一種類型轉換為另一個,或者通過使用指針或工會重新詮釋底嵌入式拼圖游戲的設計與實現C但有時會產生意想不到的結果。例如,簽縱指針的算術的運行時表示指針值通常是一個原始內存地址(也許加上一個使聯數高階函數(如qsort或BSEARCH)一個空指針價值明確指出,沒有有效的位置。非關聯化一個空指針值是未定義的,常常導致段錯誤。空指針的值是有用的指示等特殊情況下沒有“下一個”最后一個節點的指針鏈表或者從函數返回指針指示錯誤。在適當的情況下在源代碼,如分配一個大小和類型的使用對象是未知的,無效指針不能反向引用,也不是指針算術上允許的,雖使用指針是潛在的危險。因為他們通常不加以控制,一個指針變量可以指向存(任意大小的)在運行時,使用標準庫的malloc功能,把它當作一個數組。C數組和指針的統一意味著宣布這些動態分大小,雖然有邊界檢查作為一個選項。數組邊界違規可能因此而在漫不經心地C沒有特別規定宣布多維數組,而是依賴于遞歸在聲明數組的數組的類型系統,有效地完成同樣的事情。產生的“多維數組的索引值可以被認為是在增加row-major嵌入式拼圖游戲的設計與實現C針數組的列)。此外,在大多數表達式上下文(一個例外是操作數運算符),一個數組的名稱自動轉換為一個指針數組的第一個元素。這意味著永遠不會復制數組作為一個整體命名為一一個元素的大小可以確定通過應用操作符運算符任何的引用的元素X,如n=運算符*x或n=運算符x[0]和聲明的數組中元素的數目一個可以確定為sizeof/義,它是不可能確定整個數組的大小通過指針數組或那些由動態分配(malloc),代碼等sizeofarr/sizeofarr[0](arr=一個指定一個指針)將不工作因為編譯器假定指針本身組的名稱,在大多數表達式上下文,轉換成一個指針(第一個元素),本身這個指針不占據連接接拿著一塊解決了部分。一些完全聯鎖拼圖塊相似的形狀,圓形標簽在兩端,切成相應的空格干預國接收相,其狀,如一個動物。邊緣部分更多的在這些情況下可能有不同的名稱。需求階段,產品在時間和預算范圍內正在開發的機會有點渺茫,除非軟件開發團嵌入式拼圖游戲的設計與實現一種很普遍的誤解是,在需求階段,開發人員必須確定客戶想要的軟件。相反,為了激發客戶的需求,要求團隊成員必須熟悉應用程序域,也就是說,一般面積在其中提出的軟件產品是被使用。例如,它不

溫馨提示

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

評論

0/150

提交評論