2016-03-17 1 views
0

J'essaie de créer une table d'échecs et de la sortir à l'écran. Je veux aussi pouvoir ajouter des x dans la table. Par exemple, si je veux montrer que la position actuelle d'un chiffre est A, 2 hache apparaît là .. Je ne disposent actuellement que le tableau affiché et il est même pas contenue dans le tableau:Table d'échecs de l'application console C#

private static readonly string[] letters = { "A", "B", "C", "D", "E", "F", "G", "H" }; 
    private const int size = 8; 
    private static void Main() 
    { 
     const string top = " -----------------"; 
     const string line = "| | | | | | | | |"; 
     for (int i = 0; i < size; i++) 
     { 
      Console.WriteLine(" {0}", top); 
      Console.WriteLine("{0} {1}", size - i, line); 
     } 
     Console.WriteLine(" {0}", top); 
     Console.Write(" "); 
     for (int i = 0; i < size; i++) 
     { 
      Console.Write("{0} ",letters[i]); 
     } 
     Console.ReadKey(); 
    } 

Cependant, je dois absolument pas d'accès ou de contrôle sur la table, il est juste dessiné. Je veux être en mesure de mettre le "x" entre l'espace libre ici: | x | Comment puis-je mettre cette table dans une sorte de tableau RAID/tableau 2D ou une liste imbriquée?

Répondre

0

créer un tableau 2D de caractères: char[x][y] boxes où x est la largeur de la planche et y est la hauteur.

Initialise chaque caractère dans un espace blanc.

Set désiré endroit pour désiré CHAR: boxes[2][2] = 'x'

Faire une boucle:

for(int y = 0; y < boxes.length; y++) 
{ 
    //print line 
    Console.Write("|") 
    for(int x = 0; x < boxes[0].length; x++) 
    { 
     //Show char at that spot 
     Console.Write("{0}|", boxes[y][x]); 
    } 
    //procede to next line 
    Console.WriteLine(); 
} 
1

Regardez ma réponse ici: Tic-tac-toe code help improve

Je pense que c'est exactement ce que vous recherchez. Dans votre cas, il peut être suffisant d'utiliser un tableau de bool, car vous ne voulez stocker que deux états (vide ou X).

private static readonly string[] letters = { "A", "B", "C", "D", "E", "F", "G", "H" }; 
    private const int size = 8; 

    private static bool[,] chessboard; 

    private static void Main() 
    { 
     const string top = " -----------------"; 

     //init chessboard 
     chessboard = new bool[size, size]; 

     //place a figure on field 4/6 for demonstration 
     chessboard[4, 6] = true; 

     for (int y = 0; y < size; y++) 
     { 
      Console.WriteLine(" {0}", top); 
      Console.Write("{0} ", size - y); 
      for (int x = 0; x < size; x++) 
      { 
       Console.Write("|{0}", chessboard[x, y] ? 'X' : ' '); 
      } 
      Console.WriteLine("|"); 
     } 

     Console.Write(" "); 
     for (int i = 0; i < size; i++) 
     { 
      Console.Write("{0} ", letters[i]); 
     } 
     Console.ReadKey(); 
    } 
+0

Cela ne contribue pas moi du tout pouvez-vous fournir un exemple de code? – KOPEUE

+0

Voilà: D –

+0

Je pense que l'utilisation de char/string est beaucoup mieux que bool comme indiqué dans la réponse de FreshWaterTaffy et il suffit de mettre la valeur du char là-bas pas en vérifiant et en mettant – KOPEUE