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

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

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

食物 蛇头 蛇尾

蛇头↑ 蛇尾↑

注:有箭头代表蛇的方向。

当蛇吃到食物的时候, 只需要在食物的地方绘制蛇头, 而原来蛇 头的地方绘制蛇身即可, 无须擦除蛇尾再进行绘制, 然后重新产生食 物,如下图。

蛇头 蛇身 蛇尾

蛇头↑ 蛇身↑ 蛇尾↑

食物

当检测到按键的时候,先改变蛇的移动方向,再移动蛇即可。 (2)主要实现 (详细的关键代码)

void RetroSnaker ::move() {

switch (directionMap[hearY][hearX]) {

case UP:

if ( FOOD== map[hearY - 1][hearX])

againFood();

else if ( EMPTY== map[hearY - 1][hearX])

erasingTheTail(); else {

gameOver = true ; / / 没有遇到食物或者空,则表示游戏结束 break ; }

erasingTheHear( break ; case DOW:N

if ( FOOD== map[hearY + 1][hearX])

againFood();

else if ( EMPTY== map[hearY + 1][hearX])

erasingTheTail(); else {

gameOver = true ; / / 没有遇到食物或者空,则表示游戏结束 break ; }

erasingTheHear( break ; case LEFT:

if ( FOOD== map[hearY][hearX - 1])

againFood();

else if ( EMPTY== map[hearY][hearX - 1])

erasingTheTail(); else {

gameOver = true ; / / 没有遇到食物或者空,则表示游戏结束 break ; }

erasingTheHear( break ; case RIGHT:

if ( FOOD== map[hearY][hearX + 1])

againFood();

// 吃到食物

LEFT);

// 擦除尾巴

// 什么都没遇到 // 吃到食物

DOW)N;

// 擦除尾巴

// 什么都没遇到 // 吃到食物

UP);

// 擦除尾巴

// 什么都没遇到 // 吃到食物

else if ( EMPTY== map[hearY][hearX + 1])

erasingTheTail(); else {

// 擦除尾巴

// 什么都没遇到

gameOver = true ; / / 没有遇到食物或者空,则表示游戏结束 break ; }

erasingTheHear( break ; default :

break ; } }

RIGHT);

四:上机运行结果与分析

(详细的程序运行结果,图 /表/文相结合,并对结果进行较全面的对比分析,类 似于“ 验证问题 ”)

与预期的结论一致,运行结果满足预期效果。

五:结论(讨论)

1、上机结论 (对应前面的上机目的)

通过本次上机,充分的锻炼了我解决问题的能力,让我更加的了解到知识得 运用才能熟练的掌握,也提高了我的学习兴趣和热情。

2、讨论 (存在的问题及可能的改进方向)

游戏界面比较单一,只有蛇和食物,没有统计分数和排行榜,也 没有游戏结束的画面, 还不能调整游戏的难度, 蛇的速度基本是恒定 的,无法动态修改。这是我需要改进的地方。

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