该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/* 在屏幕上放一个炸弹,位置为放弹人的位置 */

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语言,重发一次,带注释的泡泡模拟程序!相关推荐

  1. c语言求玫瑰花数带注释,新人 用C语言画一朵玫瑰

    当前位置:我的异常网» C语言 » 新人 用C语言画一朵玫瑰 新人 用C语言画一朵玫瑰 www.myexceptions.net  网友分享于:2013-12-03  浏览:51次 新人求助 用C语言 ...

  2. 注释代码c语言,C/C++ 源文件删除注释代码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include enum { s_normal, s_string, s_string_conv, s_linecomment, s_linecomme ...

  3. 词法分析器c语言带注释,C语言词法分析器内容说明注释完整可运行代码.doc-资源下载在线文库www.lddoc.cn...

    C语言词法分析器_内容说明注释完整_可运行代码.doc 1. 实验目的及要求 本次实验通过用 C 语言 设计.编制.调试一个词法分析子程序,识别单词,实现一个 C 语言词法分析器,经过此过程可以加深对 ...

  4. R语言数据包自带数据集之survival包的lung数据集字段解释、数据导入实战

    R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之survival包的lung数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导 ...

  5. 用C语言Linux下打印带颜色的字符串

    用C语言Linux下打印带颜色的字符串 字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色  字颜色:30---------- ...

  6. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  7. C语言 学生成绩管理系统 带登录界面

    C语言 学生成绩管理系统 带登录界面 C语言课程设计 思路 部分展示 代码片段 C语言课程设计 先上要求: 思路 为了方便简单,直接利用结构体数组来存储学生学生,最后根据功能编写函数即可. 部分展示 ...

  8. R语言数据包自带数据集之ISwR包的melanom数据集字段解释、数据导入实战

    R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ISwR包的melanom数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数 ...

  9. R语言数据包自带数据集之survival包的colon数据集字段解释、数据导入实战

    R语言数据包自带数据集之survival包的colon数据集字段解释.数据导入实战 #数据字段说明 colon数据集:B/C期结肠癌辅助化疗治疗数据 d # 患者编号 study # 所有患者都是1 ...

  10. R语言数据包自带数据集之ToothGrowth数据集字段解释、数据导入实战

    R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 目录 R语言数据包自带数据集之ToothGrowth数据集字段解释.数据导入实战 #数据字段说明 #导入包 #导入数据 #数 ...

最新文章

  1. java servlet 多线程_Servlet的多线程和线程安全
  2. 【火炉炼AI】机器学习013-用朴素贝叶斯分类器估算个人收入阶层
  3. 前端学习(3253):vs code中组件化编码
  4. XenCenter建立SR存储库,添加系统ISO镜像源
  5. Unity 自定义扩展Hierachy右键菜单
  6. Cesium图形绘制
  7. python编程输入圆柱_C语言编程:已知圆半径及圆柱高,求圆周长,圆柱体积.要求对输入输出做提示.各位大神帮帮忙,可怜可怜我吧!编写一个c语言程序,要求输入圆...
  8. 计算机科学家刘欣,科学家都爱啥运动?
  9. 前端技术之babel转码器
  10. Problem B: 小度挑战赛
  11. 暑假集训 ---- 字符串2 (SAM专题)
  12. 哨兵2号(Sentinel-2)卫星数据批量处理
  13. mos 控制交流_功率半导体器件之MOS晶体管
  14. js代码中用单个字母命名
  15. 代码工人还是程序员?
  16. 中国电脑教育报:搜索引擎十年有多少故事
  17. 计算机组成原理-组成篇(上)
  18. ABAP修改Domain域值
  19. 智能货架是零售业的必经之路,普通人入局新零售有机会
  20. 什么是REST ? 什么是RESTful?

热门文章

  1. 计算机进化阶段,进化计算
  2. 利用牛顿迭代公式开方
  3. 分享几个免费的根据IP 获取地址的链接
  4. word2016标题序号变黑色竖线解决方法
  5. word||标题序号和标题内容间隔很大
  6. 读书笔记 | 国富论(卷一)
  7. 读 Paxos 到 ZooKeeper ¥ 50大洋
  8. html表格复制最后一行字,为什么Word中的表格输入文字最后一行文字会自动跳到下一页...
  9. android11.0 Launcher3 高端定制之抽屉列表隐藏指定APP图标
  10. xcode清理缓存瘦身方法整理