搜索
查看: 441|回复: 13
打印 上一主题 下一主题

编译正常,但无法运行

[复制链接]
跳转到指定楼层
楼主
发表于 2016-8-17 10:31:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>     
char move(p)
char p;
{
        char z;
    if(p=='S')z=' ';
    else z='*';
    return (z);
}
char now(p)
char p;
{        
    char z;
    if(p=='*'||p=='@')z='$';
    else z='S';
    return (z);
}
char box(p)
char p;
{
        char z;
    if(p==' ')z='O';
    else z='@';
    return (z);
}

main()
{
char a[15][15]={"   ###     ",
                "   #*#     ",
                "####O######",
                "#*  OS O *#",
                "#####O#####",
                "    # #    ",
                "    #*#    ",                 
                "    ###    ",
                };
int i,x,y;
char ch;
printf("Chekpoint 1\n");
for(i=0;i<=7;i++)
    puts(a);
    x=3;y=5;
while(a[1][4]!='@'||a[3][1]!='@'||a[3][9]!='@'||a[6][5]!='@')
    {
    ch=getch();
    switch(ch)
                {
         case'w':if(a[x-1][y]!='#')               
                        {if(a[x-1][y]==' '||a[x-1][y]=='*')
                                {a[x][y]=move(a[x][y]);x--;a[x][y]=now(a[x][y]);}
             else if(a[x-2][y]!='#'&&a[x-2][y]!='O'&&a[x-2][y]!='@')
                                {a[x][y]=move(a[x][y]);x--;a[x][y]=now(a[x][y]);x--;a[x][y]=box(a[x][y]);x++;}
            }break;
         case's':if(a[x+1][y]!='#')
            {if(a[x+1][y]==' '||a[x+1][y]=='*')
                                {a[x][y]=move(a[x][y]);x++;a[x][y]=now(a[x][y]);}
              else if(a[x+2][y]!='#'&&a[x+2][y]!='O'&&a[x+2][y]!='@')
                {a[x][y]=move(a[x][y]);x++;a[x][y]=now(a[x][y]);x++;a[x][y]=box(a[x][y]);x--;}
            }break;
         case'a':if(a[x][y-1]!='#')
            {if(a[x][y-1]==' '||a[x][y-1]=='*')
                                {a[x][y]=move(a[x][y]);y--;a[x][y]=now(a[x][y]);}
             else if(a[x][y-2]!='#'&&a[x][y-2]!='O'&&a[x][y-2]!='@')
                                {a[x][y]=move(a[x][y]);y--;a[x][y]=now(a[x][y]);y--;a[x][y]=box(a[x][y]);y++;}
             }break;
         case'd':if(a[x][y+1]!='#')
             {if(a[x][y+1]==' '||a[x][y+1]=='*')
                                {a[x][y]=move(a[x][y]);y++;a[x][y]=now(a[x][y]);}
             else if(a[x][y+2]!='#'&&a[x][y+2]!='O'&&a[x][y+2]!='@')
                                {a[x][y]=move(a[x][y]);y++;a[x][y]=now(a[x][y]);y++;a[x][y]=box(a[x][y]);y--;}
             }break;
         }                     
    system("cls");
    for(i=0;i<=6;i++)
                puts(a);
    }
    system("cls");
    printf("you win!\n");
    printf("请选择 1.重新开始 2.下一关\n");
    char wang;
    int A;
    scanf("%c",&wang);
    if(wang=='1' && wang=='1')
    {
                if(wang!='2' || wang!='2')
        {
                        for(A=0;A<=2;A++)
            {
                                break;
            }
        }
    }
    if(wang!='1' && wang!='2')
    {
                if(wang=='2' || wang=='2')
        {
            int b,c=0,d,e,count=0,f=3,g=2,h,l[N][2]={{5,2},{5,3},{4,2},{4,3}};
          /*int i,j=0,t,u,count=0,x=3,y=2,n,b[N][2]={{5,2},{5,3},{4,2},{4,3}};←源代码*/
            char z[15][15]={"##########",
                                                        "##     ###",
                            "##O###   #",
                            "# S O  O #",
                            "# **# O ##",
                            "##**#   ##",
                            "##########",};
                        char m[15][15]={"##########",
                                                        "##     ###",
                            "##O###   #",
                            "# S O  O #",
                            "# **# O ##",
                            "##**#   ##",
                            "##########",};
                            while(count!=4)
                        printf("Chekpoint 2");
    {
               
                for(b=0;b<7;b++)
                {
                        puts(a);
                }
                h=getch();
                if(!(h=='w'||h=='a'||h=='s'||h=='d'))
                if(h=='w')
                {
                        if(z[x-1][y]==' ')
            {       
               
                z[x][y]=' ';
                                x--;
                z[x][y]='S';         
            }
            else if(z[x-1][y]=='O')
            {       
                if(z[x-2][y]=='*'||a[x-2][y]==' ')
                                {        z[x-2][y]='O';
                    z[x][y]=' ';
                                        x--;
                                        z[x][y]='S';         
                }
            }
            else
            {
                                if(z[x-1][y]=='*')
                                {       
                                        z[x-1][y]='S';
                                        z[x][y]=' ';
                                        x--;   
                }
            }
    }
    if(h=='a')
    {
                        if(z[x][y-1]==' ')
            {       
               
                z[x][y]=' ';
                                y--;
                z[x][y]='S';   
            }
            else if(z[x][y-1]=='O')
            {
                                if(z[x][y-2]=='*'||a[x][y-2]==' ')
                                {       
                                        z[x][y-2]='O';
                    z[x][y]=' ';
                                        y--;
                                        z[x][y]='S';         
                }
            }
            else
            {
                                if(z[x][y-1]=='*')
                                {       
                                        z[x][y-1]='S';
                                        z[x][y]=' ';
                                        y--;      
                }
            }
    }
    if(h=='s')
    {
                        if(z[x+1][y]==' ')
             {       
                 
                z[x][y]=' ';
                                x++;
                z[x][y]='S';   
            }
            else if(z[x+1][y]=='O')
            {
                        if(z[x+2][y]=='*'||z[x+2][y]==' ')
                                {                z[x+2][y]='O';
                    z[x][y]=' ';
                                        x++;
                                        z[x][y]='S';         
                }
            }
            else
            {
                                if(z[x+1][y]=='*')
                                {       
                                        z[x+1][y]='S';
                                        z[x][y]=' ';
                                        x++;   
                }
            }
    }
    if(h=='d')
    {
                        if(z[x][y+1]==' ')
             {          
                z[x][y]=' ';
                                y++;
                z[x][y]='S';   
               
            }
            else if(z[x][y+1]=='O')
            {
                        if(z[x][y+2]=='*'||z[x][y+2]==' ')
                                {                z[x][y+2]='O';
                    z[x][y]=' ';
                                        y++;
                                        z[x][y]='S';         
                }
            }
            else
            {
                                if(z[x][y+1]=='*')
                                {       
                                        z[x][y+1]='S';
                                        z[x][y]=' ';
                                        y++;      
                }
            }
     }
                count=0;
                for(i=0;i<N;i++)
        {       
            
            c=0;
                        d=l[c];
            e=l[c+1];
                        if(a[d][e]==' ')
            {
                                z[d][e]='*';
            }
                        if(z[d][e]=='O')
                                count++;
        }
                system("cls");
    }
    system("cls");
        printf("You Win!");
            
        }
    }
        system("pause");
}[/mw_shl_code]
沙发
发表于 2016-8-17 10:51:48 | 只看该作者
编译都不通过
1. 你的N没有定义(错误)
2.声明变量位置的错误(错误)
其它的还没细看

点评

留言:早知道弄个悬赏得了  发表于 2016-8-17 10:59
板凳
 楼主| 发表于 2016-8-17 10:56:36 | 只看该作者
[mw_shl_code=c,true]/*在后面加上这些就可以了*/
#include <conio.h>
#define N 4     [/mw_shl_code]
地板
发表于 2016-8-17 11:55:23 | 只看该作者
本帖最后由 初学C 于 2016-8-17 11:57 编辑

给你个例子(sorry弄错了)
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
        char a[40][40] = { "###############",
                       "#     #       #",
                       "#  @  #       #",
                       "#  M  #       #",
                       "#     ##      #",
                       "#       ###   #",
                       "#    !        #",
                       "#        #    #",
                       "###############"};        
    char c,temp,temp2;
    int s = 3,o = 3;
    int i = 0;
    int flag = 1;
    while(flag)
    {
                system("cls");
        while(i < 10)
        {
                        puts(a);
                        i++;
        }
                i = 0;
                c = getch();
        if(c == 'w')
        {
                        if(a[s-1][o] != '#' && a[s-1][o] != '!')
            {
                if(a[s-1][o] == '@')
                {
                                        if(a[s-2][o] == '#')
                    {
                                                continue;
                    }
                                        temp2 = a[s-1][o];
                    a[s-1][o] = ' ';
                    if(a[s-2][o] == '!')
                                        {
                                                flag--;
                    }
                    a[s-2][o] = temp2;
                }
                temp = a[o];
                a[s-1][o] = temp;
                a[o] = ' ';
                s-=1;
            }
        }
        if(c == 's')
        {
                        if(a[s+1][o] != '#' && a[s+1][o] != '!')
            {
                                temp = a[o];
                if(a[s+1][o] == '@')
                {
                                        if(a[s+2][o] == '#')
                    {
                                                continue;
                    }
                                        temp2 = a[s+1][o];
                    a[s+1][o] = ' ';
                    if(a[s+2][o] == '!')
                                        {
                                                flag--;
                    }
                    a[s+2][o] = temp2;
                }
                a[s+1][o] = temp;
                a[o] = ' ';
                s+=1;
            }
        }
        if(c == 'a')
        {
                        if(a[o-1] != '#' && a[o-1] != '!')
            {
                                temp = a[o];
                if(a[o-1] == '@')
                {
                                        if(a[o-2] == '#')
                    {
                                                continue;
                    }
                                        temp2 = a[o-1];
                    a[o-1] = ' ';
                    if(a[o-2] == '!')
                                        {
                                                flag--;
                    }
                    a[o-2] = temp2;
                }
                a[o-1] = temp;
                a[o] = ' ';
                o-=1;
            }
        }
        if(c == 'd')
        {
                        if(a[o+1] != '#' && a[o+1] != '!')
            {
                                temp = a[o];
                if(a[o+1] == '@')
                {
                                        if(a[o+2] == '#')
                    {
                                                continue;
                    }
                                        temp2 = a[o+1];
                    a[o+1] = ' ';
                    if(a[o+2] == '!')
                                        {
                                                flag--;
                    }
                    a[o+2] = temp2;
                }
                a[o+1] = temp;
                a[o] = ' ';
                o+=1;
            }
        }
        fflush(stdin);
    }
    system("cls");
    printf("恭喜胜利!");
        getch();
        return 0;
}[/mw_shl_code]
5#
发表于 2016-8-17 11:57:47 | 只看该作者
!是要推到的地方
@是箱子
6#
 楼主| 发表于 2016-8-17 13:17:52 | 只看该作者
照猫画虎:
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 4
int main()
{
        int i,j=0,t,u,count=0,x=3,y=2,n,b[N][2]={{5,2},{5,3},{4,2},{4,3}};
        char a[7][11]={"##########",
                                   "##     ###",
                   "##O###   #",
                   "# S O  O #",
                   "# **# O ##",
                   "##**#   ##",
                   "##########"};
    char c[7][11]={"##########",
                                   "##     ###",
                   "##O###   #",
                   "# S O  O #",
                   "# **# O ##",
                   "##**#   ##",
                   "##########"};
        while(count!=4)
    {
               
                for(i=0;i<7;i++)
                {
                        puts(a);
                }
                n=getch();
                if(!(n=='w'||n=='a'||n=='s'||n=='d'))
                {
                        if(n=='r')
            {
                                for(i=0;i<7;i++)
                for(j=0;j<11;j++)
                {
                                        a[j]=c[j];
                }
                x=3;
                y=2;
            }
                        system("cls");
                        continue;
                }
                if(n=='w')
                {
                        if(a[x-1][y]==' ')
            {       
               
                a[x][y]=' ';
                                x--;
                a[x][y]='S';         
            }
            else if(a[x-1][y]=='O')
            {       
                if(a[x-2][y]=='*'||a[x-2][y]==' ')
                                {        a[x-2][y]='O';
                    a[x][y]=' ';
                                        x--;
                                        a[x][y]='S';         
                }
            }
            else
            {
                                if(a[x-1][y]=='*')
                                {       
                                        a[x-1][y]='S';
                                        a[x][y]=' ';
                                        x--;   
                }
            }
    }
    if(n=='a')
    {
                        if(a[x][y-1]==' ')
            {       
               
                a[x][y]=' ';
                                y--;
                a[x][y]='S';   
            }
            else if(a[x][y-1]=='O')
            {
                                if(a[x][y-2]=='*'||a[x][y-2]==' ')
                                {       
                                        a[x][y-2]='O';
                    a[x][y]=' ';
                                        y--;
                                        a[x][y]='S';         
                }
            }
            else
            {
                                if(a[x][y-1]=='*')
                                {       
                                        a[x][y-1]='S';
                                        a[x][y]=' ';
                                        y--;      
                }
            }
    }
    if(n=='s')
    {
                        if(a[x+1][y]==' ')
             {       
                 
                a[x][y]=' ';
                                x++;
                a[x][y]='S';   
            }
            else if(a[x+1][y]=='O')
            {
                        if(a[x+2][y]=='*'||a[x+2][y]==' ')
                                {                a[x+2][y]='O';
                    a[x][y]=' ';
                                        x++;
                                        a[x][y]='S';         
                }
            }
            else
            {
                                if(a[x+1][y]=='*')
                                {       
                                        a[x+1][y]='S';
                                        a[x][y]=' ';
                                        x++;   
                }
            }
    }
    if(n=='d')
    {
                        if(a[x][y+1]==' ')
             {          
                a[x][y]=' ';
                                y++;
                a[x][y]='S';   
               
            }
            else if(a[x][y+1]=='O')
            {
                        if(a[x][y+2]=='*'||a[x][y+2]==' ')
                                {                a[x][y+2]='O';
                    a[x][y]=' ';
                                        y++;
                                        a[x][y]='S';         
                }
            }
            else
            {
                                if(a[x][y+1]=='*')
                                {       
                                        a[x][y+1]='S';
                                        a[x][y]=' ';
                                        y++;      
                }
            }
     }
                count=0;
                for(i=0;i<N;i++)
        {       
            
            j=0;
                        t=b[j];
            u=b[j+1];
                        if(a[t]==' ')
            {
                                a[t]='*';
            }
                        if(a[t]=='O')
                                count++;
        }
                system("cls");
    }
    system("cls");
        printf("You Win!\n");
        system("pause");
        return 0;
}[/mw_shl_code]
7#
发表于 2016-8-17 13:40:50 | 只看该作者
森林木 发表于 2016-8-17 13:17
照猫画虎:
[mw_shl_code=c,true]#include
#include

你是不是看了我的代码?
8#
 楼主| 发表于 2016-8-17 13:48:23 | 只看该作者
就像1+2=3一样,懂得创新

点评

不能用表情吗  发表于 2016-8-17 13:51
:@:@:@  发表于 2016-8-17 13:51
在线吗?  发表于 2016-8-17 13:50
9#
发表于 2016-8-17 17:56:17 | 只看该作者
其实我的例子是最简单的
因为有两个至关重要的处理我还没写
但是给你——足够了

点评

重新开始和退出的函数吗  发表于 2016-8-17 22:18
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表