2019春第二次课程设计实验报告

一、实验项目名称:

贪吃蛇游戏编写;

二、实验项目功能描述:

这个实验主要是实现游戏的正常运行,实现的目标是对小蛇移动的控制,
同时对小蛇数据的保存,如何实现转弯的效果,吃到食物后如何自行增
加长度;还有就是食物的出现的位置,以及食物的消失;

三、项目模块结构介绍:

  • 第一步:构造小蛇,在画面中出现一条静止的小蛇,并且用二维数组canvas[High][width]
    对应的元素进行相关数据的输出,当其值是0输出空格,值为-1时输出边框#,值为1时
    输出蛇头@,值为大于1的正数时输出蛇身*。在startup()函数中初始化蛇头在画布的中间位置(canvas[High/2][width]=1),蛇头向左依次生成4个蛇身(for(i=1;i<=4;i++))canvas[High/2][width/2-i]=i+1;),元素分别是2,3,4,5,;

  • 第二步:小蛇的移动,列出小蛇分别向右向上运动后对应二维数组元素变换;假设小蛇元素为54321,其中1为蛇头,5432为蛇身,最大值5为蛇尾。实现将所有大于0的元素加1,得到65432,将最大值变为0;即去除原来的尾巴;再根据对应的移动方向将2对应方向的元素由0变成1;达到移动目的;

  • 第三步:玩家控制小蛇移动,在undateWithInput()函数中按a,s,d,w键改变moveDirection的值,然后调用moveSnakeByDirection()实现小蛇不同方向的移动;

  • 第四步:判断游戏的失败,当小蛇和边框或者自身发生碰撞时游戏结束;

  • 第五步:吃食物增加自身长度,当二维数组canvas[High][eidth]的元素值为-2时输出食物数值F,当蛇头碰到食物食物时长度加1;

总体模型:

Int main()
{Startup();     //初始化While(1)     //游戏循环执行{Show();     //显示画面updateWithoutInput();    //与用户输入无关的更行updateWithInput();      //与用户输入有关的更新
}
return 0;
}

四、实现界面展示:

五、代码托管链接:

https://gitee.com/LYL596/game.git

六、实验总结:

这一周这样游戏设计感觉比上一个飞机小游戏的细节要难一点点,上一个飞机小游戏做的还是挺成功的,同时自己设计的游戏,玩起来感觉就是很不错,虽然说吧画面看起来有一点点别扭,但是这个都不是事,阻挡不了成功的喜悦。经过一个星期对git的使用,对git上传代码,建立仓库操作还是很熟练,消除了以前怎样上传代码,这个游戏完成了,下一个游戏代码怎样上传这一些问题;贪吃蛇这个游戏在编写过程中遇到sleep()这个在给定的代码头文件不存在,然后就一直运行不了,最后去百度查找之后,需要加一个头文件#include <unistd.h>,其次书本上提供的代码感觉存在一点点问题,起初给定的移动代码,到后面却没有了;然后再运行的时候没有蛇头,这个就属于粗心大意,赋值打错了;这个游戏最难的地方就是小蛇的移动,如果还是书本提供,自己很难想到怎样去实现移动这一操作;每一次完成一个游戏自己感觉还是非常高兴的,毕竟努力的成果。慢慢的应该向更难的方向进军了;

转载于:https://www.cnblogs.com/lyl68/p/10957360.html

2019春第二次课程设计实验报告相关推荐

  1. 2019春第二次课程实际实验报告

    2019春第二次课程实际实验报告 一:实验项目名称 贪吃蛇游戏工作室 二:实验项目功能描述 编写代码,能够使游戏正常运行,达到基础的编写游戏的功能,在这个游戏中,就是通过贪吃蛇不停的吃,使之能够不停的 ...

  2. 2019春第二次课程实验报告

    2019春第二次课程设计实验报告 一:实验项目名称:反弹球游戏 二:实验项目功能描述:设计一个小球与接小球的挡板,一旦遇到上下左右边都会反方向弹回,一旦挡板接住小球就在分数上加二,如果没有接到,则会失 ...

  3. 2019春第一次课程设计实验报告

    2019春第一次课程设计实验报告 一.实验项目名称 反弹球消砖块 二 .实验项目功能描述 用c语言编写一个反弹球小游戏,可以自己改变游戏的各项数据,可以通过键盘的 "a",&quo ...

  4. 2109春第一次课程设计实验报告

    2019春第一次课程设计实验报告 一.实验项目名称: 飞机游戏的编写 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现控制飞机的移动功能,增加其实用度, 同时还实现发射子弹和出现敌机的操 ...

  5. 计算机模型机设计实验报告,计算机组成原理课程设计实验报告-基本模型机设计与实现...

    计算机组成原理课程设计实验报告-基本模型机设计与实现 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 计 算 机 组 成 原 理实 ...

  6. c语言图形时钟编程,C语言图形时钟课程设计实验报告.doc

    C语言图形时钟课程设计实验报告.doc 目录 1.系统功能要求 . 2. 数据结构设计及 说明 . 3.程序结构(画流程图) . 4.各模块的功能 . 5.试验结果(包括输入数据和输出结果) . 6. ...

  7. c语言时钟报告,C语言图形时钟课程设计实验报告

    C语言图形时钟课程设计实验报告 目录1.系统功能要求.2. 数据结构设计及说明.3.程序结构(画流程图) .4.各模块的功能.5.试验结果(包括输入数据和输出结果) .6.体会.7.参考文献.8.附录 ...

  8. matlab数字图像处理课程设计报告,数字图像处理课程设计实验报告.doc

    数字图像处理课程设计实验报告 数字图像处理课程设计 题 目:数字图像处理及Huufman(或小波变换)编码仿真实现 学生姓名: 学 院:信息工程学院 系 别:电子信息工程系 专 业:电子信息工程 班 ...

  9. 湖北汽车工业学院c语言程序设计 汽车零部件采购管理程序,湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统).docx...

    湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统) C语言课程设计 商品销售信息管理系统 #include #include #include #include structproduct// ...

最新文章

  1. ddr5内存上市时间_辣评烩:SK海力士首发DDR5内存:频率冲上5600MHz
  2. ASP.Net ListBox DropdownList 不同条目 设置 背景色 和 字体颜色
  3. 蚂蚁庄园 php源码,蚂蚁庄园五体投地
  4. 腐蚀rust研究台抽奖_中石化青岛安工院专家分享延迟焦化装置的腐蚀风险分析!...
  5. 雨滴桌面时间插件_电脑桌面美化,我只服这10个骚操作!
  6. Java的代码书写规范
  7. python去干扰线_GitHub - Guardiant/VerifyCode: 验证码去干扰线识别
  8. 在乌镇拼命“洗白”的拼多多
  9. 使用模板部署的Linux虚拟机网卡不可用的处理方法
  10. OpenCV-浮雕雕刻效果
  11. 给chrome手动安装github上插件
  12. dw什么运行php,php新手求助,为什么在DW中设计里能看到运行php程序的结果,但…...
  13. 电子设计教程7:线性稳压电源的工作原理
  14. java实现定时自动打卡脚本_android 定时自动上班手机打卡签到实例
  15. 蓝牙初学者要知道的几件事
  16. 可变长度子网掩码(VLSM)
  17. 微带线 带状线 过孔的时延对比
  18. 心情札记 --- 人活着是为了天天开心快乐, 去憧憬和实现一切美好的事物
  19. ACS 中PEAP的认证
  20. RuntimeError: Output 0 of SelectBackward is a view and is being modified inplace.

热门文章

  1. Myeclipse中项目没有代码错误提示,jsp页面无编译迹象?如何解决
  2. 兔子生兔子递归的理解
  3. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
  4. 【牛腩新闻发布系统】开发前的准备01
  5. 机器翻译评测——BLEU算法详解 (新增 在线计算BLEU分值)评估
  6. PyTorch里面的torch.nn.Parameter()
  7. 通用流水线处理器技术参数
  8. 视频系列:RTX实时射线追踪(下)
  9. 目标检测中特征融合技术(YOLO v4)(下)
  10. java爬取验证码图片_JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取)...