資源簡介
C++寫的貪吃蛇游戲源代碼,有非常詳細的注釋!

代碼片段和文件信息
#include???
#include???
#include???
#include??????
#include?
//-------------------------------------------------------------------
void?GotoXY(int?x?int?y)??????//設(shè)定輸出位置
{??
COORD?c;??
c.X?=?x-1;??
c.Y?=?y-1;??
SetConsoleCursorPosition?(GetStdHandle(STD_OUTPUT_HANDLE)?c);??
}?
//-----------------------------------------------------------------
void?color(int?a)??????????????//顏色函數(shù)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE)a);
}
struct?HeroList
{
char?Name[10];
int?Highscore;
}Hero[10];
//----------------------------------------------------------
void?Save()????????????????????//存儲最高分及名字
{
FILE?*fp;
if((fp=fopen(“Hero_list““wb“))==NULL)
{cout<<“can?not?open?file!“< if(fwrite(&Hero[0]sizeof(struct?HeroList)1fp)!=1)
cout<<“file?write?error!“< fclose(fp);
}
//**********************************************************
class?CSnake
{
?????int?image[20][20];????????//游戲面板,即小蛇活動范圍
?????int?FoodX;????????????????//事物出現(xiàn)的X坐標
?????int?FoodY;????????????????//事物出現(xiàn)的Y坐標
?????int?snakeX;???????????????//記錄小蛇的頭部X坐標
?????int?snakeY;???????????????//記錄小蛇的頭部Y坐標
?????int?head;?????????????????//小蛇頭部下標
?????int?tail;?????????????????//小蛇尾部下標
?????int?snake[2][2000];?????????//記錄小蛇所有身體的坐標
?????int?node;?????????????????//小蛇的節(jié)數(shù)
?int?direction;????????????//小蛇頭部的方向????????
?????int?ij;???
?int?gamespeed;????????????//速度
?int?score;????????????????//記錄分數(shù)
?char?arrowKey;????????????//接受按鍵的變量
?int?GameOver;?????????????//使游戲結(jié)束的變量
?int?level;????????????????//設(shè)置等級
?int?length;???????????????//為了設(shè)置等級而與node一樣記錄設(shè)的長度
public:
?
CSnake()????????//構(gòu)造函數(shù)初始化部分變量
{
????????head=3;????????????????//初始化頭部下標
????????tail=0;????????????????//初始化尾部下標
????????node=4;????????????????//小蛇初始節(jié)數(shù)為4節(jié)
???? gamespeed=300;?????????//游戲速度(移動的間隔時間)
???? score=0;???????????????//初始化分數(shù)為0
????????direction=6;???????????//小蛇的初始方向向右
GameOver=0;????????????//進入游戲初始化為0
level=1;
length=4;
}
~CSnake()?????//析構(gòu)函數(shù)
{}
void?Init();????????????????//初始化游戲面板及小蛇的坐標
int??DrawSnake();???????????//記錄小蛇每次移動后頭部及身體的下一坐標
void??Automove();????????????//使小蛇自動移動
????int??Gameover();????????????//判斷游戲是否結(jié)束
int??Generatefood();????????//產(chǎn)生食物
void?display();?????????????//顯示游戲面板
void?shiftLeft();???????????//控制左移
void?shiftRight();??????????//控制右移
void?shiftDown();???????????//控制下移
void?shiftUp(); ????????????//控制上移
int??PlayGame();????????????//執(zhí)行游戲的函數(shù)
void?Setspeed();????????????//設(shè)置速度
int?Pause();????????????????//游戲的暫停
};
//--------------------------------------?-------------------------------
?void?CSnake::Init()?????????????//初始化部分數(shù)據(jù)
{
?
?for(i=0;i<20;i++)???????????????????//初始化游戲面板
???for(j=0;j<20;j++)????
image[i][j]=0;
?for(i=0;i<4;i++)????????????????????//初始化小蛇初始位置
????{?snake[0][i]=1;
??????snake[1][i]=i+1;
????}
?for(i=1;i<=3;i++)???????????????????//初始化小蛇坐標的顯示值(即初始化小蛇顯示圖形對應(yīng)的值)
????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????16??2012-07-08?23:52??C++版貪吃蛇\Hero_list
?????文件??????17644??2012-07-08?23:48??C++版貪吃蛇\snake.cpp
?????文件???????4316??2012-07-08?23:52??C++版貪吃蛇\SNAKEGOOD.dsp
?????文件????????541??2012-07-08?23:47??C++版貪吃蛇\SNAKEGOOD.dsw
?????文件??????50176??2013-07-11?23:55??C++版貪吃蛇\SNAKEGOOD.ncb
?????文件??????53760??2013-07-11?23:55??C++版貪吃蛇\SNAKEGOOD.opt
?????文件????????252??2013-07-11?23:55??C++版貪吃蛇\SNAKEGOOD.plg
?????目錄??????????0??2013-07-11?23:59??C++版貪吃蛇
-----------?---------??----------?-----??----
???????????????126705????????????????????8
評論
共有 條評論