搜索
查看: 938|回复: 9
打印 上一主题 下一主题

到底哪错了???

[复制链接]
楼主
发表于 2014-3-9 11:39:22 | 显示全部楼层
本帖最后由 李掌柜 于 2014-3-9 17:30 编辑
  1. //这个版本也不是很完美~~
  2. #include <stdio.h>
  3. #include <stdlib.h>

  4. int main()
  5. {
  6.     char a[50][50]={"##############################",   //空间给的太小就会产生乱码,比如char a[21][31]
  7.                     "#O         #   ##   # ### ####",        //大了就是空白字符
  8.                     "# ###### # # #    # # ### ####",
  9.                     "# #   ## #   # #### # ###   ##",
  10.                     "#   # ##  ###    #  #  ## ####",
  11.                     "##### #     # ##### ##    ####",
  12.                     "#   # ##### #   #   # # #    #",
  13.                     "# # #    ## # #### ## # # ####",
  14.                     "# # # ##      ##      # # ####",
  15.                     "# # # ####### ## ###### #   ##",
  16.                     "# #   ##   # ## ###### ###   #",
  17.                     "# ###### # #####  #        # #",
  18.                     "#        # #     ##### ### # E",
  19.                     "# ######## ##### # ### ### # #",
  20.                     "#     # ## ##### ###       ###",
  21.                     "##### # ## #      ######## # #",
  22.                     "#     # ## ## ###        #   #",
  23.                     "# # ###       ###### ####### #",
  24.                     "# #    ### ##      #         #",
  25.                     "##############################"
  26.                    };
  27.     int i,x,y,p,q;
  28.     x=1;y=1;p=12;q=29;
  29.         char ch;
  30.     for(i=0;i<=30;i++)
  31.           puts (a[i]);        //断点调试时这里绘地图的时候会产生多余的空白字符
  32.     system("cls");         //结决方案是刷新掉~~
  33.         printf("按任意健游戏开始~^_^~!");        //并给一个提示   
  34.     while(x!=p || y!=q)
  35.     {
  36.             
  37.             ch=getch();
  38.         if(ch=='s')
  39.         {
  40.             if(a[x+1][y]!='#')
  41.               {
  42.                  a[x][y]=' ';
  43.                  x++;
  44.                  a[x][y]='O';
  45.               }
  46.         }
  47.       
  48.        if(ch=='w')
  49.        {
  50.             if(a[x-1][y]!='#')
  51.             {
  52.                 a[x][y]=' ';
  53.                 x--;
  54.                 a[x][y]='O';
  55.             }
  56.       }
  57.       
  58.       if(ch=='a')
  59.       {
  60.             if(a[x][y-1]!='#')
  61.             {
  62.                 a[x][y]=' ';
  63.                 y--;
  64.                 a[x][y]='O';
  65.             }
  66.       }
  67.       
  68.       if(ch=='d')
  69.       {
  70.             if(a[x][y+1]!='#')
  71.             {
  72.                 a[x][y]=' ';
  73.                 y++;
  74.                 a[x][y]='O';
  75.             }
  76.       }
  77.       
  78.       system("cls");
  79.       for(i=0;i<=19;i++)
  80.           puts (a[i]);
  81.       
  82.     }
  83.     system("cls");
  84.     printf("You Win!\n");
  85.     return 0;
  86. }
复制代码

沙发
发表于 2014-3-9 22:52:53 | 显示全部楼层
4399APPLE 发表于 2014-3-9 10:05
代码没有问题,只是你的位置没有调整好,拉一下那个滚动条试试

代码很明显有个BUG~~
你把断点放到第31行  for(i=0;i<=30;i++)
调试一下,看看发生了什么事情~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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