簡(jiǎn)易推箱子代碼 -電腦資料

電腦資料 時(shí)間:2019-01-01 我要投稿
【m.clearvueentertainment.com - 電腦資料】

   

#include<stdio.h>#include<stdlib.h>int main(void){    //用于用戶輸入       char sr;    //地圖可以更改    char a[11][20]={      "###################",             "###################",             "###     $ $     ###",             "###    #####    ###",             "###             ###",             "#### ####  ### ####",             "###   #  @   #  ###",             "###   #  @   #  ###",             "###      ^      ###",             "###################",             "###################"};    //定義坐標(biāo)    int i=1,e=8,f=9,m=7,n=9,x=6,y=9;            while(i)    {         //清屏此代碼是在蘋果電腦上運(yùn)行的,如果是用vc++的話應(yīng)該換成system("cls");        system("clear");                       printf("歡迎使用推箱子\n^就代表你,而你的工作就是把@推到$的位置,好好努力吧!\n");        printf("對(duì)了w代表上,s代表下,a代表左,d代表右,q表示退出,開始吧!\n");        //打印地圖        for(int b=0;b<11;b++)                   {            for(int c=0;c<20;c++)            {                printf("%c",a[b][c]);            }            printf("\n");        }        //判斷是否推到正確位置       if(m== 2 && n==8)                       {            if(x==2 && y==10)            {                printf("恭喜你挑戰(zhàn)成功!\n");                break;            }        }        else if(m==2 && n==8)        {           if(x==2 && y==10)           {                printf("恭喜你挑戰(zhàn)成功!\n");                break;           }        }        //清除緩沖區(qū),字符必須寫,因?yàn)榛剀囈彩且粋(gè)字符,所以用scanf(“%c”)必須寫        fpurge(stdin);        scanf("%c",&sr);        switch(sr)//判斷上下左右        {            case 'w':            case 'W':                if(a[e-1][f]==' ')//上面是否可以走                {                    a[e-1][f]='^';                    a[e][f]=' ';                    e-=1;                }                else if(a[e-1][f]=='@' && a[e-2][f]==' ')//上面是否是箱子而且箱子上面是否有墻或者箱子                {                    if(e-m==1 && f==n)//判斷人和箱子是否在一條線上                    {                        m-=1;                        a[m][n]='@';                        a[e-1][f]='^';                        a[e][f]=' ';                        e-=1;                    }                    else if(e-x==1 && f==y)//判斷人和箱子是否在一條線上因?yàn)檫@個(gè)上面有兩個(gè)                    {                       x-=1;                      a[x][y]='@';                      a[e-1][f]='^';                      a[e][f]=' ';                      e-=1;                     }                }                break;            case 's':            case 'S':                if(a[e+1][f]==' ')//下面是否可以走                {                    a[e+1][f]='^';                    a[e][f]=' ';                    e+=1;                }                else if(a[e+1][f]=='@' && a[e+2][f]==' ' )//下面是否是箱子而且箱子上面是否有墻或者箱子                {                    if(m-e==1 && f==n)//判斷人和箱子是否在一條線上                    {                        m+=1;                        a[m][n]='@';                        a[e+1][f]='^';                        a[e][f]=' ';                        e+=1;                    }                    else if(x-e==1 && y==f)//判斷人和箱子是否在一條線上因?yàn)檫@個(gè)上面有兩個(gè)                    {                        x+=1;                        a[x][y]='@';                        a[e+1][f]='^';                        a[e][f]=' ';                        e+=1;                    }                }                break;            case 'a':            case 'A':                if(a[e][f-1]==' ')//上面是否可以走                {                    a[e][f-1]='^';                    a[e][f]=' ';                    f-=1;                }                else if(a[e][f-1]=='@' && a[e][f-2]==' ')//左面是否是箱子而且箱子左面是否有墻或者箱子                {                    if(e==m && f-n==1)//判斷人和箱子是否在一條線上                    {                        n-=1;                        a[m][n]='@';                        a[e][f-1]='^';                        a[e][f]=' ';                        f-=1;                    }                    else if(e==x && f-y==1)//判斷人和箱子是否在一條線上因?yàn)檫@個(gè)上面有兩個(gè)                    {                        y-=1;                        a[x][y]='@';                        a[e][f-1]='^';                        a[e][f]=' ';                        f-=1;                    }                }                break;            case 'd':            case 'D':                if(a[e][f+1]==' ')//右面是否可以走                {                    a[e][f+1]='^';                    a[e][f]=' ';                    f+=1;                }                else if(a[e][f+1]=='@' && a[e][f+2]==' ')//右面是否是箱子而且箱子右面是否有墻或者箱子                {                    if(e==m && n-f==1)//判斷人和箱子是否在一條線上                    {                        n+=1;                        a[m][n]='@';                        a[e][f+1]='^';                        a[e][f]= ' ';                        f+=1;                    }                    else if(e==x && y-f==1)//判斷人和箱子是否在一條線上因?yàn)檫@個(gè)上面有兩個(gè)                    {                        y+=1;                        a[x][y]='@';                        a[e][f+1]='^';                        a[e][f]=' ';                        f+=1;                    }                }              break;              case 'q':            case 'Q':exit(0);//退出        }    }    return 0;}

最新文章