第一范文网 - 专业文章范例文档资料分享平台

C++课程设计贪吃蛇小游戏(内附完整源码与附件)

来源:用户分享 时间:2025/5/31 21:27:39 本文由濡炪倖鍎抽ˇ锟� 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

// 初始化蛇尾 tailX = tailY =

N/ 2 - 1; N/ 2;

TAIL ;

RIGHT; // 记录蛇尾的移动方向

map[tailY][tailX] = directionMap[tailY][tailX] =

// 初始化食物

srand( unsigned (time( NULL))); do {

foodX = rand() % ( foodY = rand() % (

N- 1) + 1; N- 1) + 1;

// 产生随机数 1~(N-1)

/ / 随机播种

} while ( EMPTY!= map[foodY][foodX]); map[foodY][foodX] = // 首次显示游戏界面 for (i = 0; i <

for (j = 0; j <

{

case WALL:cout case HEAR:cout case BODY: case TAIL :cout case FOOD:cout default :

cout << \\; break ; } cout << endl; } }

<< \●\; break ; << \★\break ; << \■\; break ; << \○\; break ;

N; i++) {

N; j++) FOOD;

switch (map[i][j])

void RetroSnaker ::gotoXY( int {

COORDcoord; coord.X = 2* coord.Y = }

void RetroSnaker ::againFood() {

x; y;

x, int y)

SetConsoleCursorPosition(GetStdHandle( STD_OUTPUT_HANDL),Ecoord);

srand( unsigned (time( NULL))); / / 随机播种

do {

foodX = rand() % ( foodY = rand() % ( map[foodY][foodX] = gotoXY(foodX, foodY); cout << \★\}

void RetroSnaker ::erasingTheTail() {

gotoXY(tailX, tailY); cout << \\; map[tailY][tailX] =

EMPTY;

// 擦除尾巴 N- 1) + 1; N- 1) + 1; FOOD;

// 产生随机数 1~(N-1)

} while ( EMPTY!= map[foodY][foodX]);

if ( UP == directionMap[tailY][tailX]) {

directionMap[tailY][tailX] = tailY--; }

else if ( DOWN== directionMap[tailY][tailX]) {

directionMap[tailY][tailX] = tailY++; }

else if ( LEFT == directionMap[tailY][tailX]) {

directionMap[tailY][tailX] = tailX--; } else {

directionMap[tailY][tailX] = tailX++; }

map[tailY][tailX] = }

void RetroSnaker ::erasingTheHear( {

int x= hearX, y = hearY; if ( UP == ch)

--hearY;

else if ( DOWN== ch)

++hearY;

else if ( LEFT == ch)

char ch)

TAIL ;

EMPTY; EMPTY; EMPTY; EMPTY;

hearX--; else

hearX++;

map[y][x] = gotoXY(x, y); cout << \●\

BODY; // 擦除蛇头,绘制蛇身

directionMap[hearY][hearX] = directionMap[y][x]; // 绘制蛇头

map[hearY][hearX] = HEAR;

gotoXY(hearX, hearY); cout << \○\; }

int main( void ) {

char ch; bool sign =

false ;

DWORDkeyTime=0; RetroSnaker r; while ( true ) {

if (r.gameOver) {

// 游戏结束 _getch(); break ; }

if (_kbhit()) {

// 检测是否按下键盘

ch = _getch(); // 获取该按键,并不回显在屏幕上

sign = true ;

}

if (GetTickCount()- keyTime >

GMAE_TIME&&sign) { GMAE_TIME毫秒则移动蛇

r.move(ch); // 移动蛇

keyTime = GetTickCount();

sign = false ;

} else {

// 没按下键盘,则默认处理 if (GetTickCount() - keyTime >

GMAE_TIME) { GMAE_TIME毫秒则移动蛇

r.move(); // 默认移动

keyTime = GetTickCount();

}

// 两次按键的间隔时间大于// 两次按键的间隔时间大于

main.cpp

件贪吃蛇VC6.0++ 项目 .zip

} }

return 0; }

C++课程设计贪吃蛇小游戏(内附完整源码与附件).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3vs338lhii3bj0w6iip07zlrl1bk8m012ym_5.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top