C#连接四个控制台

时间:2013-06-13 11:03:30

标签: c# console connect

C#连接四个控制台应用程序

我目前正在编写一个连接四游戏作为学校作业的控制台应用程序。

我的老师目前缺席数据库管理,我们的代课老师帮助不大。

由于我对编程很陌生,我不知道如何编写一个函数,将“disc”从顶行,第二行,第三行等放入数组,直到它到达底部并停止。

我知道延迟'thread.sleep()',因为零(光盘)向下移动数组,我希望能够将其集成到函数中。

对于计算机而言,我是一个绝对的菜鸟,我没有足够的教学来完成任务。这是最后的手段。谁可以在27小时内帮助我?感谢。

我目前在我的主要功能中有这个代码:

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading; // Allows for the delay object

    namespace ConnectFour
    {
        class Program
        {
            static void Main(string[] args)
            {
                introduction();
                int[,] slotBoard = new int[7, 7]; // Initialises array
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("\n\n\t\t\t\t 1 2 3 4 5 6 7\n");
                Console.ForegroundColor = ConsoleColor.White;
                string tabbing = "\t\t\t\t ";
                for (int i = 0; i < 7; i++)
                {
                    Console.Write(tabbing);
                    for (int n = 0; n < 7; n++)
                    {
                        Console.Write(slotBoard[i, n]); // Displays array
                        Console.Write(" ");
                    }
                    Console.WriteLine();
                }
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write("\n\n\t\t   Where would you like to place your disc? ");
                Console.ForegroundColor = ConsoleColor.White;
                insertDisc();
                Console.ReadLine();
            }

1 个答案:

答案 0 :(得分:1)

真的很复杂。因为它是Connect 4,所以你可以更容易地添加每行中有多少件,但是你还必须跟踪哪个团队是现场的。我能为您做的最好的事情就是让您了解如何放下碎片。

你必须做的事情

  

1)跟踪团队(您可能需要为团队制作另一个阵列)

     

2)计算胜利者(这将是一次痛苦)

     

3)使用sleep制作动画(给你一个例子)

下面的代码向您展示了如何放下碎片。您应该能够将我的混乱缩短为几行代码,并添加您需要的其他功能。

        int[,] slotBoard = new int[7,7]; 
        Console.SetCursorPosition(0, 0);
        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine("\n\n\t\t\t\t 1 2 3 4 5 6 7\n");
        Console.ForegroundColor = ConsoleColor.White;
        string tabbing = "\t\t\t\t ";
        for (int r = 0; r < 7; r++)
        {
            System.Threading.Thread.Sleep(100);
            Console.Write(tabbing);
            for (int c = 0; c < 7; c++)
            {
                Console.Write(0);
                Console.Write(" ");
            }
            Console.WriteLine();
        }
        Console.ForegroundColor = ConsoleColor.Cyan;
        Console.Write("\n\n\t\t   Where would you like to place your disc? ");
        Console.ForegroundColor = ConsoleColor.White;
        again:
        switch (Console.ReadKey(true).KeyChar.ToString())
        {
            case "1":
                Console.Write("1");
                if (slotBoard[0, 0] < 7) slotBoard[0, 0]++;
                Console.SetCursorPosition(33, 11 - slotBoard[0, 0]);
                Console.Write("1");
                Console.SetCursorPosition(60, 13);
                goto again;
            case "2":
                Console.Write("2");
                if (slotBoard[1, 0] < 7) slotBoard[1, 0]++;
                Console.SetCursorPosition(35, 11 - slotBoard[1, 0]);
                Console.Write("1");
                Console.SetCursorPosition(60, 13);
                goto again;
            case "3":
                Console.Write("3");
                 if (slotBoard[2, 0] < 7) slotBoard[2, 0]++;
                Console.SetCursorPosition(37, 11 - slotBoard[2, 0]);
                Console.Write("1");
                Console.SetCursorPosition(60, 13);
                goto again;
            case "4":
                Console.Write("4");
                 if (slotBoard[3, 0] < 7) slotBoard[3, 0]++;
                Console.SetCursorPosition(39, 11 - slotBoard[3, 0]);
                Console.Write("1");
                Console.SetCursorPosition(60, 13);
                goto again;
            case "5":
                Console.Write("5");
                if (slotBoard[4, 0] < 7) slotBoard[4, 0]++;
                Console.SetCursorPosition(41, 11 - slotBoard[4, 0]);
                Console.Write("1");
                Console.SetCursorPosition(60, 13);
                goto again;
            case "6":
                Console.Write("6");
                if (slotBoard[5, 0] < 7) slotBoard[5, 0]++;
                Console.SetCursorPosition(43, 11 - slotBoard[5, 0]);
                Console.Write("1");
                Console.SetCursorPosition(60, 13);
                goto again;
            case "7":
                Console.Write("7");
                if (slotBoard[6, 0] < 7) slotBoard[6, 0]++;
                Console.SetCursorPosition(45, 11 - slotBoard[6, 0]);
                Console.Write("1");
                Console.SetCursorPosition(60, 13);
                goto again;
            default:
                goto again;
        }