搜索
查看: 1098|回复: 11
打印 上一主题 下一主题

为什么进入不了下一关

[复制链接]
跳转到指定楼层
楼主
发表于 2017-9-3 09:46:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10啊哈币
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
  printf("推箱子游戏");
  printf("wasd操作\n");
  system("color 5a");
  char a[50][50]={"##########",
                                  "##     ###",
                  "##O###   #",
                  "# S O  O #",
                  "# **# O ##",
                  "##**#   ##",
                  "##########",
                   };
       char ch;           
       int i,j,x,y,bb;
       x=3;
       y=2;
       j=0;
       bb=0;
       for(i=0;i<=10;i++)
       {
                        puts(a[i]);
                       
       }
       while(1)
       {
       printf("已用步数%d",j);
                        ch=getch();
            if (ch=='s')
            {
                if(a[x+1][y]=='O' && a[x+2][y]!='#' && a[x+2][y]!='O')
                {
                   a[x][y]=' ';
                   x++;
                   a[x][y]='S';
                   a[x+1][y]='O';
                   j++;
                }   


                                if(a[x+1][y]==' ' )
                {
                                        a[x][y]=' ';
                   x++;
                   a[x][y]='S';
                   j++;
                }

            }
             if (ch=='w')
            {
                if(a[x-1][y]=='O' && a[x-2][y]!='#' && a[x-2][y]!='O')
                {
                   a[x][y]=' ';
                   x--;
                   a[x][y]='S';
                   a[x-1][y]='O';
                   j++;
                }
                if(a[x-1][y]==' ' )
                {
                                        a[x][y]=' ';
                   x--;
                   a[x][y]='S';
                   j++;
                }
            }
             if (ch=='a')
            {
                if(a[x][y-1]=='O' && a[x][y-2]!='#' && a[x][y-2]!='O')
                {
                   a[x][y]=' ';
                   y--;
                   a[x][y]='S';
                   a[x][y-1]='O';
                   j++;
                }
                if(a[x][y-1]==' ' )
                {
                                        a[x][y]=' ';
                   y--;
                   a[x][y]='S';
                   j++;
                }
            }
            if (ch=='d')
            {
                if(a[x][y+1]=='O' && a[x][y+2]!='#' && a[x][y+2]!='O')
                {
                   a[x][y]=' ';
                   y++;
                   a[x][y]='S';
                   a[x][y+1]='O';
                   j++;
                }
                if(a[x][y+1]==' ' )
                {
                                        a[x][y]=' ';
                   y++;
                   a[x][y]='S';
                   j++;
                }

            }

            system("cls");
            for(i=0;i<=10;i++)
            puts(a[i]);
            if(a[4][2]=='O' && a[4][3]=='O' && a[5][2]=='O' && a[5][3]=='O' )
            {
            printf("你赢了!马上进入下一关");
            Sleep("2000");
            break;
            }



       }            
        system("cls");           


       
  char b[50][50]={ "#####    ",
                                   "#   #    ",
                   "# O # ###",
                   "#SO # #*#",
                   "### ###*#",
                   " ##    *#",
                   " # O #  #",
                   " #   ####",     
                   " #####   ",
                   };
       char c;           
       int v,w,n,m;
       n=3;
       m=1;
       w=0;
       for(v=0;v<=10;v++)
       {
                        puts(b[v]);
                       
       }
       while(b[3][7]=='O' && b[4][7]=='O' && b[5][7]=='O')
       {
       printf("已用步数%d",w);
                        c=getch();
            if (c=='s')
            {
                if(b[n+1][m]=='O' && b[n+2][m]!='#' && b[n+2][m]!='O')
                {
                   b[n][m]=' ';
                   n++;
                   b[n][m]='S';
                   b[n+1][m]='O';
                   w++;
                }   


                                if(b[n+1][m]==' ' )
                {
                                        b[n][m]=' ';
                   n++;
                   b[n][m]='S';
                   w++;
                }

            }
             if (c=='w')
            {
                if(b[n-1][m]=='O' && b[n-2][m]!='#' && b[n-2][m]!='O')
                {
                   b[n][m]=' ';
                   x--;
                   b[n][n]='S';
                   b[n-1][m]='O';
                   w++;
                }
                if(b[n-1][m]==' ' )
                {
                                        b[n][m]=' ';
                   n--;
                   b[n][m]='S';
                   w++;
                }
            }
             if (c=='a')
            {
                if(b[n][m-1]=='O' && b[n][m-2]!='#' && b[n][m-2]!='O')
                {
                   b[n][m]=' ';
                   m--;
                   b[n][m]='S';
                   b[n][m-1]='O';
                   w++;
                }
                if(b[n][m-1]==' ' )
                {
                                        b[n][m]=' ';
                   m--;
                   b[n][m]='S';
                   w++;
                }
            }
            if (c=='d')
            {
            if(b[n][m+1]=='O' && b[n][m+2]!='#' && b[n][m+2]!='O')
                {
                   b[n][m]=' ';
                   m++;
                   b[n][m]='S';
                   b[n][m+1]='O';
                   w++;
                }
                if(b[n][m+1]==' ' )
                {
                                        b[n][m]=' ';
                   m++;
                   b[n][m]='S';
                   w++;
                }

            }

            system("cls");
            for(v=0;v<=10;v++)
            puts(b[v]);





       }              
       printf("你赢了");            


        system("pause");
        return 0;
}


最佳答案

查看完整内容

Sleep不带引号 还有一个逻辑错误 改为
沙发
发表于 2017-9-3 09:46:15 | 只看该作者
Sleep不带引号

还有一个逻辑错误

改为
  1. while(b[3][7] != 'O' || b[4][7] != 'O' || b[5][7] != 'O')
复制代码
板凳
 楼主| 发表于 2017-9-3 09:48:12 | 只看该作者
可以运行,但进入不了下一关
地板
 楼主| 发表于 2017-9-3 10:44:09 | 只看该作者
4399APPLE 发表于 2017-9-3 10:26
Sleep不带引号

还有一个逻辑错误

我问的是为什么进入不了下一关
5#
 楼主| 发表于 2017-9-3 10:44:39 | 只看该作者
等等我试试            

点评

Sleep带引号他就一直等待  发表于 2017-9-3 11:15
6#
 楼主| 发表于 2017-9-3 10:49:35 | 只看该作者
4399APPLE 发表于 2017-9-3 10:26
Sleep不带引号

还有一个逻辑错误

第二幅图不知怎么的有个bag帮我找找
7#
发表于 2017-9-3 15:25:10 | 只看该作者
tjh 发表于 2017-9-3 10:49
第二幅图不知怎么的有个bag帮我找找

都说了改成
  1. while(b[3][7] != 'O' || b[4][7] != 'O' || b[5][7] != 'O')
复制代码
8#
 楼主| 发表于 2017-9-3 16:25:12 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
  printf("推箱子游戏");
  printf("wasd操作\n");
  system("color 5a");
  char a[50][50]={"##########",
                                  "##     ###",
                  "##O###   #",
                  "# S O  O #",
                  "# **# O ##",
                  "##**#   ##",
                  "##########",
                   };
       char ch;           
       int i,j,x,y,bb;
       x=3;
       y=2;
       j=0;
       bb=0;
       for(i=0;i<=10;i++)
       {
                        puts(a[i]);
                       
       }
       while(1)
       {
       printf("已用步数%d",j);
                        ch=getch();
            if (ch=='s')
            {
                if(a[x+1][y]=='O' && a[x+2][y]!='#' && a[x+2][y]!='O')
                {
                   a[x][y]=' ';
                   x++;
                   a[x][y]='S';
                   a[x+1][y]='O';
                   j++;
                }   
               
                    
                                if(a[x+1][y]==' ' )
                {
                                        a[x][y]=' ';
                   x++;
                   a[x][y]='S';
                   j++;
                }
               
            }
             if (ch=='w')
            {
                if(a[x-1][y]=='O' && a[x-2][y]!='#' && a[x-2][y]!='O')
                {
                   a[x][y]=' ';
                   x--;
                   a[x][y]='S';
                   a[x-1][y]='O';
                   j++;
                }
                if(a[x-1][y]==' ' )
                {
                                        a[x][y]=' ';
                   x--;
                   a[x][y]='S';
                   j++;
                }
            }
             if (ch=='a')
            {
                if(a[x][y-1]=='O' && a[x][y-2]!='#' && a[x][y-2]!='O')
                {
                   a[x][y]=' ';
                   y--;
                   a[x][y]='S';
                   a[x][y-1]='O';
                   j++;
                }
                if(a[x][y-1]==' ' )
                {
                                        a[x][y]=' ';
                   y--;
                   a[x][y]='S';
                   j++;
                }
            }
            if (ch=='d')
            {
                if(a[x][y+1]=='O' && a[x][y+2]!='#' && a[x][y+2]!='O')
                {
                   a[x][y]=' ';
                   y++;
                   a[x][y]='S';
                   a[x][y+1]='O';
                   j++;
                }
                if(a[x][y+1]==' ' )
                {
                                        a[x][y]=' ';
                   y++;
                   a[x][y]='S';
                   j++;
                }
               
            }
                                
            system("cls");
            for(i=0;i<=10;i++)
            puts(a[i]);
            if(a[4][2]=='O' && a[4][3]=='O' && a[5][2]=='O' && a[5][3]=='O' )
            {
            printf("你赢了!马上进入下一关");
            Sleep(2000);
            break;
            }
           
            
            
       }            
        system("cls");         
   
   
       
  char b[50][50]={ "#####    ",
                                   "#   #    ",
                   "# O # ###",
                   "#SO # #*#",
                   "### ###*#",
                   " ##    *#",
                   " # O #  #",
                   " #   ####",     
                   " #####   ",
                   };
       char c;           
      
       x=3;
       y=1;
      
        for(i=0;i<=10;i++)
       {
                        puts(b[i]);
                       
       }
       while(1)
       {
       printf("已用步数%d",j);
                        ch=getch();
            if (ch=='s')
            {
                if(a[x+1][y]=='O' && a[x+2][y]!='#' && a[x+2][y]!='O')
                {
                   a[x][y]=' ';
                   x++;
                   a[x][y]='S';
                   a[x+1][y]='O';
                   j++;
                }   
               
                    
                                if(a[x+1][y]==' ' )
                {
                                        a[x][y]=' ';
                   x++;
                   a[x][y]='S';
                   j++;
                }
               
            }
             if (ch=='w')
            {
                if(a[x-1][y]=='O' && a[x-2][y]!='#' && a[x-2][y]!='O')
                {
                   a[x][y]=' ';
                   x--;
                   a[x][y]='S';
                   a[x-1][y]='O';
                   j++;
                }
                if(a[x-1][y]==' ' )
                {
                                        a[x][y]=' ';
                   x--;
                   a[x][y]='S';
                   j++;
                }
            }
             if (ch=='a')
            {
                if(a[x][y-1]=='O' && a[x][y-2]!='#' && a[x][y-2]!='O')
                {
                   a[x][y]=' ';
                   y--;
                   a[x][y]='S';
                   a[x][y-1]='O';
                   j++;
                }
                if(a[x][y-1]==' ' )
                {
                                        a[x][y]=' ';
                   y--;
                   a[x][y]='S';
                   j++;
                }
            }
            if (ch=='d')
            {
                if(a[x][y+1]=='O' && a[x][y+2]!='#' && a[x][y+2]!='O')
                {
                   a[x][y]=' ';
                   y++;
                   a[x][y]='S';
                   a[x][y+1]='O';
                   j++;
                }
                if(a[x][y+1]==' ' )
                {
                                        a[x][y]=' ';
                   y++;
                   a[x][y]='S';
                   j++;
                }
               
            }
                                
            system("cls");
            for(i=0;i<=10;i++)
            puts(a[i]);
            if(a[4][2]=='O' && a[4][3]=='O' && a[5][2]=='O' && a[5][3]=='O' )
            {
            printf("你赢了!马上进入下一关");
            Sleep(2000);
            break;
            }
           
            
            
       }            
        return 0;
}
我改了一下为什么到了第二关玩不了出现了灵异事件
9#
发表于 2017-9-3 17:37:36 | 只看该作者
tjh 发表于 2017-9-3 16:25
#include
#include
#include

你就不能好好描述一下你的问题吗
10#
 楼主| 发表于 2017-9-8 20:15:48 | 只看该作者
4399APPLE 发表于 2017-9-3 17:37
你就不能好好描述一下你的问题吗

金币送你了我自己找到了错误
11#
发表于 2017-11-8 21:18:04 | 只看该作者
tjh 发表于 2017-9-8 20:15
金币送你了我自己找到了错误

能够告诉我么,我复制了你的程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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