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();
}
答案 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;
}