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

到底哪错了???

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-9 08:40:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>

  4. int main()
  5. {
  6.     char a[50][50]={"##############################",   
  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.     char ch;
  29.    
  30.     x=1;y=1;p=12;q=29;   
  31.     for(i=0;i<=30;i++)
  32.                 puts(a[i]);
  33.     while(x!=p || y!=q)
  34.     {
  35.                 ch=getch();
  36.   
  37.       if(ch=='s')
  38.       {
  39.                         if(a[x+1][y]!='#')
  40.                         {
  41.                                 a[x][y]=' ';
  42.                 x++;
  43.                 a[x][y]='O';
  44.             }
  45.       }
  46.       
  47.       if(ch=='w')
  48.       {
  49.                         if(a[x-1][y]!='#')
  50.             {
  51.                                 a[x][y]=' ';
  52.                 x--;
  53.                 a[x][y]='O';
  54.             }
  55.       }
  56.       
  57.       if(ch=='a')
  58.       {
  59.                     if(a[x][y-1]!='#')
  60.             {
  61.                                 a[x][y]=' ';
  62.                 y--;
  63.                 a[x][y]='O';
  64.             }
  65.       }
  66.       
  67.       if(ch=='d')
  68.       {
  69.             if(a[x][y+1]!='#')
  70.             {
  71.                                 a[x][y]=' ';
  72.                 y++;
  73.                 a[x][y]='O';
  74.             }
  75.       }
  76.       system("cls");
  77.       for(i=0;i<=19;i++)
  78.           puts (a[i]);
  79.     }
  80.         system("cls");
  81.     printf("You Win!\n");
  82.     Sleep(5000);
  83.         return 0;
  84. }
复制代码




最佳答案

沙发
发表于 2014-3-9 08:40:16 | 只看该作者
cad20020601 发表于 2014-3-9 10:05
你真的在啊。。。

YES                                   
板凳
发表于 2014-3-9 09:56:35 | 只看该作者
沙发、、、
地板
发表于 2014-3-9 10:03:20 | 只看该作者

                                          
5#
发表于 2014-3-9 10:05:19 | 只看该作者
代码没有问题,只是你的位置没有调整好,拉一下那个滚动条试试
6#
发表于 2014-3-9 10:05:51 | 只看该作者
4399APPLE 发表于 2014-3-9 10:05
代码没有问题,只是你的位置没有调整好,拉一下那个滚动条试试

你真的在啊。。。
7#
发表于 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. }
复制代码

8#
 楼主| 发表于 2014-3-9 19:51:56 | 只看该作者

你来干啥的
9#
发表于 2014-3-9 22:52:53 | 只看该作者
4399APPLE 发表于 2014-3-9 10:05
代码没有问题,只是你的位置没有调整好,拉一下那个滚动条试试

代码很明显有个BUG~~
你把断点放到第31行  for(i=0;i<=30;i++)
调试一下,看看发生了什么事情~~
10#
发表于 2014-3-10 10:06:41 | 只看该作者
李掌柜 发表于 2014-3-9 22:52
代码很明显有个BUG~~
你把断点放到第31行  for(i=0;i

O                             
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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