分享17级同学大一上学期用C语言实现的见缝插针。分步骤代码、图片音乐素材、可执行程序可从百度网盘下载:

链接:https://pan.baidu.com/s/1dblHmOD2z0cUiJk3XSquMA

提取码:m3ee

C语言 - 见缝插针https://www.zhihu.com/video/1220399899701075968

一、设计思路

1.1 总体想法

设计一个单机双人版的“见缝插针”游戏,在规定的一段倒计时内,比较对战双方插入的针的数量,针的数量较多的为获胜者

1.2 step by step 基本步骤实现

1. 首先是实现页面的显示,确定图片的位置(包括背景图的大小样式,上下两个弓箭以及中间的大圆和上下两个小圆,两个玩家的得分统计)

2. 实现上下的针通过操作从弓箭处发射并移动到中间的大圆处(打算用结构体处理,数组)

3. 使发射的针插入中间的大圆,并使针跟随中间的大圆一起转动

4. 用数组分别保存两个玩家发射的所有针的横纵坐标

5. 判断新发射的针是否撞上了之前成功发射的其他针,以及判断积分是否成功

6. 在游戏界面上实现积分的增加

7. 增加开始和结束的页面,并实现各页面之间的切换

8. 增加时间倒计时系统,增加背景音乐、插针音乐和插入失败的音乐

9. 最后是美化游戏页面,让整个游戏看起来更加美观

*关于针的旋转想法(主体):关于实现针的独立旋转的思路,我们开设了一个判断其状态的标志量数组,并在与用户无关的更新中记录针每个对应状态的横纵坐标,之后将其传送到显示画面去显示刷新

二、功能描述

2.1 代码总体功能

玩家先是进入开始界面,点1开始新游戏,点2阅读游戏规则,点3退出游戏。进入游戏主界面后,玩家一通过按空格、玩家二通过S键操作,将针从弓的地方发射,如若没碰到其他已插入的针,则针插入成功,得分加一,并随中间的大圆一起转动,若碰到其他的针,则插入失败,得分并不增加,倒计时结束后,显示胜者。

2.2 各块函数的功能

double angle[100]; //旋转的角度,不同的针对应同一时间段的不同坐标

void startMenu(); //游戏开始界面

void pauseMenu(); //游戏暂停界面

void endMenu() //游戏结束界面

void startup(); //开始游戏

void countdown(); //计时

void show(); // 显示绘制

void updateWithoutInput(); //与输入无关的更新

void updateWithInput(); //与输入有关的更新

void gameover(); //游戏结束

三、分步骤实现方法

3.1 重点

1. 实现多个针的显示

2. 实现按键后 小球状态的改变

3. 实现各个页面间的切换

4. 使游戏变得美观 ,简洁大方

5. 增加背景音乐等等

6. 增加倒计时的功能

7. 针碰撞的代码实现,以及得分的加减

3.2 难点

1.关于如何实现针的显示及针的碰撞判定的难点

2.如何实现玩家一玩家二的得分的顺利积分,而不会出现小bug

3.关于实现玩家一与玩家二球上数字的移动与显示

4.倒计时的显示及实现,最后结束页面的判定与结束游戏

5.多张页面间的切换

四、体会与总结

在实现页面的切换时,我们的一些界面因为图片格式的问题而显示不出来,最后反复地更改格式和大小才将其显示出来。所以以后在写代码时,我们要学会去从根本分析,这个功能为什么实现不了,是因为代码本身的问题还是因为图片格式这些的小问题。

在实现针的显示旋转,针碰撞的判定时,出现了一些思路上的错误及漏洞,而让任务迟缓无法推进,在今后的学习生活中要继续加强思维逻辑性的锻炼与训练。

总体来说,这次课程大作业充分体会到了游戏思路开始便制定的重要性,我们一开始就制定了我们要实现的功能及大概思路,让我们在后面逐一实现我们所需的功能时能够有条不紊的分步骤慢慢解决,从而最终做成最终目标,其次便是合作的重要性与交流的高效性,最后便是遇到问题常百度,看教程,善于去学习借鉴。

c语言倒计时不影响进程_2017级C语言大作业 - 见缝插针相关推荐

  1. c语言倒计时不影响进程_初学C语言没有项目练手怎么行,这17个小项目收下不谢...

    image C语言是我们大多数人的编程入门语言,对其也再熟悉不过了,不过很多初学者在学习的过程中难免会出现迷茫,比如:不知道C语言可以开发哪些项目,可以应用在哪些实际的开发中--,这些迷茫也导致了我们 ...

  2. 2017级C语言大作业 - 见缝插针

    见缝插针 C语言作业 分享17级同学大一上学期用C语言实现的见缝插针.分步骤代码.图片音乐素材.可执行程序可从百度网盘下载: 链接:https://pan.baidu.com/s/1dblHmOD2z ...

  3. c语言输出数字漏斗图形_2019级C语言大作业 - 十步万度

    分享19级同学大一上学期用C语言实现的十步万度,可从码云下载: 期末作业/十步万度​gitee.com C语言大作业 - 十步万度https://www.zhihu.com/video/1215683 ...

  4. 重理工c语言实验指导书,太原理工大学级c语言实验指导书参考答案教程方案.docx...

    大学辅助 小安图书 读好书 找小安PAGE 13 PAGE 15 古有三十六计 我有考霸辅助 小安 考霸 系列太原理工大学13级c语言实验指导书参考答案实验一 顺序1-3.温度*/编写程序,输入华氏温 ...

  5. c语言编写程序判断图的连通,图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)...

    博士期间估计这可能是唯一一个要编程的作业,搞了半天弄出这个东西,放这里为以后用到的时候查找方便. 说来也是可笑,读博士期间发现大家对上课也都没什么兴趣,老师也是那么回事,都说博士期间学的课程是要有助于 ...

  6. c语言倒计时软件设计,课程设计报告(C语言)倒计时.doc

    课程设计报告书 课程名称 <高级语言课程设计> 专 业 计算机科学与技术 倒计时 功能说明 我要做的是用c语言设计倒计时程序,我是用while语句实现对其倒计时的循环.用_sleep()实 ...

  7. C语言sopc蜂鸣器按键弹奏中音,SOPC乐曲演奏大作业.doc

    PAGE 1 综合实验 基于NiosII的乐曲演奏设计 单 位: 班 级: 组 员: 指导老师: 首 都 师 范 大 学 2012年5月 目录 TOC \o "1-3" \h \u ...

  8. 外卖派单模拟系统C语言代码,GitHub - Sndav/SuperDeliver: 外卖派单模拟系统大作业

    概要设计书 [TOC] 1.0 编码规范 变量名 变量名使用下划线命名方法 变量定义后,写上该变量的作用及其含义 变量不得使用i,j,k,a,b,c,包括循环变量 循环变了使用iter_i,iter_ ...

  9. 天津大学仁爱学院c语言期末考试题,天津大学《C语言程序设计》2016年7月考试期末大作业...

    请在以下三组题目中任选一组作答,满分100分. 第一组: 一.编程题(每题20分,共40分) 1.编写程序.每当输入10个评委的分数后,求该选手的最后得分并输出(设10个评委按照以下打分原则为选手打分 ...

最新文章

  1. oracle hint push_pred,hints的push_pred应用-Oracle
  2. php实现的mongodb操作类
  3. 技本功丨知否知否,Redux源码竟如此意味深长(下集)
  4. Doom HDU - 5239(线段树+思维)
  5. 演练 望炉山瀑布文字样式 0929
  6. 【科普】OFFICE 365 outlook 如何导入其他邮箱的联系人
  7. 为什么当前互联网+法律发展艰难?
  8. /usr/bin/sed: No such file or directory
  9. 金山词霸2009牛津版完整破解版+绿色精简版下载
  10. Win10笔记本电脑设置插入鼠标时自动禁用触摸板
  11. Failed to prettify component
  12. python gtk_python-gtk学习笔记
  13. 线性模型(Linear Model)
  14. 抖音账号如何做好私域流量,私域流量是什么
  15. Java聊天室——实现多人聊天、私聊、群聊
  16. 人类活动识别---数据集UCI-HAR简介
  17. 五面拿下阿里飞猪offer,java基础入门pdf百度云
  18. 汉诺塔(hanoi)
  19. Oracle创建和查询索引
  20. PyCharm社区版的下载与安装

热门文章

  1. 【Groovy】编译时元编程 ( 编译时处理 ASTTransformation 接口实现 | 配置 ASTTransformation )
  2. 【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )
  3. 【Android 逆向】Android 系统文件分析 ( cpuinfo 处理器信息文件 | self 当前进程信息文件 | meminfo 当前内存信息文件 )
  4. 【Java 并发编程】线程操作原子性问题 ( 问题业务场景分析 | 使用 synchronized 解决线程原子性问题 )
  5. 【计算机网络】网络安全 : 公钥分配 ( 公钥使用者 | 公钥分配 | CA 证书格式 | CA 证书吊销 )
  6. 【嵌入式开发】C语言 内存分配 地址 指针 数组 参数 实例解析
  7. java string 转化为date
  8. 【实验吧】CTF_Web_简单的SQL注入之1
  9. C指针笔试题,蛋疼的多重指针运算,谭浩强的阴影
  10. Apache Shiro 使用手册(四)Realm 实现