C/C++编写推箱子小游戏

本文实例为大家分享了C/C++编写推箱子小游戏的具体代码,供大家参考,具体内容如下

我们用’ #’来代表墙,‘O’来代表箱子,’ * ‘代表终点,‘@’代表箱子已经到达终点,‘S来表示人’。注意:W,A,S,D为方向键,而且要在英文格式下

运行示例:

以下为完整代码:

/*推箱子(示例二)*/#include <stdio.h>#include <stdlib.h>#include <windows.h>#include <conio.h>int main(){ char a[12][12]={"##########",     "##     ###",                    "##O###   #",                    "# S O  O #",                    "# **# O ##",                    "##**#   ##",                    "##########",                   };    int x=3,y=2;    int i;    char ch;    for(i=0;i<7;i++)    puts(a[i]);        while(a[4][2]!='@'||a[4][3]!='@'||a[5][2]!='@'||a[5][3]!='@')    {       ch=getch();     if(ch=='s')     {         if(a[x+1][y]!='#'&&a[x+1][y]!='O'&&a[x+1][y]!='@') //如果只有人,没有箱子       {       a[x][y]=' ';       x++;       a[x][y]='S';   }   else if(a[x+2][y]!='#'&&a[x+1][y]=='O'&&a[x+2][y]!='*') //如果是箱子和人一起走    {    a[x][y]=' ';    x++;    a[x][y]='S';    a[x+1][y]='O';   }   else if(a[x+2][y]!='#'&&(a[x+1][y]=='O'||a[x+1][y]=='@')&&a[x+2][y]=='*') //如果人和箱子一起走,并且前面是终点         {    a[x][y]=' ';    x++;    a[x][y]='S';     a[x+1][y]='@';   }  }    if(ch=='w')     {            if(a[x-1][y]!='#'&&a[x-1][y]!='O'&&a[x-1][y]!='@') //如果只有人,没有箱子       {       a[x][y]=' ';       x--;       a[x][y]='S';          }   else if(a[x-2][y]!='#'&&a[x-1][y]=='O'&&a[x-2][y]!='O') //如果是箱子和人一起走    {    a[x][y]=' ';    x--;    a[x][y]='S';    a[x-1][y]='O';   }   else if(a[x-2][y]!='#'&&(a[x-1][y]=='O'||a[x-1][y]=='@')&&a[x-2][y]=='*')  //如果人和箱子一起走,并且前面是终点         {    a[x][y]=' ';    x--;    a[x][y]='S';     a[x-1][y]='@';   }  }  if(ch=='a')     {            if(a[x][y-1]!='#'&&a[x][y-1]!='O'&&a[x][y-1]!='@') //如果只有人,没有箱子       {       a[x][y]=' ';       y--;       a[x][y]='S';          }   else if(a[x][y-2]!='#'&&a[x][y-1]=='O') //如果是箱子和人一起走    {    a[x][y]=' ';    y--;    a[x][y]='S';    a[x][y-1]='O';   }   else if(a[x][y-2]!='#'&&(a[x][y-1]=='O'||a[x][y-1]=='@')&&a[x][y-2]=='*') //如果人和箱子一起走,并且前面是终点         {    a[x][y]=' ';    y--;    a[x][y]='S';     a[x][y-1]='@';   }  }  if(ch=='d')     {            if(a[x][y+1]!='#'&&a[x][y+1]!='O'&&a[x][y+1]!='@') //如果只有人,没有箱子       {       a[x][y]=' ';       y++;       a[x][y]='S';          }   else if(a[x][y+2]!='#'&&a[x][y+1]=='O'&&a[x][y+2]!='O') //如果是箱子和人一起走    {    a[x][y]=' ';    y++;    a[x][y]='S';    a[x][y+1]='O';   }   else if(a[x][y+2]!='#'&&(a[x][y+1]=='O'||a[x][y+1]=='@')&&a[x][y+2]=='*'&&a[x][y+2]!='O')   //如果人和箱子一起走,并且前面是终点         {    a[x][y]=' ';    y++;    a[x][y]='S';     a[x][y+1]='@';   }  }  if(a[4][2]!='@'&&a[4][2]!='S'&&a[4][2]!='*')     {      a[4][2]='*';  }  if(a[4][3]!='@'&&a[4][3]!='S'&&a[4][3]!='*')     {      a[4][3]='*';  }  if(a[5][2]!='@'&&a[5][2]!='S'&&a[5][2]!='*')     {      a[5][2]='*';  }  if(a[5][3]!='@'&&a[5][3]!='S'&&a[5][3]!='*')     {      a[5][3]='*';  }  if(a[1][2]=='O'||a[1][6]=='O'||a[2][8]=='O'||a[3][8]=='O'||a[5][5]=='O'||a[5][7]=='O')              //判断失败的情况   {   break;  }  system("cls");  for(i=0;i<7;i++)     puts(a[i]); } system("cls"); if(a[4][2]!='@'||a[4][3]!='@'||a[5][2]!='@'||a[5][3]!='@')    printf("YOU LOSE!");    else    printf("YOU WIN!");    Sleep(3000);     return 0;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

大多数人想要改造这个世界,但却罕有人想改造自己。

C/C++编写推箱子小游戏

相关文章:

你感兴趣的文章:

标签云: