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

正文內(nèi)容

貪吃蛇小游戲的vc設計與實現(xiàn)-閱讀頁

2024-12-23 19:47本頁面
  

【正文】 的坐標是( 2, 2)。初始化游戲分數(shù),并顯示游戲的一些幫助,如按鍵設置等。 void loadgame(){ int row,col。//蛇的 初始長度 direction = right_key。rowmaxrow。colmaxcol。 39。isnake_length。 snake[i].col=snake_start_col+i。 for(row=0。row++) { gotoxy(1,row+2)。 for(col=0。col++) coutscreengrid[row][col]。 } 貪吃蛇小游戲的 VC++設計與實現(xiàn) 16 drawline(1,maxrow+2)。//顯示分數(shù) gotoxy(2,maxrow+5)。//顯示游戲的幫助信息:按鍵設置 } 游戲加載完成后,效果如圖 45 所示。用 rand()函數(shù)生成 2 個隨機生成的整數(shù)作為食物的橫坐標和縱坐標, 并判斷食物是否出去圍墻,如果在游戲區(qū)域外面,則對隨機生成的橫縱坐標進行修改。(用 “*”代表食物)這里的 c 和 r 會在判斷蛇頭是否碰到食物用到。 void creatfood() { int col,row。//生成隨機的橫坐標 col= rand()%maxcol。 if(col3)//判讀縱坐標出界 col+=3。 r=row。*39。 coutscreengrid[row][col]。 圖 46 食物的隨機產(chǎn)生 蛇身的增長設計實現(xiàn) 對于蛇身增長的設計要考慮到蛇頭的運行方向。 貪吃蛇小游戲的 VC++設計與實現(xiàn) 18 void addsegment() { switch(direction)//判斷蛇身的運行方向 { case(right_key): ///蛇身向右方向行進 snake[snake_length].row=snake[snake_length1].row。 break。 snake[snake_length].col=snake[snake_length1].col1。 case(up_key) : //蛇身向上方向行進 snake[snake_length].row=snake[snake_length1].row1。 break。 snake[snake_length].col=snake[snake_length1].col。 break。就像一個動畫過程,需要每隔一個固定的時間,對蛇進行顯示一次,并將蛇尾部的一節(jié)消掉,使蛇頭向前增進一節(jié)。其中 addsegment()這個函數(shù)是用來為蛇頭的前移賦值的。//為蛇頭前進賦值 gotoxy(snake[0].col,snake[0].row)。//暫時消除蛇尾 for (int i=1。i++)//在數(shù)組 snake[i]中刪除 snake[0]的值,重新賦值 snake[i1]=snake[i]。isnake_length。 couto。i (speed * pause_length)。 。這個是通過判斷蛇的頭部的橫、縱坐標是否超過設定的最大的界限或是低于最小的下限來判斷的。x39。 圖 47 蛇的碰壁情況 ,考慮蛇的頭部是否與自己身體的某個部位產(chǎn)生的碰撞檢測。這個是通過一個循環(huán)將蛇的頭部的橫、縱坐標值與每節(jié)蛇身(除了蛇頭外)直到蛇的尾部的橫、縱坐標值 進行比對,一旦發(fā)現(xiàn)蛇身某部位的橫、縱坐標值與蛇的頭部的橫、縱坐標值一致,則游戲結束;否則游戲正常進行。isnake_length1。amp。x39。 //無需再進行比較 }} 如圖 48 所示為蛇碰到自身的情況 ,蛇頭與距蛇尾長度一的蛇身處相撞。如果檢測到?jīng)]有碰撞,則游戲正常進行;否則首先將 2 維數(shù)組 screengrid[row][col]里有食物的那個數(shù)據(jù)元素清空,以便生成下一個食物 。這里是通過令蛇的頭部的橫、縱坐標與先前產(chǎn)生食物時設置的 2 個變量進行比較判斷的,這 2 個變量分別是 r, c( r 表示食物的橫坐標 , c 表示食物的縱坐標),如果 2 者分別相等,則成功吞掉食物;否則游戲繼續(xù)進行。amp。 39。 score++。 showscore()。 貪吃蛇小游戲的 VC++設計與實現(xiàn) 21 圖 49 蛇碰到食物的情況 貪吃蛇小游戲的 VC++設計與實現(xiàn) 22 第 五 章 總結 與展望 通過理論與實踐的完美結合,我的貪吃蛇游戲成功的編制完成了。但是值得驕傲的是整個游戲的編寫是自己親手,并且依靠自己的智慧獨立完成的。經(jīng)過查閱大量的文獻資料閱讀相關的書籍,最后就決定了采用分治算法的思想來對擺在面前的問題一一擊破。解決難題的時候,仿佛是撥了一層云,又見一層云,但是日光也越來越閃耀了,最終看到了太陽,取得了成功。不僅自己揭開了游戲程序神秘的面紗,而且在實際的程序編寫與調(diào)試過程中,自己成長了不少,實戰(zhàn)的能力提高了很多。然而像貪 吃 蛇這樣的簡單的游戲,就自然成了游戲設計者的入門首選。編成之后成就感就會油然而生,并使之對游戲設計產(chǎn)生強烈的興趣。從易到 難這是一個準則,總之,貪 吃 蛇小游戲的研究會對增長程序閱讀能力、程序編寫能力等起到了意想不到的作用。在以后漫漫的研究學習道路上,我還有很遠的路要走,迎接我的是又一個嚴峻的挑戰(zhàn)! 貪吃蛇小游戲的 VC++設計與實現(xiàn) 23 參考文獻 [1] James . 《 C++基礎知識》 . 機械工業(yè)出版社 [2] 劉璟 . 周玉龍 . 《高級語言 C++程序設計》 . 高等教育出版社 [3] 蔣衛(wèi)華 . 李偉華 . 《 C++實戰(zhàn)操作 100 例》 . 清華大學出版社 [4] Thomas . 《算法導論》 . 機械工業(yè)出版社 [5] PangNing Tan. Michael Steinbach. 《數(shù)據(jù)挖掘?qū)д摗?. 人民郵電出版社 [6] Michael Dawson. 《 Beginning C++ Game Programming》 . Premier Press [7] 王為青 . 張圣亮 . 《 C 語言實戰(zhàn)操作 105 例》 . 人民郵電出版社 [8] Stanley . 《 C++ Primer》 . 人民郵電出版社 [9] Ernest Adams. 《游戲設計基礎》 . 機械工業(yè)出版社 [10] 潛龍 . 《游戲設計概論》 . 科學出版社 貪吃蛇小游戲的 VC++設計與實現(xiàn) 24 致 謝 本論文是在導師毛秀青教員的悉心指導下完成的。本論文從選題到完成,每一步都是在導師的指導下完 成的,傾注了導師大量的心血。在此,表示衷心的感謝! 貪吃蛇小游戲的 VC++設計與實現(xiàn) 25 附 錄 Snake Game ============================================================= includeiostream include include include using namespace std。 void showscore()。 void loadgame()。 const int maxrow=15,maxcol=47。 const char up_key=39。, down_key=39。, left_key=39。, right_key=39。 const int pause_length=500000。 char screengrid[maxrow][maxcol]。 struct snake_segment { short row。 } snake[100]。 if( !SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord ) ) return false。 return true。 do { score = 0。//通過修改改變難度 srand(time(NULL))。 creatfood()。 if((keypress==right_key)||(keypress==left_key)|| (keypress==up_key)||(keypress==down_key)) direction = keypress。 gotoxy(snake[0].col,snake[0].row)。 for (int i=1。i++) snake[i1]=snake[i]。isnake_length。 couto。i (speed * pause_length)。x39。isnake_length1。amp。x39。 }} //檢測吃到食物 if(snake[snake_length1].col==camp。snake[snake_length1].row==r) { 貪吃蛇小游戲的 VC++設計與實現(xiàn) 28 screengrid[snake[snake_length1].row][snake[snake_length1].col]=39。 creatfood()。 snake_length++。 } } while (keypress!=39。)。 gotoxy(30,6)。 gotoxy(30,9)。 do keypress=getch()。y39。amp。n39。 } while (keypress==39。)。 snake_length=4。 for(row=0。row++) for(col=0。col++) screengrid[row][col]= 39。 for(int i=0。i++) { snake[i].row=snake_start_row。 } //畫游戲框架 貪吃蛇小游戲的 VC++設計與實現(xiàn) 29 drawline(1,1)。rowmaxrow。 cout|。colmaxcol。 cout|。 showscore()。 cout~~ SNAKE GAME~~ Left:left_key Right:right_key Up:up_key Down:down_key Exit: x.。 for (int i=0。i++) cout=。 coutScore: score。 snake[snake_length].col=snake[snake_length1].col+1。 case(left_key) : snake[snake_length].row=snake[snake_length1].row。 break。 snake[snake_length].col=snake[snake_length1].col。 case(down_key) : snake[snake_length].row=snake[snake_length1].row+1。 break。 } } void creatfood() { int col,row。 col= rand()%maxcol。 if(col3) col+=3。 r=row。*39。 coutscreengrid[row][col
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1