用C#的控制台输出五子棋这个游戏 注意是控制台啊!

解决方案 »

  1.   

    参考如下代码:
    using System;
    using System.Collections.Generic;
    using System.Text;namespace GobangApp
    {
        class Gobang
        {
            /// <summary>
            /// 行数
            /// </summary>
            public const int COL_COUNT = 17;
            /// <summary>
            /// 列数
            /// </summary>
            public const int ROW_COUNT = 17;
            /// <summary>
            /// 网格字符
            /// </summary>
            public const string GRID_CHARS = "┌┬┐├┼┤└┴┘";
            /// <summary>
            /// 棋子字符
            /// </summary>
            public const string CHESS_CHARS = "●○";
            /// <summary>
            /// 棋子的类型
            /// </summary>
            public enum ChessType
            {
                /// <summary>
                /// 没有棋子
                /// </summary>
                None,
                /// <summary>
                /// 黑子
                /// </summary>
                Black,
                /// <summary>
                /// 百子
                /// </summary>
                White
            }
            /// <summary>
            /// 棋子的坐标
            /// </summary>
            public ChessType[,] chessPoints = new ChessType[COL_COUNT, ROW_COUNT];
            /// <summary>
            /// 绘制到屏幕
            /// </summary>                 
            public void Draw()
            {
                Console.Clear();
                Console.CursorLeft = 0;
                Console.CursorTop = 0;
                StringBuilder vStringBuilder = new StringBuilder(0x1000);            for (int vRow = 0; vRow < ROW_COUNT; vRow++)
                {
                    for (int vCol = 0; vCol < COL_COUNT; vCol++)
                    {
                        switch(chessPoints[vCol, vRow])
                        {
                            case ChessType.None:
                                int i, j;
                                switch (vCol)
                                {
                                    case 0: i = 0; break;
                                    case COL_COUNT - 1: i = 2; break;
                                    default: i = 1; break;
                                }
                                switch (vRow)
                                {
                                    case 0: j = 0; break;
                                    case ROW_COUNT - 1: j = 2; break;
                                    default: j = 1; break;
                                }
                                vStringBuilder.Append(GRID_CHARS[j * 3 + i]);
                                break;
                            case ChessType.Black: 
                                vStringBuilder.Append(CHESS_CHARS[0]);
                                break;
                            case ChessType.White: 
                                vStringBuilder.Append(CHESS_CHARS[1]);
                                break;
                        }
                    }
                    vStringBuilder.AppendLine();
                }
                Console.Write(vStringBuilder.ToString());
            }
        }    class Program
        {
            static void Main(string[] args)
            {
                Gobang vGobang = new Gobang();
                vGobang.chessPoints[8, 8] = Gobang.ChessType.Black;
                vGobang.Draw();
                Console.ReadKey();
                vGobang.chessPoints[8, 9] = Gobang.ChessType.White;
                vGobang.Draw();
                Console.ReadKey();
                vGobang.chessPoints[6, 6] = Gobang.ChessType.Black;
                vGobang.Draw();
                Console.ReadKey();
            }
        }
    }