C语言第四次实验报告
第四次实验报告
一·实验项目名称: 多球反弹
二·实验项目功能描述:
(1)实现多个小球
(2)实现多个小球碰壁会反弹
(3)实现小球之间碰撞反弹
三· 项目模块结构介绍
#define High 480
#define Width 640
#define BallNum 15 //定义小球个数和游戏尺寸
//对小球的输入
for(i=0;i<BallNum;i++)
{
ball_x[i]=rand()%int(Width-4*radius)+2+radius;
ball_y[i]=rand()%int(High-4*radius)+2*radius;
ball_vx[i]=(rand()%2)*2-1;
ball_vy[i]=(rand()%2)*2-1;
}
//制造黑色的球,为了小球移动到该位置恢复到黑色
setcolor(BLACK);
setfillcolor(BLACK);
for(i=0;i<BallNum;i++)
{
fillcircle(ball_x[i], ball_y[i], radius);
}
//小球的运动,并判断是否碰壁,是则返回
for(i=0;i<BallNum;i++)
{
ball_x[i]=ball_x[i]+ball_vx[i];
ball_y[i]=ball_y[i]+ball_vy[i];
if(ball_x[i]<radius)
ball_x[i]=radius;
if(ball_y[i]<radius)
ball_y[i]=radius;
if(ball_x[i]>Width-radius)
ball_x[i]=Width-radius;
if(ball_y[i]>High-radius)
ball_y[i]=High-radius;
}
for(i=0;i<BallNum;i++)
{
if((ball_x[i]<=radius)||(ball_x[i]>=Width-radius))
ball_vx[i]=-ball_vx[i];
if((ball_y[i]<=radius)||(ball_y[i]>=High-radius))
ball_vy[i]=-ball_vy[i];
}
//判断小球是否碰撞,是则改变速度方向
float minDistances2[BallNum][2];
for(i=0;i<BallNum;i++)
{
minDistances2[i][0]=9999999;
minDistances2[i][1]=-1;
}
for(i=0;i<BallNum;i++)
{
for(j=0;j<BallNum;j++)
{
if(i!=j)
{
float dist2;
dist2=(ball_x[i]-ball_x[j])*(ball_x[i]-ball_x[j])
+(ball_y[i]-ball_y[j])*(ball_y[i]-ball_y[j]);
if(dist2<minDistances2[1][0])
{
minDistances2[i][0]=dist2;
minDistances2[i][1]=j;
}
}
}
}
for(i=0;i<BallNum;i++)
{
if(minDistances2[i][0]<=4*radius*radius)
{
j=minDistances2[i][1];
int temp;
temp=ball_vx[i];ball_vx[i]=ball_vx[j];ball_vx[j]=temp;
temp=ball_vy[i];ball_vy[i]=ball_vy[j];ball_vy[j]=temp;
minDistances2[j][0]=999999999;
minDistances2[j][1]=-1;
}
}
//回执绿色的圆
setcolor(YELLOW);
setfillcolor(GREEN);
for(i=0;i<BallNum;i++)
fillcircle(ball_x[i], ball_y[i], radius);
四·界面展示


五·代码托管链接:
https://gitee.com/djh000/djh000/commit/937d05be39ddce1406943cbb2ba0f11ca93833fe
六·实验总结
该实验时在C++6.0里面完成的,起初对实验步骤流程不是特别清楚,但后来发现
和前面的游戏差不多,绿色小球每移动位置,前面位置就要变成黑色,这个有彩色
带入对那些大型游戏很好,不那么孤单,看起来就非常有感觉,增加兴趣。
C语言第四次实验报告的更多相关文章
- 20145330《Java程序设计》第四次实验报告
20145330<Java程序设计>第四次实验报告 实验四 Android环境搭建 实验内容 1.搭建Android环境 2.运行Android 3.修改代码,能输出学号 实验步骤 搭建A ...
- 20145320《Java程序设计》第四次实验报告
20145320<Java程序设计>第四次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.26 15: ...
- 20145240 《Java程序设计》第四次实验报告
20145240 <Java程序设计>第四次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.26 实验 ...
- 20145238-荆玉茗 《Java程序设计》第四次实验报告
20145238<Java程序设计>第四次实验报告 实验四 Android环境搭建 实验内容 1.搭建Android环境 2.运行Android 3.修改代码,能输出学号 实验步骤 搭建A ...
- 第六周学习总结&第四次实验报告
第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...
- 南京邮电大学java第四次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 6 月 ...
- 2019JAVA第四次实验报告
JAVA实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019/9/29 评分等级 实验四 类的继承 1.实验目的 掌握类的继承方法: 变量的继承和覆盖,方法的继承.重载和 ...
- C语言第四次实验
这次实验共计7道题目 以下代码亲测无误 1.用选择排序法,键盘输入10个整数,对10个整数进行排序(升序) 1.第一种思路就是常规思路,输入--排序--输出 源代码如下: //常规思路,输入,排序,输 ...
- java第四次实验报告
课程:Java程序与设计 班级:1352 姓 名:池彬宁 小组成员: 20135212池彬宁 20135208贺邦 学号:20135212 成绩: 指导教师:娄嘉鹏 ...
随机推荐
- transform(转https://blog.csdn.net/qq_24189933/article/details/79293870)
transform 前面我们一起学习了CSS3中的渐变.圆角.阴影等几个属性的使用,今天开始我们一起来学习有关于CSS3制作动画的几个属性:变形(transform).转换(transition)和动 ...
- HNUST-1148 ACM ranking rules(简单模拟)
1148: ACM ranking rules 时间限制: 1 Sec 内存限制: 128 MB提交: 16 解决: 12[提交][状态][讨论版] 题目描述 ACM contests, like ...
- vim学习(二)之模式
vim模式 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode). 命令模式: 用户刚刚启 ...
- js,el表达式,<c:if>
<c:if>中只能有一个判断语句,但是可以在一个el表达式中写多个判断条件 例: <c:if test="${fn:length(item.work_detail.note ...
- 4种vue当中的指令和它的用法
1.v-if:判断是否隐藏 2.v-for:数据循环 3.v-bind:class:绑定一个属性 4.v-model:实现数据双向绑定 这里重点说明一个v-if和v-show的区别: 共同点:都是通过 ...
- spring-cloud学习BUG
1.com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: c ...
- Redis重新配置集群
如果要重新配置集群,先停止集群,然后将cluster-config-file配置的所有文件删除,再重新启动集群,就可以重新配置集群 如果提示[ERR] Node 192.168.2.17:7000 i ...
- pycharm 激激活码
pycharm 激活码 [20191224亲测可用] http://lookdiv.com/neet/youd/codes.html
- Delphi 基于组件的编程思想
- 基于centos7,python3.7新建第一个Django项目
为了能更好的了解到整个网站的服务情况,需要了解前端,后端之间的联系,这时候就得需要用到Django框架,基于Django自身带的模板,它可以更好的接收用户发出请求,接下来讲解一下新建第一个Django ...