0

C# Connect Four コンソール アプリケーション

私は現在、学校の課題のコンソール アプリケーションとしてコネクト フォー ゲームをプログラミングしています。

私の先生は現在、データベース管理のために欠席しており、代理の先生はあまり役に立ちません。

私はプログラミングに非常に慣れていないので、一番上の行から配列に「ディスク」をドロップする関数を作成する方法がわかりません.

ゼロ(ディスク)が配列を下に移動するときの遅延「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 に答える