推箱子,推推推(课程设计)
来源:互联网 发布:hdmi能传输数据么 编辑:程序博客网 时间:2024/04/29 12:23
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int vicWIN(char Map[10][10])
{
int N,M;
for(N=0; N!=10; N++)
for(M=0; M!=10; M++)
{
if(Map[N][M]==79||Map[N][M]==37)
{
return 0;}
else if(N==9&&M==9)
return 1;
}
}
int WIN()
{
char a;
while(1){
printf("you win!!!\n是否进入下一关?\n");
printf("任意键继续");
a=getch();
if(a!='*'){
system("cls");
break;}}
return 1;
}
int Move(char map[10][10],int i,int j)
{
int k,n,m,i_=i,j_=j;
char move,ymap[10][10];
for(n=0;n!=10;n++)
for(m=0;m!=10;m++)
ymap[n][m]=map[n][m];//保留原始图
while(1)
{
for(n=0;n!=10;n++){
for(m=0;m!=10;m++)
printf("%c",map[n][m]);
printf("\n");}
move=getch();
//移动处理//
if(move=='d')
{
if(map[i][j]==37&&map[i][j+1]==32)
{
map[i][j]=79;
map[i][j+1]=36;
j=j+1;
}
else if(map[i][j+1]==32)
{
map[i][j]=32;
map[i][j+1]=36;
j=j+1;
}
else if(map[i][j+1]==79&&map[i][j]!=37)
{
map[i][j]=32;
map[i][j+1]=37;
j=j+1;
}
else if(map[i][j+1]==79&&map[i][j]==37)
{
map[i][j]=79;
map[i][j+1]=37;
j=j+1;
}
else if(map[i][j+1]==97)
{
if(map[i][j+2]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j+1]=36;
map[i][j+2]=97;
j=j+1;
}
else if(map[i][j+2]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j+1]=36;
map[i][j+2]=64;
j=j+1;
}}
else if(map[i][j+1]==64)
{
if(map[i][j+2]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j+1]=37;
map[i][j+2]=97;
j=j+1;
}
else if(map[i][j+2]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j+1]=37;
map[i][j+2]=64;
j=j+1;
}
}}
else if(move=='a')
{if(map[i][j]==37&&map[i][j-1]==32)
{
map[i][j]=79;
map[i][j-1]=36;
j=j-1;
}
else
if(map[i][j-1]==32)
{
map[i][j]=32;
map[i][j-1]=36;
j=j-1;
}
else if(map[i][j-1]==79&&map[i][j]!=37)
{
map[i][j]=32;
map[i][j-1]=37;
j=j-1;
}
else if(map[i][j-1]==79&&map[i][j]==37)
{
map[i][j]=79;
map[i][j-1]=37;
j=j-1;
}
else if(map[i][j-1]==97)
{
if(map[i][j-2]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j-1]=36;
map[i][j-2]=97;
j=j-1;
}
else if(map[i][j-2]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j-1]=36;
map[i][j-2]=64;
j=j-1;
}}
else if(map[i][j-1]==64)
{
if(map[i][j-2]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j-1]=37;
map[i][j-2]=97;
j=j-1;
}
else if(map[i][j-2]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i][j-1]=37;
map[i][j-2]=64;
j=j-1;
}}
}
else if(move=='w')
{if(map[i][j]==37&&map[i-1][j]==32)
{
map[i][j]=79;
map[i-1][j]=36;
i=i-1;
}
else
if(map[i-1][j]==32)
{
map[i][j]=32;
map[i-1][j]=36;
i=i-1;
}
else if(map[i-1][j]==79&&map[i][j]!=37)
{
map[i][j]=32;
map[i-1][j]=37;
i=i-1;
}
else if(map[i-1][j]==79&&map[i][j]==37)
{
map[i][j]=79;
map[i-1][j]=37;
i=i-1;
}
else if(map[i-1][j]==97)
{
if(map[i-2][j]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i-1][j]=36;
map[i-2][j]=97;
i=i-1;
}
else if(map[i-2][j]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i-1][j]=36;
map[i-2][j]=64;
i=i-1;
}}
else if(map[i-1][j]==64)
{
if(map[i-2][j]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i-1][j]=37;
map[i-2][j]=97;
i=i-1;
}
else if(map[i-2][j]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i-1][j]=37;
map[i-2][j]=64;
i=i-1;
}
}}
else if(move=='s')
{if(map[i][j]==37&&map[i+1][j]==32)
{
map[i][j]=79;
map[i+1][j]=36;
i=i+1;
}
else
if(map[i+1][j]==32)
{
map[i][j]=32;
map[i+1][j]=36;
i=i+1;
}
else if(map[i+1][j]==79&&map[i][j]!=37)
{
map[i][j]=32;
map[i+1][j]=37;
i=i+1;
}
else if(map[i+1][j]==79&&map[i][j]==37)
{
map[i][j]=79;
map[i+1][j]=37;
i=i+1;
}
else if(map[i+1][j]==97)
{
if(map[i+2][j]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i+1][j]=36;
map[i+2][j]=97;
i=i+1;
}
else if(map[i+2][j]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i+1][j]=36;
map[i+2][j]=64;
i=i+1;
}}
else if(map[i+1][j]==64)
{
if(map[i+2][j]==32)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i+1][j]=37;
map[i+2][j]=97;
i=i+1;
}
else if(map[i+2][j]==79)
{
if(map[i][j]==36)
map[i][j]=32;
else
map[i][j]=79;
map[i+1][j]=37;
map[i+2][j]=64;
i=i+1;
}
}}
else if(move=='r'||'R')//想要重新开始的方法
{i=i_,j=j_;
for(n=0;n!=10;n++)
for(m=0;m!=10;m++)
map[n][m]=ymap[n][m];//将原图重新赋给已经变化的图
}
system("cls");
k=vicWIN(map);
if(k==1)
break;
}
return k;
}
void T5()
{
int I=5,J=3,IF,B;
char map1[10][10]={{35,35,35,35,35,35,35,35,32,32},
{35,35,32,32,32,32,35,35,32,32},
{35,35,79,35,35,97,32,35,32,32},
{35,32,79,79,97,32,32,35,32,32},
{35,32,32,35,97,32,32,35,32,32},
{35,32,32,36,32,35,35,35,32,32},
{35,32,35,35,35,35,32,32,32,32},
{32,32,32,32,32,32,32,35,32,32},
{32,35,32,32,32,32,35,32,35,32},
{32,32,32,32,32,32,32,32,32,32}};
IF=Move(map1,I,J);
if(IF==1)
B=WIN();
if(B==1)
printf("end");
return;
}
void T4()
{
int I=5,J=2,IF,B;
char map1[10][10]={{35,35,35,35,35,32,32,32,32,32},
{35,32,32,32,35,35,35,35,35,32},
{35,32,35,32,35,32,32,32,35,32},
{35,32,97,32,32,32,97,32,35,32},
{35,79,79,35,97,35,97,35,35,32},
{35,79,36,97,32,32,32,35,32,32},
{35,79,79,32,32,35,35,35,32,32},
{35,35,35,35,35,35,35,35,32,32},
{35,35,35,35,35,32,32,32,32,32},
{32,32,32,32,32,32,32,32,32,32}};
IF=Move(map1,I,J);
if(IF==1)
B=WIN();
if(B==1)
T5();
return;
}
void T3()
{
int I=5,J=5,IF,B;
char map1[10][10]={{35,32,32,35,35,35,35,32,32,32},
{35,35,35,35,32,32,35,32,32,32},
{35,35,32,32,97,32,35,32,32,32},
{35,32,79,97,79,32,35,32,32,32},
{35,32,32,32,35,32,35,35,32,32},
{35,35,79,35,79,36,32,35,32,32},
{35,32,97,32,32,97,32,35,32,32},
{35,32,32,32,35,35,35,35,32,32},
{35,35,35,35,35,32,32,32,32,32},
{32,32,32,32,32,32,32,32,32,32}};
IF=Move(map1,I,J);
if(IF==1)
B=WIN();
if(B==1)
T4();
return;
}
void T2()
{
int I=4,J=8,IF,B;
char map1[10][10]={{35,35,35,35,35,35,35,35,35,35},
{35,32,32,35,35,35,35,35,35,35},
{35,35,35,35,32,32,32,32,35,35},
{35,35,79,32,97,35,35,32,35,35},
{35,79,79,97,32,97,32,32,36,35},
{35,79,79,32,97,32,97,32,35,35},
{35,35,35,35,35,35,32,32,35,35},
{35,32,32,32,32,35,35,35,35,35},
{35,35,35,35,35,35,35,35,35,35},
{35,35,35,35,35,35,35,35,35,35}};
IF=Move(map1,I,J);
if(IF==1)
B=WIN();
if(B==1)
T3();
return;
}
void T1()
{
int I=7,J=7,IF,B;
char map1[10][10]={{35,35,35,35,35,35,35,35,35,35},
{35,32,32,32,35,35,32,35,35,35},
{35,32,35,97,35,79,32,35,35,35},
{35,32,32,32,32,32,32,32,79,35},
{35,32,32,35,35,32,35,32,32,35},
{35,32,97,35,35,32,35,97,35,35},
{35,32,32,32,32,32,35,32,32,35},
{35,35,35,35,32,79,35,36,32,35},
{35,35,35,35,35,35,35,35,35,35},
{35,35,35,35,35,35,35,35,35,35}};
IF=Move(map1,I,J);
if(IF==1)
B=WIN();
if(B==1)
T2();
return;
}
int main()
{
char change;
while (1)
{
printf(" 推箱子\n");
printf("你需要把代表箱子的a推到O中去使之成为@,当你无法行动时可以按R键重新开始本关\n");
printf("W是向上,S是向下,A是向左,D是向右。按任意键开始\n");
change=getch();
if(change!='*');
{
system("cls");
T1();
break;
}
}
return 0;
}
啊啊啊啊!我不敢看!
- 推箱子,推推推(课程设计)
- JAVA课程设计 推箱子小游戏
- 推箱子(右)
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 【推箱子】
- 推箱子
- 推箱子
- 推箱子
- #include<algorithm>
- fastboot命令基本用法
- 动态代理与AOP
- B树和hash的区别与联系
- ArcGIS js FeatureLayer加载失败原因
- 推箱子,推推推(课程设计)
- Yii2.0高级框架数据库增删改查的一些操作(转)
- 利用Android的Camera类实现3D旋转功能
- @QueryRequestParam:参数注解。
- 关于SQL中的时间问题
- 一个java程序员的ubuntu系统环境
- OPENCV循环显示视频
- MyBatis缓存
- php把一维数组,分为每3个连续的为一组的多维数组