• OC推箱子


    #include<stdio.h>
    #include<stdlib.h>
    int main(void)
    {
        char sr;//存储用户输入的指令
        //绘制地图
        char a[11][20]={
         "###################",        
         "###################",        
         "###     $ $     ###",        
         "###    #####    ###",        
         "###             ###",        
         "#### ####  ### ####",        
         "###   #  @   #  ###",        
         "###   #  @   #  ###",        
         "###      ^      ###",        
         "###################",        
         "###################"};
        // 定义箱子,小人和目的的坐标
        int i=1,e=8,f=9,m=7,n=9,x=6,y=9;
        while(i)
        {
            //清屏,给人一种真实游戏的感觉,这是在MAC环境上的,WIN的清屏语句是system("cls")
            //这个程序所用到的类型和语法除了清屏这句还有清除缓存区都是可以在WIN系统下,VC++6.0里完美运行的
            system("clear");
            printf("欢迎使用推箱子
    ^就代表你,而你的工作就是把@推到$的位置,好好努力吧!
    ");
            printf("对了w代表上,s代表下,a代表左,d代表右,q表示退出,开始吧!
    ");
            //判断是否推到目的地
           if(m== 2 && n==8)
            {
                if(x==2 && y==10)
                {
                    printf("恭喜你挑战成功!
    ");
                    break;
                }
            }
           if(m==2 && n==10)
           {
               if(x==2 && y==8)
               {
                    printf("恭喜你挑战成功!
    ");
                    break;
               }
            }
            //打印地图
            for(int b=0;b<11;b++)
            {
                for(int c=0;c<20;c++)
                {
                    printf("%c",a[b][c]);
                }
                printf("
    ");
            }
            //清除缓存区
            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]!='#' && 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)
                        {
                           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]!='#' && 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)
                        {
                            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]='^';
                        if((e==2 && f==8)||(e==2 && f==10))
                            a[e][f]='$';
                        else
                            a[e][f]=' ';
                        f-=1;
                    }
                    else if(a[e][f-1]=='$')
                    {
                        a[e][f-1]='^';
                        if((e==2 && f==8)||(e==2 && f==10))
                            a[e][f]='$';
                        else
                            a[e][f]=' ';
                        f-=1;
                    }
                    else if(a[e][f-1]=='@' && a[e][f-2]!='#' && a[e][f-2]!='@')
                    {
                        if(e==m && f-n==1)
                        {
                            n-=1;
                            a[m][n]='@';
                            a[e][f-1]='^';
                            if((e==2 && f==8)||(e==2 && f==10))
                                a[e][f]='$';
                            else
                                a[e][f]=' ';
                            f-=1;
                        }
                        else if(e==x && f-y==1)
                        {
                            y-=1;
                            a[x][y]='@';
                            a[e][f-1]='^';
                            if((e==2 && f==8)||(e==2 && f==10))
                                a[e][f]='$';
                            else
                                a[e][f]=' ';
                            f-=1;
                        }
                    }
                    break;
                case 'd':
                case 'D':
                    if(a[e][f+1]==' ')
                    {
                        a[e][f+1]='^';
                        if((e==2 && f==8)||(e==2 && f==10))
                          a[e][f]='$';
                        else
                           a[e][f]=' ';
                        f+=1;
                    }
                    else if(a[e][f+1]=='$')
                    {
                        a[e][f+1]='^';
                        if((e==2 && f==8)||(e==2 && f==10))
                            a[e][f]='$';
                        else
                            a[e][f]=' ';
                        f+=1;
                    }
                    else if(a[e][f+1]=='@' && a[e][f+2]!='#' && a[e][f+2]!='@')
                    {
                        if(e==m && n-f==1)
                        {
                            n+=1;
                            a[m][n]='@';
                            a[e][f+1]='^';
                            if((e==2 && f==8)||(e==2 && f==10))
                                a[e][f]='$';
                            else
                                a[e][f]=' ';
                            f+=1;
                        }
                        else if(e==x && y-f==1)
                        {
                            y+=1;
                            a[x][y]='@';
                            a[e][f+1]='^';
                            if((e==2 && f==8)||(e==2 && f==10))
                                a[e][f]='$';
                            else
                                a[e][f]=' ';
                            f+=1;
                        }
                    }
                  break;  
                case 'q':
                case 'Q':i=0;break;
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    将您的基于 Accelerator 的 SAP Commerce Cloud Storefront 迁移到 Spartacus Storefront
    SAP S/4HANA: 一条代码线,许多种选择
    windows系统中远程登录ubuntu18服务器的桌面
    C语言格式控制符/占位符
    C语言变量声明和定义
    C语言数据类型 / 变量类型
    C语言 Hello World
    C语言代码注释
    变量命名 – 匈利亚命名法则
    设置 Visual Studio 字体/背景/行号
  • 原文地址:https://www.cnblogs.com/BK-12345/p/5064067.html
Copyright © 2020-2023  润新知