⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tuixiangzi.c

📁 C语言源码
💻 C
📖 第 1 页 / 共 2 页
字号:
    printf(" "); 
    printBoxDes(x,y+2);
    printMan(x,y+1); 
    status[x][y+2]='i';
    break; 
    default:
    break; 
    }
}
 
 
int judge(int x,int y) 
{ 
    int i; 
    switch(status[x][y]) 
    {
    case 0:
    i=1;
    break; 
    case 'w':
    i=0;
    break; 
    case 'b':
    i=2;
    break; 
    case 'i':
    i=4;
    break; 
    case 'm':
    i=3;
    break; 
    default:
    break;
    }
    return i; 
} 
 
 
void move(int x,int y,char a) 
{ 
    switch(a) 
    {
    case 'u':
    if(!judge(x-1,y))
    {
        gotoxy(y,x); 
        break; 
    }
    else if(judge(x-1,y)==1||judge(x-1,y)==3) 
    {
        if(judge(x,y)==3) 
        {
        printDestination(x,y); 
        printMan(x-1,y); 
        break; 
        }
        else 
        {
        printf(" "); 
        printMan(x-1,y); 
        break; 
        }
    }
    else if(judge(x-1,y)==2) 
    {
        if(judge(x-2,y)==1) 
        {
        moveBoxSpacetoSpace(x,y,'u'); 
        if(judge(x,y)==3)  
            printDestination(x,y);  
        gotoxy(y,x-1); 
        }
        else if(judge(x-2,y)==3) 
        {
        moveBoxSpacetoDes(x,y,'u'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y,x-1); 
        }
        else 
                gotoxy(y,x); 
        break;
    }
    else if(judge(x-1,y)==4) 
    {
        if(judge(x-2,y)==1) 
        {
        moveBoxDestoSpace(x,y,'u'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y,x-1); 
        }
        else if(judge(x-2,y)==3) 
        {
        moveBoxDestoDes(x,y,'u'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y,x-1); 
        }
        else 
        gotoxy(y,x); 
        break; 
    }
    case 'd':
    if(!judge(x+1,y)) 
    {
        gotoxy(y,x); 
        break; 
    }
    else if(judge(x+1,y)==1||judge(x+1,y)==3) 
    {
        if(judge(x,y)==3) 
        {
        printDestination(x,y); 
        printMan(x+1,y); 
        break; 
        }
        else
        {
        printf(" "); 
        printMan(x+1,y); 
        break; 
        }
    } 
    else if(judge(x+1,y)==2) 
    {
        if(judge(x+2,y)==1) 
        {
        moveBoxSpacetoSpace(x,y,'d'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y,x+1); 
        }
        else if(judge(x+2,y)==3) 
        {
        moveBoxSpacetoDes(x,y,'d'); 
        if(judge(x,y)==3)  
            printDestination(x,y); 
        gotoxy(y,x+1); 
        } 
        else
        gotoxy(y,x); 
        break; 
    }
    else if(judge(x+1,y)==4) 
    {  
        if(judge(x+2,y)==1) 
        { 
        moveBoxDestoSpace(x,y,'d'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y,x+1); 
        } 
        else if(judge(x+2,y)==3) 
        { 
        moveBoxDestoDes(x,y,'d'); 
        if(judge(x,y)==3)  
            printDestination(x,y); 
        gotoxy(y,x+1); 
        } 
        else 
        gotoxy(y,x); 
        break; 
    } 
    case 'l':
    if(!judge(x,y-1)) 
    { 
        gotoxy(y,x); 
        break; 
    } 
    else if(judge(x,y-1)==1||judge(x,y-1)==3) 
    { 
        if(judge(x,y)==3) 
        { 
        printDestination(x,y); 
        printMan(x,y-1); 
        break; 
        } 
        else 
        { 
        printf(" "); 
        printMan(x,y-1); 
        break; 
        } 
    } 
    else if(judge(x,y-1)==2) 
    { 
        if(judge(x,y-2)==1) 
        { 
        moveBoxSpacetoSpace(x,y,'l'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y-1,x); 
        } 
        else if(judge(x,y-2)==3) 
        { 
        moveBoxSpacetoDes(x,y,'l'); 
        if(judge(x,y)==3)  
            printDestination(x,y); 
        gotoxy(y-1,x); 
        } 
        else 
        gotoxy(y,x); 
        break; 
    } 
    else if(judge(x,y-1)==4) 
    {
        if(judge(x,y-2)==1) 
        {
        moveBoxDestoSpace(x,y,'l'); 
        if(judge(x,y)==3)
            printDestination(x,y); 
        gotoxy(y-1,x); 
        } 
        else if(judge(x,y-2)==3) 
        {
        moveBoxDestoDes(x,y,'l'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y-1,x); 
        } 
        else 
        gotoxy(y,x); 
        break; 
    } 
    case 'r':
    if(!judge(x,y+1))    
    {
        gotoxy(y,x);
        break;
    }
    else if(judge(x,y+1)==1||judge(x,y+1)==3) 
    {
        if(judge(x,y)==3) 
        {
        printDestination(x,y);
        printMan(x,y+1);
        break;
        } 
        else 
        {
        printf(" ");
        printMan(x,y+1);
        break;
        } 
    }
    else if(judge(x,y+1)==2) 
    {
        if(judge(x,y+2)==1) 
        {    
        moveBoxSpacetoSpace(x,y,'r'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y+1,x); 
        } 
        else if(judge(x,y+2)==3) 
        {
        moveBoxSpacetoDes(x,y,'r'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y+1,x); 
        } 
        else 
        gotoxy(y,x);     
        break; 
    } 
    else if(judge(x,y+1)==4) 
    { 
        if(judge(x,y+2)==1) 
        {    
        moveBoxDestoSpace(x,y,'r'); 
        if(judge(x,y)==3) 
            printDestination(x,y); 
        gotoxy(y+1,x); 
        } 
        else if(judge(x,y+2)==3) 
        {
        moveBoxDestoDes(x,y,'r'); 
        if(judge(x,y)==3)
            printDestination(x,y);
        gotoxy(y+1,x); 
        } 
        else 
        gotoxy(y,x); 
        break; 
    } 
    default:
    break; 
    } 
} 

 
 
void reset(int i) 
{ 
    switch(i) 
    {
    case 0:
    init(); 
    initStep1();
    break; 
    case 1:
    init(); 
    initStep2();
    break; 
    case 2:
    init(); 
    initStep3();
    break;
    case 3:
    init(); 
    initStep4();
    break; 
    default:
    break; 
    } 
} 
 

void main() 
{ 
    int key;
    int x;
    int y;
    int s;
    int i=0; 
    winer *win;
    winer *pw; 
    _AL=3;
    _AH=0; 
    geninterrupt(0x10); 
    init(); 
    win=initStep1(); 
    do{
    _AH=3; 
    geninterrupt(0x10); 
    x=_DH+1;
    y=_DL+1; 
    while(bioskey(1)==0);
    key=bioskey(0); 
    switch(key) 
    {
    case 0x4800:
        move(x,y,'u');
        break;
    case 0x5000:
        move(x,y,'d');
        break;
    case 0x4b00:
        move(x,y,'l');
        break;
    case 0x4d00:
        move(x,y,'r');
        break;  
    case 0x3920:
        reset(i);
        break;
    default:
        break; 
    }    
    s=0; 
    pw=win; 
    while(pw) 
    { 
        if(status[pw->x][pw->y]=='m')
        s++; 
        pw=pw->p; 
    }
    if(s==0) 
    { 
        free(win); 
        gotoxy(25,2); 
        printf("congratulate! You have done this step!"); 
        getch(); 
        i++; 
        switch(i) 
        {
        case 1:
        init();
        win=initStep2();
        break;
        case 2:
        init(); 
        win=initStep3();
        break;
        case 3:
        init(); 
        win=initStep4();
        break;
        case 4:
        gotoxy(15,21); 
        printf("Congratulation! \n");
                gotoxy(15,23);
                printf("You have done all the steps, Welcome to play again!"); 
        key=0x011b;
        getch();
        break;
        default:
        break; 
        } 
    } 
 
    }while(key!=0x011b); 
    _AL=3; 
    _AH=0; 
    geninterrupt(0x10); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -