欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/6/15 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 c语言倒计时不影响进程_2017级C语言大作业 - 见缝插针 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

分享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语言大作业 - 见缝插针的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。