项目: 推箱子游戏c/c++
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目: 推箱子游戏c/c++相关的知识,希望对你有一定的参考价值。
很早之前写的一个推箱子的游戏
最终效果
代码
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<Windows.h>
#include<conio.h>
int map[8][8]={
1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,1,
1,3,1,1,0,1,3,1,
1,0,1,1,0,1,0,1,
1,0,0,4,0,0,4,1,
1,0,1,1,1,5,0,1,
1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1
};
void printf_map(int map[][8])
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
switch(map[i][j])
{
case 0:
printf(" ");//两个空格,代表路
break;
case 1:
printf("■");//代表墙
break;
case 3:
printf("☆");//目的地
break;
case 4:
printf("★");//箱子
break;
case 5:
case 8:
printf("λ");//人
break;
case 7:
printf("◎");//箱子推进了目的地
break;
}
}
printf("\\n");
}
}
//按键交互
void keydown()
{
int i,j;
//找到人的位置
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(map[i][j]==5||map[i][j]==8)
{
break;
}
}
if(map[i][j]==5||map[i][j]==8)
{
break;
}
}
char userkey=_getch();
switch(userkey)
{
case'w':
case'W':
case 72:
//只是人走
if(map[i-1][j]==0||map[i-1][j]==3)
{
map[i-1][j]+=5;//移动到的位置加5
map[i][j]-=5;//原来位置减5
}
//人推箱子走
if(map[i-1][j]==4||map[i-1][j]==7)
{
//箱子移动的条件
if(map[i-2][j]==0||map[i-2][j]==3)
{
map[i-2][j]+=4;//箱子来了
map[i-1][j]+=1;//箱子走了,人来了
map[i][j]-=5;//人走了
}
}
break;
case's':
case'S':
case 80:
//只是人走
if(map[i+1][j]==0||map[i+1][j]==3)
{
map[i+1][j]+=5;//移动到的位置加5
map[i][j]-=5;//原来位置减5
}
//人推箱子走
if(map[i+1][j]==4||map[i+1][j]==7)
{
//箱子移动的条件
if(map[i+2][j]==0||map[i+2][j]==3)
{
map[i+2][j]+=4;//箱子来了
map[i+1][j]+=1;//箱子走了,人来了
map[i][j]-=5;//人走了
}
}
break;
case'a':
case'A':
case 75:
//只是人走
if(map[i][j-1]==0||map[i][j-1]==3)
{
map[i][j-1]+=5;//移动到的位置加5
map[i][j]-=5;//原来位置减5
}
//人推箱子走
if(map[i][j-1]==4||map[i][j-1]==7)
{
//箱子移动的条件
if(map[i][j-2]==0||map[i][j-2]==3)
{
map[i][j-2]+=4;//箱子来了
map[i][j-1]+=1;//箱子走了,人来了
map[i][j]-=5;//人走了
}
}
break;
case'd':
case'D':
case 77:
//只是人走
if(map[i][j+1]==0||map[i][j+1]==3)
{
map[i][j+1]+=5;//移动到的位置加5
map[i][j]-=5;//原来位置减5
}
//人推箱子走
if(map[i][j+1]==4||map[i][j+1]==7)
{
//箱子移动的条件
if(map[i][j+2]==0||map[i][j+2]==3)
{
map[i][j+2]+=4;//箱子来了
map[i][j+1]+=1;//箱子走了,人来了
map[i][j]-=5;//人走了
}
}
break;
}
}
int main(void)
{
system("title 推箱子游戏中");
while(1)
{
printf_map(map);
keydown();
system("cls");
}
return 0;
}
以上是关于项目: 推箱子游戏c/c++的主要内容,如果未能解决你的问题,请参考以下文章