0

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

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

我的老师目前不在做数据库管理,我们的代课老师帮不上什么忙。

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

我知道延迟 '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();
            }
4

1 回答 1

1

真的变得相当复杂。因为它是 Connect 4,所以您可以更轻松地添加每行中有多少个棋子,但您还必须跟踪哪个团队在现场是什么。我能为您做的最好的事情就是让您了解如何放置碎片。

你必须做的事情

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

2)计算获胜者(这将是一个痛苦)

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

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

        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;
        }
于 2013-06-13T12:05:42.820 回答