2013-06-13 2 views
0

C# Connect Four Console ApplicationC# connect four console

В настоящее время я программирую подключение четырех игр в качестве консольного приложения для школьного задания.

Мой учитель в настоящее время не работает с управлением базой данных, и наш помощник-заменитель не очень помогает.

Поскольку я очень новичок в программировании, я не знаю, как написать функцию, которая бросает «диск» в массив из верхней строки, затем второй строки, третьей строки и т. Д. До тех пор, пока она не достигнет дна и останавливается.

Я знаю о задержке «thread.sleep()», поскольку ноль (диск) перемещается по массиву, который я хотел бы иметь возможность интегрировать в функцию.

Я абсолютный noob, когда дело доходит до компьютеров, и меня недостаточно изучили, чтобы выполнить задачу. Это последнее средство. Может ли кто-нибудь помочь мне в течение 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

Если бы я был вами, я бы включил '// Displays array' в свой собственный метод, поэтому каждый раз, когда вы обновляете массив, вы можете вызвать метод для его отображения. – Nolonar

+0

0 верхняя часть доски или внизу? (Предполагаю, что сверху) – Sayse

+0

Могу ли я увидеть ваш метод insertDic()? – CodeCamper

ответ

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; 
     } 
Смежные вопросы