andy大宝 发表于 2020-3-13 11:55:03

C语言编写推箱子,编到一半突然报错

本帖最后由 andy大宝 于 2020-3-13 12:06 编辑

应该不是我电脑的问题吧{:10_334:}

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
        char a={"   ###",
                        "   #*#",
                        "   # #",
                        "####O######",
                        "#*OS O *#",
                        "#####O#####",
                        "    # #",
                        "    #*#",
                        "    ###",
    int i,x,y;
    char ch;
    x=4;
    y=5;
        for (i=0;i<=8;i++)
    {
                puts(a);
    }
    while (a!='@' || a!='@'|| a!='@' || a!='@')//是否过关
    {
                ch=getch();
      if (ch=='s')//按下s键
      {
                while (1)
            {
                 if (a!='#' && a!='O' && a!='@')//从此开始判断
                {
                                a=' ';
                                x++;
                                a='S';
                              break;
                }
                if (a=='O' && a==' ')
                {
                        a=' ';
                        a='S';
                        a='O';
                        x++;
                        break;
                }
                if (a=='O' && a=='*')
                {
                        a=' ';
                        a='S';
                        a='@';
                        x++;
                        break;
                }
                if (a=='@' && a==' ')
                {
                        a=' ';
                        a='S';
                        a='O';
                        x++;
                        break;
                }
                if (a=='@' && a=='*')
                {
                        a=' ';
                        a='S';
                        a='@';
                        x++;
                        break;
                }
      }
      for (i=0;i<=8;i++)//刷新
      {
                puts(a);
      }
        if (ch=='w')//按下w键
      {
                while (1)
                {
                if (a!='#' && a!='O' && a!='@')//从此开始判断
                {
                        a=' ';
                        x--;
                        a='S';
                        break;
                }
                if (a=='O' && a==' ')
                {
                        a=' ';
                        a='S';
                        a='O';
                        x--;
                        break;
                }
                if (a=='O' && a=='*')
                {
                        a=' ';
                        a='S';
                        a='@';
                        x--;
                        break;
                }
                if (a=='@' && a==' ')
                {
                        a=' ';
                        a='S';
                        a='O';
                        x--;
                        break;
                }
                if (a=='@' && a=='*')
                {
                        a=' ';
                        a='S';
                        a='@';
                        x--;
                        break;
                }
      }

      system("cls");
      for (i=0;i<=8;i++)//刷新
      {
                puts(a);
      }
    }   
    //暂时没有补充成功后的动作
    //暂时编到w键和s键
    //期待完结
    system("pause");
    return 0;
}


jackz007 发表于 2020-3-13 12:49:48

本帖最后由 jackz007 于 2020-3-13 12:51 编辑

      作为一个合格的码农,要紧的是一定要把代码的缩进层次搞漂亮,这样才容易查出问题和错误。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

int main(void)
{
      char a={"   ###",
                        "   #*#",
                        "   # #",
                        "####O######",
                        "#*OS O *#",
                        "#####O#####",
                        "    # #",
                        "    #*#",
                        "    ###"} ;
      int i,x,y;
      char ch;
      x = 4 ;
      y = 5 ;
      for (i = 0 ; i <= 8 ; i ++) puts(a);
   
      while (a!='@' || a!='@'|| a!='@' || a!='@') {
                ch = getch() ;
                if (ch == 's') {
                        while (1) {
                              if (a!='#' && a!='O' && a!='@') {
                                        a=' ';
                                        x++;
                                        a='S';
                                        break;
                              }
                              if (a=='O' && a==' ') {
                                        a=' ';
                                        a='S';
                                        a='O';
                                        x++;
                                        break;
                              }
                              if (a=='O' && a=='*') {
                                        a=' ';
                                        a='S';
                                        a='@';
                                        x++;
                                        break;
                              }
                              if (a=='@' && a==' ') {
                                        a=' ';
                                        a='S';
                                        a='O';
                                        x++;
                                        break;
                              }
                              if (a=='@' && a=='*') {
                                        a=' ';
                                        a='S';
                                        a='@';
                                        x++;
                                        break;
                              }
                        }
                        for (i = 0 ; i <= 8 ; i ++) puts(a) ;
                }
                if (ch == 'w') {
                        while (1) {
                              if (a!='#' && a!='O' && a!='@') {
                                        a=' ';
                                        x--;
                                        a='S';
                                        break;
                              }
                              if (a=='O' && a==' ') {
                                        a=' ';
                                        a='S';
                                        a='O';
                                        x--;
                                        break;
                              }
                              if (a=='O' && a=='*') {
                                        a=' ';
                                        a='S';
                                        a='@';
                                        x--;
                                        break;
                              }
                              if (a=='@' && a==' ') {
                                        a=' ';
                                        a='S';
                                        a='O';
                                        x--;
                                        break;
                              }
                              if (a=='@' && a=='*') {
                                        a=' ';
                                        a='S';
                                        a='@';
                                        x--;
                                        break;
                              }
                        }
                        system("cls")                        ;
                        for (i = 0 ; i <= 8 ; i ++) puts(a) ;
                }
      }   
      //暂时没有补充成功后的动作
      //暂时编到w键和s键
      //期待完结
      system("pause");
      return 0;
}
页: [1]
查看完整版本: C语言编写推箱子,编到一半突然报错