A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 包连靖 中级黑马   /  2012-4-2 14:08  /  1888 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 包连靖 于 2012-4-5 14:40 编辑

飞行棋的图案始终没法对齐,不知道为什么呀

难道是因为我和视频里面用的特殊符号不一样?
汗,我后来把  for (int j = 0; j <29; j++)  里面的29改成了39就可以竖着下来了.不过视频里面是29呀..
我自己找了半天都没发现为什么要多10,求大神解答一下

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

3 个回复

倒序浏览
你是不是Console.Write("  ")时输入的空格数不对,里面是两个空格。for(int j = 0; j <29; j++)绘制的是29个双空格,因为那些符号都是全角的,你输入的空格是半角的,所以对不齐了!我也刚写完飞行棋。

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
把第一行第一个除开,那么第一行循环是for (int a=1; a < 30;a++ )
然后是第一个列,循环是for (int a = 30; a < 35;a++ )
第二行循环是:for (int a = 64; a > 34; a--)
第二列循环是:for (int a = 65; a < 70; a++)
组后一行循环:for (int a = 70; a < 100; a++)
至于空格,如果是半角的,就是五十八个空格,如果是全角的,就是29个空格。
你再试试……

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
/// <summary>
        /// 画地图
        /// </summary>
        public static void Drawmap()
        {
            for (int i = 0; i <= 29; i++)//第一行地图
            {
                Console.Write(Getmapstring(i));
            
            }
            //第二列地图
            Console.WriteLine();
            for (int i = 30; i <= 34; i++)
            {
                for (int j = 0; j <= 28; j++)
                {
                    Console.Write("  ");
                }
                Console.WriteLine(Getmapstring(i));
            }
            //第三行地图
            for (int i = 64; i >= 35; i--)
            {
                Console.Write(Getmapstring(i));
            }
            Console.WriteLine();
            //第四列地图
            for (int i = 65; i <= 69; i++)
            {
                Console.WriteLine(Getmapstring(i));
            }
            //第五行地图
            for (int i = 70; i <= 99; i++)
            {
                Console.Write(Getmapstring(i));
            }
            Console.WriteLine();

可能是你画的列的时候 ConsoleWrite("  ");是两个半角空格

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马