基本信息
源码名称:c++ 推箱子(控制台小游戏)
源码大小:5.78KB
文件格式:.cpp
开发语言:C/C++
更新时间:2019-05-21
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元×
微信扫码支付:1 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
推箱子
{6,7},
{7,7},
{6,7},
{6,7},
{8,9},
{6,8},
{8,9},
{8,9}};
int x[101]={3,
4, 1, 6, 3, 5, 7, 5, 7, 6}; int y[101]={1,
8, 5, 3, 1, 4, 7, 3, 7, 5}; int X[101]={3,
4, 1, 6, 3, 5, 7, 5, 7, 6}; int Y[101]={1,
8, 5, 3, 1, 4, 7, 3, 7,
5};
char ch;
int way;
void main_print(){
while(true)
{
system("cls");
printf(" 主菜单\n");
for(int i=1;i<=10;i )
{
if(game==i)
printf(" >> %d关 ",i 9);
else
printf(" %d关 ",i 9);
if(b[i]==true)
printf("已通过 ");
else
printf("未通过 ");
printf("最高纪录:%d步\n",MAX[i]);
}
ch=getch();
if(ch=='s' || ch=='S')
{
if(game<=9)
game ;
}
else if(ch=='w' || ch=='W')
{
if(game>=2)
game--;
}
else if(ch==' ')
break;
}
}
bool check(int i,int j){
for(int number=1;number<=all[game-1];number )
if(under[game-1][number-1][0]==j && under[game-1][number-1][1]==i)
return true;
return false;
}
void OK(){
total=0;
for(int i=0;i<=length[game-1][0];i )
for(int j=0;j<=length[game-1][1];j )
if(check(i,j)==true)
if(map[game-1][i][j]=='Z')
total ;
}
void map_print(){
system("cls");
for(int i=0;i<=length[game-1][0];i )
{
for(int j=0;j<=length[game-1][1];j )
{
if(check(i,j)==true)
{
if(map[game-1][i][j]=='H')
printf("①");
else if(map[game-1][i][j]=='Z')
printf("㊣");
else if(map[game-1][i][j]=='.' || map[game-1][i][j]=='*')
printf("★");
}
else
{
if(map[game-1][i][j]=='H')
printf("①");
else if(map[game-1][i][j]=='Z')
printf("□");
else if(map[game-1][i][j]=='.')
printf(" ");
else if(map[game-1][i][j]=='*')
printf("★");
else if(map[game-1][i][j]=='#')
printf("█");
else if(map[game-1][i][j]==' ')
printf(" ");
}
}
printf("\n");
}
OK();
}
void move(){
ch=getch();
if(ch=='w' || ch=='W')
way=0;
else if(ch=='s' || ch=='S')
way=1;
else if(ch=='a' || ch=='A')
way=2;
else if(ch=='d' || ch=='D')
way=3;
else if(ch==' ')
{
main_print();
return;
}
else
{
for(int i=0;i<=length[game-1][0];i )
strcpy(map[game-1][i],MAP[game-1][i]);
x[game-1]=X[game-1];
y[game-1]=Y[game-1];
step=0;
map_print();
return;
}
if(map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]=='.' || map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]=='*')
{
map[game-1][x[game-1]][y[game-1]]='.';
map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]='H';
x[game-1] =zl[way][0];
y[game-1] =zl[way][1];
step ;
}
else if(map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]=='Z' && map[game-1][x[game-1] zl[way][0] zl[way][0]][y[game-1] zl[way][1] zl[way][1]]!='Z' && map[game-1][x[game-1] zl[way][0] zl[way][0]][y[game-1] zl[way][1] zl[way][1]]!='#')
{
map[game-1][x[game-1]][y[game-1]]='.';
map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]='H';
map[game-1][x[game-1] zl[way][0] zl[way][0]][y[game-1] zl[way][1] zl[way][1]]='Z';
x[game-1] =zl[way][0];
y[game-1] =zl[way][1];
step ;
}
map_print();
}
void print(){
for(int t=1;t<=5;t )
{
for(int i=0;Chinese[i];i =2)
{
cout<<Chinese[i]<<Chinese[i 1];
Sleep(50);
}
system("cls");
}
system("cls");
}
int main(){
system("color 6");
print();
while(true)
{
bool p=false;
main_print();
while(game<=10)
{
map_print();
while(total!=all[game-1])
{
move();
if(p==true)
break;
}
推箱子
int length[101][2]={{6,7},
{5,11},{6,7},
{7,7},
{6,7},
{6,7},
{8,9},
{6,8},
{8,9},
{8,9}};
int x[101]={3,
4, 1, 6, 3, 5, 7, 5, 7, 6}; int y[101]={1,
8, 5, 3, 1, 4, 7, 3, 7, 5}; int X[101]={3,
4, 1, 6, 3, 5, 7, 5, 7, 6}; int Y[101]={1,
8, 5, 3, 1, 4, 7, 3, 7,
5};
char ch;
int way;
void main_print(){
while(true)
{
system("cls");
printf(" 主菜单\n");
for(int i=1;i<=10;i )
{
if(game==i)
printf(" >> %d关 ",i 9);
else
printf(" %d关 ",i 9);
if(b[i]==true)
printf("已通过 ");
else
printf("未通过 ");
printf("最高纪录:%d步\n",MAX[i]);
}
ch=getch();
if(ch=='s' || ch=='S')
{
if(game<=9)
game ;
}
else if(ch=='w' || ch=='W')
{
if(game>=2)
game--;
}
else if(ch==' ')
break;
}
}
bool check(int i,int j){
for(int number=1;number<=all[game-1];number )
if(under[game-1][number-1][0]==j && under[game-1][number-1][1]==i)
return true;
return false;
}
void OK(){
total=0;
for(int i=0;i<=length[game-1][0];i )
for(int j=0;j<=length[game-1][1];j )
if(check(i,j)==true)
if(map[game-1][i][j]=='Z')
total ;
}
void map_print(){
system("cls");
for(int i=0;i<=length[game-1][0];i )
{
for(int j=0;j<=length[game-1][1];j )
{
if(check(i,j)==true)
{
if(map[game-1][i][j]=='H')
printf("①");
else if(map[game-1][i][j]=='Z')
printf("㊣");
else if(map[game-1][i][j]=='.' || map[game-1][i][j]=='*')
printf("★");
}
else
{
if(map[game-1][i][j]=='H')
printf("①");
else if(map[game-1][i][j]=='Z')
printf("□");
else if(map[game-1][i][j]=='.')
printf(" ");
else if(map[game-1][i][j]=='*')
printf("★");
else if(map[game-1][i][j]=='#')
printf("█");
else if(map[game-1][i][j]==' ')
printf(" ");
}
}
printf("\n");
}
OK();
}
void move(){
ch=getch();
if(ch=='w' || ch=='W')
way=0;
else if(ch=='s' || ch=='S')
way=1;
else if(ch=='a' || ch=='A')
way=2;
else if(ch=='d' || ch=='D')
way=3;
else if(ch==' ')
{
main_print();
return;
}
else
{
for(int i=0;i<=length[game-1][0];i )
strcpy(map[game-1][i],MAP[game-1][i]);
x[game-1]=X[game-1];
y[game-1]=Y[game-1];
step=0;
map_print();
return;
}
if(map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]=='.' || map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]=='*')
{
map[game-1][x[game-1]][y[game-1]]='.';
map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]='H';
x[game-1] =zl[way][0];
y[game-1] =zl[way][1];
step ;
}
else if(map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]=='Z' && map[game-1][x[game-1] zl[way][0] zl[way][0]][y[game-1] zl[way][1] zl[way][1]]!='Z' && map[game-1][x[game-1] zl[way][0] zl[way][0]][y[game-1] zl[way][1] zl[way][1]]!='#')
{
map[game-1][x[game-1]][y[game-1]]='.';
map[game-1][x[game-1] zl[way][0]][y[game-1] zl[way][1]]='H';
map[game-1][x[game-1] zl[way][0] zl[way][0]][y[game-1] zl[way][1] zl[way][1]]='Z';
x[game-1] =zl[way][0];
y[game-1] =zl[way][1];
step ;
}
map_print();
}
void print(){
for(int t=1;t<=5;t )
{
for(int i=0;Chinese[i];i =2)
{
cout<<Chinese[i]<<Chinese[i 1];
Sleep(50);
}
system("cls");
}
system("cls");
}
int main(){
system("color 6");
print();
while(true)
{
bool p=false;
main_print();
while(game<=10)
{
map_print();
while(total!=all[game-1])
{
move();
if(p==true)
break;
}