用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语言实现推箱子游戏的主要内容,如果未能解决你的问题,请参考以下文章

程序员带你回味童年,一起用C语言做一个“推箱子”玩!文末源码

c语言推箱子小游戏

C语言实现推箱子游戏!(超简单详细)代码思路+源码分享

用C/C++实现推箱子小游戏

推箱子小游戏——c/c++实现

用C写一个简单的推箱子游戏