用C语言实现推箱子游戏
Posted 摸爬棍塔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言实现推箱子游戏相关的知识,希望对你有一定的参考价值。
直接上代码,逻辑上没什么难点
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define hang (8)
int main()
char a[50][50]=
" ### ",
" #*# ",
" # # ",
"####o######",
"#* os o *#",
"#####o#####",
" # # ",
" #*# ",
" ### ",
;
int i,x,y,p,q,f;
char ch;
x=4; y=5,f=0;
for(i=0;i<=hang;i++)
puts(a[i]);
printf("已达成:%d ",f);
while(f<4)
ch=getch();
if(ch=='s')
if(a[x+1][y]!='#' && a[x+1][y]!='@') //如果人前面不是墙
if(a[x+1][y]!='o')//如果人前面不是箱子
a[x][y]=' '; //人当前坐标变为空
x++; //更改人坐标
a[x][y]='s'; //新坐标替换为人
else //如果人前面是箱子
if(a[x+2][y]!='#') //如果箱子前面不是墙
if(a[x+2][y]!='*') //如果箱子前面不是目的地
a[x][y]=' '; //人当前坐标变为空
x++; //更改人坐标
a[x][y]='s'; //新坐标替换为人
a[x+1][y]='o' ; //更改箱子坐标
else //如果箱子前面是目的地
a[x][y]=' '; //人当前坐标变为空
x++; //更改人坐标
a[x][y]='s'; //新坐标替换为人
a[x+1][y]='@' ; //箱子到达目的地,更换目的地图案
f=f+1;
if(ch=='w')
if(a[x-1][y]!='#'&&a[x-1][y]!='@')
if(a[x-1][y]!='o')
a[x][y]=' ';
x--;
a[x][y]='s';
else
if(a[x-2][y]!='#')
if(a[x-2][y]!='*')
a[x][y]=' ';
x--;
a[x][y]='s';
a[x-1][y]='o';
else
a[x][y]=' ';
x--;
a[x][y]='s';
a[x-1][y]='@';
f=f+1;
if(ch=='a')
if(a[x][y-1]!='#'&&a[x][y-1]!='@')
if(a[x][y-1]!='o')
a[x][y]=' ';
y--;
a[x][y]='s';
else
if(a[x][y-2]!='#')
if(a[x][y-2]!='*')
a[x][y]=' ';
y--;
a[x][y]='s';
a[x][y-1]='o';
else
a[x][y]=' ';
y--;
a[x][y]='s';
a[x][y-1]='@';
f=f+1;
if(ch=='d')
if(a[x][y+1]!='#'&&a[x][y+1]!='@')
if(a[x][y+1]!='o')
a[x][y]=' ';
y++;
a[x][y]='s';
else
if(a[x][y+2]!='#')
if(a[x][y+2]!='*')
a[x][y]=' ';
y++;
a[x][y]='s';
a[x][y+1]='o';
else
a[x][y]=' ';
y++;
a[x][y]='s';
a[x][y+1]='@';
f=f+1;
system("cls");
for(i=0;i<=hang;i++)
puts(a[i]);
printf("已达成:%d ",f);
Sleep(2000);
system("cls"); //清屏
puts("通关成功!");
system("pause");
return 0;
以上是关于用C语言实现推箱子游戏的主要内容,如果未能解决你的问题,请参考以下文章