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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 复古。先生 于 2014-7-30 23:21 编辑

      public static void drawGame()
        {
            string[] game = new string[100];
            int[] stop = { 3, 27, 45, 92 };//暂停1
            int[] lucky = { 5, 35, 66, 88, 99 };//幸运轮盘2
            int[] guy = { 4, 65, 34, 57, 87,98 };//炸弹3
            int[] change = new int[100];//change控制方格效果

            #region 令change制0表普通,制1表暂停,制2表轮盘,制3表炸弹
            for (int i = 0; i < stop.Length; i++)
            {
                change[stop【i】] = 1;
            }
            for (int i = 0; i < lucky.Length; i++)
            {
                change[lucky
【i】] = 2;
            }
            for (int i = 0; i < guy.Length; i++)
            {
                change[guy
【i】] = 3;
            }
            #endregion

            for (int i = 0; i < 100; i++)
            {
                switch (change【i】)

                {
                    case 0:
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    game 【i】= "□";
                    break;
                    case 1:
                    Console.ForegroundColor = ConsoleColor.Green;
                    game 【i】=  "◆";
                    break;
                    case 2:
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    game 【i】=  "◎";
                    break;
                    case 3:
                    Console.ForegroundColor = ConsoleColor.Red;
                    game 【i】=  "☆";
                    break;
                    default:
                    game 【i】=  "□";
                    break;
                }
            }
        



            for (int i = 0; i < 30; i++)
            {
                Console.Write(game【i】);
            }
            Console.WriteLine();
            for (int i = 30; i < 35; i++)
            {
                for (int j = 0; j < 29; j++)
                {
                    Console.Write("  ");
                }
                Console.WriteLine(game【i】);
            }
            for (int i = 64; i > 34; i--)
            {
                Console.Write(game【i】);
            }
            Console.WriteLine();
            for (int i = 65; i < 70; i++)
            {
                Console.WriteLine(game【i】);
            }
            for (int i = 70; i < 100; i++)
            {
                Console.Write(game【i】);
            }

        }

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

3 个回复

倒序浏览
我知道为什么呢,^-^!
回复 使用道具 举报
问题分析:
在你的那个填充符号的步骤里,你把数组的最后一个元素game[99],
也就是地图的最后一步填充为幸运罗盘。值为2。
这点不是问题,问题出现在你的switch语句中
在你判断地图中每一步的图形的时候,根据图形设置前景色,
每判断一次就改变一次前景色,
最终判断到最后一个元素。注意这个前景色是整体的。
已经打印出来得东西颜色不受影响,如果你后面不改变前景色,
那么后面打印出来的东西都是最后一次设置的那个颜色。
最后一个元素为game[99],值为2,前景色被设为ConsoleColor.DarkRed,
期间你并没有输出地图,所以颜色改来改去,最终被定为ConsoleColor.DarkRed,
然后执行后面的代码,开始输出地图。所以整个地图的颜色就变为ConsoleColor.DarkRed
改变颜色的步骤在打印地图的时候改。

评分

参与人数 1技术分 +1 收起 理由
陈君 + 1

查看全部评分

回复 使用道具 举报
流失的温度0 发表于 2014-8-1 14:53
问题分析:
在你的那个填充符号的步骤里,你把数组的最后一个元素game[99],
也就是地图的最后一步填充为幸 ...

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