泡泡代码c语言,重发一次,带注释的泡泡模拟程序!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/* 在屏幕上放一个炸弹,位置为放弹人的位置 */
putimage(ball[i].x*30,ball[i].y*30,tu[1],0);
map[ball[i].x][ball[i].y]=20+i;
}
/***********************
产生炸弹的动态显示
*************************/
DrawZaDan()
{int i;
for (i=0;i<10;i++)
{if (ball[i].used==0)continue;/* 如果炸弹末使用继续循环*/
if (ball[i].page<4)/* 如果炸弹帧数<4,帧数加1,直接在炸弹位置放下一帧*/
{ball[i].page++;
putimage(ball[i].x*30,ball[i].y*30,tu[ball[i].page],0);
}
else/* 把帧数置为1,清去原图,绘第一帧*/
{ball[i].page=1;
putimage(ball[i].x*30,ball[i].y*30,tu[0],0);
putimage(ball[i].x*30,ball[i].y*30,tu[1],0);
}
}
}
/*****************************
检查是否有该炸的炸弹
如果有则引爆它
****************************/
CheckZaDan()
{
int i,t;
struct time t1;
gettime(&t1);
t=t1.ti_sec;
for (i=0;i<10;i++)
if (ball[i].used==1&&(t+60-ball[i].time)%60>=2&&man[ball[i].man].definetime==0) BaoZa(i);
}
/***********************
定时器引爆炸弹
参数为引爆人的编号
*************************/
DefineZa(int n)
{
int i;
if (man[n].definetime==0) return 0;
for (i=0;i<10;i++)
if (ball[i].used==1&&ball[i].man==n)BaoZa(i);
}
/***************************
产生人的移动效果
其中包括吃东西,推箱子等功能
参数x1,y1为移动的方向
和zaline()相同
mann为要移动人的编号
****************************/
move(int x1 ,int y1,int mann )
{
int fx ,fy,x,y;/*x,y 为现在的位置,fx,fy,存放要移动到的位置*/
x=man[mann].x;/*取要移动人的位置*/
y=man[mann].y;
fx=x+x1;/*要移动到 的位置为*/
fy=y+y1;
if ((fx>=0&&fx=0&&fy
{switch(map[fx][fy])
{ case 0:/*如果要移动到的位置为空*/
putimage(x*BOXLONG,y*BOXLONG,tu[0],0);
putimage(fx*BOXLONG,fy*BOXLONG,tu[11+mann],0);
break;
case 5:/*如果要移动到的位置为定时器*/
putimage(x*BOXLONG,y*BOXLONG,tu[0],0);
putimage(fx*BOXLONG,fy*BOXLONG,tu[11+mann],0);
man[mann].definetime=1;
break;
case 6:/*如果要移动到的位置为爆出的炸弹*/
putimage(x*BOXLONG,y*BOXLONG,tu[0],0);
putimage(fx*BOXLONG,fy*BOXLONG,tu[11+mann],0);
man[mann].maxball++;
break;
case 7:/*如果要移动到的位置为闪电,则*/
putimage(x*BOXLONG,y*BOXLONG,tu[0],0);
putimage(fx*BOXLONG,fy*BOXLONG,tu[11+mann],0);
man[mann].power++;
break;
case 9:/*如果要移动到的位置为可推的箱子,产生推箱效果*/
if(x+x1*2>=0&&x+x1*2=0&&y+y1*2
{putimage((x+x1*2)*BOXLONG,(y+y1*2)*BOXLONG,tu[9],0);
putimage((fx)*BOXLONG,(fy)*BOXLONG,tu[0],0);
putimage((fx)*BOXLONG,(fy)*BOXLONG,tu[mann+11],0);
putimage(x*30,y*30,tu[0],0);
map[x+x1*2][y+y1*2]=9;
map[fx][fy]=mann+11;
map[x][y]=0;
break;}
default:return 0;
}/* end of switch*/
/*移动完毕,修改屏幕数组信息*/
map[x][y]=0;
map[fx][fy]=11+mann;
/*修改移动人的信息*/
man[mann].x=fx;
man[mann].y=fy;
}/*end of if 范围*/
}/* end of funtion*/
GameOver()
{ int i;
/*释放内存空间*/
for(i=0;i<13;i++) if (i!=6) free(tu[i]);
/*关闭图形显示模式*/
closegraph();
/*结束程序*/
exit(1);
}
main()
{
int key=0,oldtime=0;/*K用来保存按键值,oldtime用来计时*/
struct time t1;/*定义一个时间型结构体*/
initgra();/*屏幕初始化*/
draw();/*绘图并保存图像*/
initgame();/*游戏初始化*/
while(1)
{if (bioskey(1)==0)/*没有按键*/
{/*每90百分秒,检测一次炸弹是否到爆炸时间,并重绘一次炸弹,产生动态效果*/
gettime(&t1);
if(t1.ti_hund+100-oldtime>90)
{
CheckZaDan();
DrawZaDan();
}
}else{
/*根据按键值,执行相应功能数*/
key=bioskey(0);
switch(key)
{case UP1: move(0,-1,0);break;
case DOWN1: move(0,1,0);break;
case LEFT1: move(-1,0,0);break;
case RIGHT1:move(1,0,0);break;
case UP2:move(0,-1,1);break;
case DOWN2:move(0,1,1);break;
case LEFT2:move(-1,0,1);break;
case RIGHT2:move(1,0,1);break;
case ENTER:PutZaDan(1);break;
case SPACE:PutZaDan(0);break;
case Z:DefineZa(0);break;
case DEL:DefineZa(1);break;
case ESC: GameOver();break;
}
}
}
}
泡泡代码c语言,重发一次,带注释的泡泡模拟程序!相关推荐
- c语言求玫瑰花数带注释,新人 用C语言画一朵玫瑰
当前位置:我的异常网» C语言 » 新人 用C语言画一朵玫瑰 新人 用C语言画一朵玫瑰 www.myexceptions.net 网友分享于:2013-12-03 浏览:51次 新人求助 用C语言 ...
- 注释代码c语言,C/C++ 源文件删除注释代码
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include enum { s_normal, s_string, s_string_conv, s_linecomment, s_linecomme ...
- 词法分析器c语言带注释,C语言词法分析器内容说明注释完整可运行代码.doc-资源下载在线文库www.lddoc.cn...
C语言词法分析器_内容说明注释完整_可运行代码.doc 1. 实验目的及要求 本次实验通过用 C 语言 设计.编制.调试一个词法分析子程序,识别单词,实现一个 C 语言词法分析器,经过此过程可以加深对 ...
- R语言数据包自带数据集之survival包的lung数据集字段解释、数据导入实战
R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导 ...
- 用C语言Linux下打印带颜色的字符串
用C语言Linux下打印带颜色的字符串 字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色 字颜色:30---------- ...
- c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...
c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...
- C语言 学生成绩管理系统 带登录界面
C语言 学生成绩管理系统 带登录界面 C语言课程设计 思路 部分展示 代码片段 C语言课程设计 先上要求: 思路 为了方便简单,直接利用结构体数组来存储学生学生,最后根据功能编写函数即可. 部分展示 ...
- R语言数据包自带数据集之ISwR包的melanom数据集字段解释、数据导入实战
R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数 ...
- R语言数据包自带数据集之survival包的colon数据集字段解释、数据导入实战
R语言数据包自带数据集之survival包的colon数据集字段解释.数据导入实战 #数据字段说明 colon数据集:B/C期结肠癌辅助化疗治疗数据 d # 患者编号 study # 所有患者都是1 ...
- R语言数据包自带数据集之ToothGrowth数据集字段解释、数据导入实战
R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数据 #数 ...
最新文章
- java servlet 多线程_Servlet的多线程和线程安全
- 【火炉炼AI】机器学习013-用朴素贝叶斯分类器估算个人收入阶层
- 前端学习(3253):vs code中组件化编码
- XenCenter建立SR存储库,添加系统ISO镜像源
- Unity 自定义扩展Hierachy右键菜单
- Cesium图形绘制
- python编程输入圆柱_C语言编程:已知圆半径及圆柱高,求圆周长,圆柱体积.要求对输入输出做提示.各位大神帮帮忙,可怜可怜我吧!编写一个c语言程序,要求输入圆...
- 计算机科学家刘欣,科学家都爱啥运动?
- 前端技术之babel转码器
- Problem B: 小度挑战赛
- 暑假集训 ---- 字符串2 (SAM专题)
- 哨兵2号(Sentinel-2)卫星数据批量处理
- mos 控制交流_功率半导体器件之MOS晶体管
- js代码中用单个字母命名
- 代码工人还是程序员?
- 中国电脑教育报:搜索引擎十年有多少故事
- 计算机组成原理-组成篇(上)
- ABAP修改Domain域值
- 智能货架是零售业的必经之路,普通人入局新零售有机会
- 什么是REST ? 什么是RESTful?