當前位置:編程學習大全網 - 源碼下載 - 有用的源代碼資源

有用的源代碼資源

遊戲描述如下:

1.蛇可以自動直線移動,也可以玩家通過方向鍵控制蛇上下左右移動,每次壹格。

2.蛇在指定區域活動,當:

①蛇觸壁時;

(2)貪吃的蛇頭碰到蛇身或蛇尾時;

③當玩家的鍵盤輸入不是方向鍵時;

命令行顯示“遊戲結束!”然後退出遊戲。

3.在蛇活動的區域隨機生成壹個“豆豆”。蛇吃“豆豆”時,蛇身增長壹格,自動前進時間縮短。

短100ms(默認為1000ms,不能小於100ms)。每次蛇長是8的倍數,提升壹級。

C++代碼如下:

#包含?& ltbios.h & gt?

#包含?& ltconio.h & gt?

#包含?& ltdos.h & gt?

#包含?& ltgraphics.h & gt?

#包含?& ltstdlib.h & gt?

#包含?& lttime.h & gt?

使用?命名空間?std?

內嵌?作廢?顯示(char?gsDomain[][22],?int?水平,?int?moveSpeed)?

{?

系統(“cls”);?//清屏?

cout?& lt& lt?endl?& lt& lt?endl?

為了什麽?(int?我?=?0;?我?& lt?22;?i++)?

{?

cout?& lt& lt?”\ t”;?

為了什麽?(int?j?=?0;?j?& lt?22;?j++)?

cout?& lt& lt?gsDomain[i][j]?& lt& lt?"?";?

如果?(我?==?0)?

{?

cout?& lt& lt?\ t級別:?& lt& lt?水平;?

}?

不然呢?如果?(我?==?3)?

{?

cout?& lt& lt?”\t自動提前時間”;?

}?

不然呢?如果?(我?==?5)?

{?

cout?& lt& lt?\t時間間隔:?& lt& lt?moveSpeed?& lt& lt?"?ms ";?

}?

cout?& lt& lt?endl?

}?

}?

int?main()?

{?

夏爾?GS domain[22][22];?//蛇活動區(包括墻)?

//初始化蛇活動區(不包括墻)?

為了什麽?(int?我?=?1;?我?& lt=?21;?i++)?

{?

為了什麽?(int?j?=?1;?j?& lt=?21;?j++)?

gsDomain[i][j]?=?'?';?

}?

//初始化蛇活動區的上下壁?

為了什麽?(int?我?=?0;?我?& lt?22;?i++)?

gsDomain[0][i]?=?gsDomain[21][i]?=?'-';?

//初始化蛇活動區域的左右墻壁?

為了什麽?(int?我?=?1;?我?& lt?21;?i++)?

gsDomain[i][0]?=?gsDomain[i][21]?=?'|';?

//初始化蛇?

為了什麽?(int?我?=?1;?我?& lt=?3;?i++)?

gsDomain[1][i]?=?'*';?

//初始化蛇頭?

gsDomain[1][4]?=?'#';?

int?snake[2][100];?//記錄蛇每次出現的位置坐標?

為了什麽?(int?我?=?0;?我?& lt?4;?i++)?

{?

snake[0][i]?=?1;?//記錄蛇所在位置的x坐標?

snake[1][我]?=?我?+?1;?//記錄蛇所在位置的y坐標?

}?

int?頭?=?3,?尾巴?=?0,?長度?=?4;?

int?beanX?beanY?//豆豆出現在哪裏?

srand(time(0));?

{?

beanX?=?蘭德()?%?20?+?1;?

賓尼?=?蘭德()?%?20?+?1;?

}?什麽時候?(gsDomain[beanX][beanY]?!=?'?');?

gsDomain[beanX][beanY]?=?'*';?//豆豆?

cout?& lt& lt?" \ n \ n \ t \貪吃蛇遊戲即將開始!\ n ";?

龍?開始;?

int?水平?=?1,?moveSpeed?=?1000;?

為了什麽?(int?我?=?3;?我?& gt=?0;?我-)?

{?

開始?=?clock();?

什麽時候?(時鐘()?-?開始?& lt=?1000){}?

系統(“cls”);?

如果?(壹)?

{?

cout?& lt& lt?\ n \ n \ t \進入遊戲倒計時?& lt& lt?我?& lt& lt?endl?

}?

其他

顯示(gsDomain,水平,?moveSpeed);?

}?

夏爾?方向?=?77;?//蛇默認自動直奔右邊?

什麽時候?(真)?

{?

布爾?時標?=?真實;?

int?x,?y;?

開始?=?clock();?

//如果時間超過自動前進時間或者在鍵盤上按了壹個鍵,終止循環?

什麽時候?((timeFlag?=?(時鐘()?-?開始?& lt=?moveSpeed))?& amp& amp?!kbhit()){}?

如果?(timeFlag)?

{?

//在鍵盤上按下壹個鍵時讀取鍵盤輸入?

getch();?

方向?=?getch();?

}?

切換?(方向)?

{?

//上?

案子?72:?x?=?蛇[0][頭]?-?1,?y?=?蛇[1][頭];?

打破;?

//下來?

案子?80:?x?=?蛇[0][頭]?+?1,?y?=?蛇[1][頭];?

打破;?

//往左?

案子?75:?x?=?蛇[0][頭],?y?=?蛇[1][頭]?-?1;?

打破;?

//往右?

案子?77:?x?=?蛇[0][頭],?y?=?蛇[1][頭]?+?1;?

打破;?

默認:?cout?& lt& lt?" \ t遊戲?完畢!\ n ";?

回歸?0;?

}?

如果?(x?==?0?||?x?==?21?||?y?==?0?||?y?==?21)?

{?

//蛇碰了壁?

cout?& lt& lt?" \ t遊戲?完畢!\ n ";?

回歸?0;?

}?

如果?(gsDomain[x][y]?!=?'?'?& amp& amp?!(x?==?beanX?& amp& amp?y?==?beanY))?

{?

//蛇頭接觸的是蛇身還是蛇尾?

cout?& lt& lt?" \ t遊戲?完畢!\ n ";?

回歸?0;?

}?

如果?(x?==?beanX?& amp& amp?y?==?beanY)?

{?

//吃豌豆?

長度++;?//長度加1?

如果?(長度?& gt=?8)?

{?

//遊戲升級處理?

長度?-=?8;?

level++;?

如果?(moveSpeed?& gt?100)?

moveSpeed?-=?100;?

}?

GS domain[snake[0][head]][snake[1][head]]?=?'*';?

gsDomain[x][y]?=?'#';?

頭?=?(頭?+?1)?%?100;?

蛇[0][頭]?=?x;?

蛇[1][頭]?=?y;?

{?

beanX?=?蘭德()?%?20?+?1;?

賓尼?=?蘭德()?%?20?+?1;?

}?什麽時候?(gsDomain[beanX][beanY]?!=?'?');?

gsDomain[beanX][beanY]?=?'*';?

顯示(gsDomain,水平,?moveSpeed);?//顯示在屏幕上?

}?

其他

{?

//不吃豌豆?

GS domain[snake[0][tail]][snake[1][tail]]?=?'?';?//蛇尾前移壹格?

尾巴?=?(尾巴?+?1)?%?100;?

GS domain[snake[0][head]][snake[1][head]]?=?'*';?

頭?=?(頭?+?1)?%?100;?

蛇[0][頭]?=?x;?

蛇[1][頭]?=?y;?

gsDomain[x][y]?=?'#';?//蛇頭前移壹格?

顯示(gsDomain,水平,?moveSpeed);?//顯示在屏幕上?

}?

}?

回歸?0;?

}

  • 上一篇:谷歌地球簡介
  • 下一篇:請大師預測事業
  • copyright 2024編程學習大全網