dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>C语言教程>文章内容
c语言 最简单的推箱子游戏
来源:网络 作者:佚名
/* WIN-TC BGI 图形编程模板..简单的推箱子游戏适合初学者学习 */

 

#include "Conio.h"
#include "graphics.h"
#define closegr closegraph

void initgr(void) /* BGI初始化 */
{
  int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
  registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
  initgraph(&gd, &gm, "");
}

int main(void)
{
  int c;
  int fx,fy;
  int x=9;
  int y=9;
  int path[20][20]={
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,
 1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,
 1,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1,
 1,0,0,0,0,0,1,1,1,8,0,0,0,0,1,0,0,0,0,1,
 1,0,0,0,0,0,1,0,0,0,1,8,1,0,1,0,0,0,0,1,
 1,0,0,0,0,0,1,0,8,0,1,0,0,0,1,0,0,0,0,1,
 1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0,0,1,
 1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

 };
  initgr(); /* BGI初始化 */

    /*****此部分添加你自己的代码,例如
  line(25, 25, 220, 220);
  circle(100, 100, 50);
  等等*****/
 /* for (fx=0;fx<20;fx++)  //双循环画地图
  {
  for (fy=0;fy<20;fy++)
  {
   if (path[fx][fy]==1) {circle(fy*10+100, fx*10+100,5);}    //数组的地址[x][y]与地图circle(y,x,5) 中的x,y相反?
 if (path[fx][fy]==8) {circle(fy*10+100, fx*10+100,1);}
    if (path[fx][fy]==9) {circle(fy*10+100, fx*10+100,2);}

 

 

  }
  }
  */

sw:
 c=getch();
 switch(c)
{
case 'w':{

if (path[x-1][y]==0)
{path[x][y]=0;
x=x-1;
path[x][y]=5;
}
if (path[x-1][y]==8&&path[x-2][y]!=1&&path[x-2][y]!=8)
{path[x][y]=0;
 x=x-1;
 path[x][y]=5;
 path[x-1][y]=8;
 }


}
break;
case 's':{


if (path[x+1][y]==0)
{path[x][y]=0;
x=x+1;
path[x][y]=5;
}
if (path[x+1][y]==8&&path[x+2][y]!=1&&path[x+2][y]!=8)
{path[x][y]=0;
 x=x+1;
 path[x][y]=5;
 path[x+1][y]=8;
 }


}
break;
case 'a':{

if (path[x][y-1]==0)
 {path[x][y]=0;
 y=y-1;
 path[x][y]=5;
 }
 if (path[x][y-1]==8&&path[x][y-2]!=1&&path[x][y-2]!=8)
{path[x][y]=0;
 y=y-1;
 path[x][y]=5;
 path[x][y-1]=8;
 }
 }
break;
case 'd':
{

if (path[x][y+1]==0)
 {path[x][y]=0;
 y=y+1;
 path[x][y]=5;
 }
 if (path[x][y+1]==8&&path[x][y+2]!=1&&path[x][y+2]!=8)
{path[x][y]=0;
 y=y+1;
 path[x][y]=5;
 path[x][y+1]=8;
 }

 

 

 }
break;
case 'q': exit();
}
//if (path[x][y+1]==8)exit();
//if (path[x][y-1]==8)exit();
//if (path[x+1][y]==8)exit();
//if (path[x-1][y]==8)exit();
//if(path[18][18]==0&&path[4][1]==1) goto dn;
cleardevice();

 

 

 for (fx=0;fx<20;fx++)  //双循环画地图
  {
  for (fy=0;fy<20;fy++)
  {
   if (path[fx][fy]==1) {circle(fy*10+100, fx*10+100,5);}    //数组的地址[x][y]与地图circle(y,x,5) 中的x,y相反?
  if (path[fx][fy]==8) {circle(fy*10+100, fx*10+100,1);}
 if (path[fx][fy]==5) {circle(fy*10+100, fx*10+100,3);}

  }
  }
  if (path[8][10]!=8&&path[8][10]!=5) {circle(10*10+100, 8*10+100,2);}  //判断是否推抵?
  if (path[8][11]!=8&&path[8][11]!=5) {circle(11*10+100, 8*10+100,2);}
  if (path[8][12]!=8&&path[8][12]!=5) {circle(12*10+100, 8*10+100,2);}
  if (path[8][10]==8&&path[8][11]==8&&path[8][12]==8) goto dn;

goto sw;
  dn: /* 暂停一下,看看前面绘图代码的运行结果 */

  closegr(); /* 恢复TEXT屏幕模式 */
  //outtextxy(200,200,"sadfasfasfsafsaf");
  printf("ok ,,you win the game!!");
  getch(); 
  return 0;
}

 

我编的推箱子游戏原创拉..。。。。


上一篇:Java的文件 读和写   下一篇:c语言 全国计算机编程大赛复赛试题1
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·c语言 全国计算机编程大赛复赛试
·c语言 全国计算机编程大赛复赛试
·编译指示指令
·C语言基础07-C语言中的关键字
·C语言基础06-逻辑运算符和逻辑表
·C语言基础05-运算符和表达式
·C语言入门之分支结构04-2
·C语言入门之分支结构04-1
·C语言基础03-先学2个库函数
·C语言基础02-数据类型、运算符与
·C语言基础01-引言及预备知识
·C语言入门之数组(1)
  相关文章
·c语言 全国计算机编程大赛复赛试
·c语言 全国计算机编程大赛复赛试
·编译指示指令
·C语言基础07-C语言中的关键字
·C语言基础06-逻辑运算符和逻辑表
·C语言基础05-运算符和表达式
·C语言入门之分支结构04-2
·C语言入门之分支结构04-1
·C语言基础03-先学2个库函数
·C语言基础02-数据类型、运算符与
·C语言基础01-引言及预备知识
·C语言入门之数组(1)
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763