From 8123ddacec75a7cb7c80336898fff176d08dd5f1 Mon Sep 17 00:00:00 2001 From: bwbl Date: Thu, 31 Oct 2024 15:18:00 +0100 Subject: [PATCH] new drawing methods --- Program.cs | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 119 insertions(+), 2 deletions(-) diff --git a/Program.cs b/Program.cs index 88dc30b..0065af1 100644 --- a/Program.cs +++ b/Program.cs @@ -375,6 +375,10 @@ namespace P4 return false; } } + + /// + /// Classe Board contient les méthodes pour la création du tableau + /// public class Board { private Program _program = new Program(); @@ -442,7 +446,50 @@ namespace P4 /// Méthode DrawPlayGroundBorder qui dessine le terrain de jeu /// /// tableau de jetons + public void DrawPlayGroundBorder(Token[,] board) + { + for (int y = 0; y < 3; y++) + for (int x = 0; x < board.GetLength(0) * 4 + 1; x++) + { + // on met la position partout où l'on va écrire un caractère + Console.SetCursorPosition(x + leftSpacing, y + topSpacing); + + // case 0, 0 + if (x == 0 && y == 0) + Console.Write('╔'); + + // case 0, 2 + if (x == 0 && y == 2) + Console.Write('╚'); + + // toutes 4 case de la 2eme ligne + if (x % 4 == 0 && y == 1) + Console.Write('║'); + + // tout le reste + if (x % 4 != 0 && y != 1) + Console.Write('═'); + + // dernière case de la première rangée + if (x == board.GetLength(0) * 4 && y == 0) + Console.Write('╗'); + + // dernière case de la première rangée + if (x == board.GetLength(0) * 4 && y == 2) + Console.Write('╝'); + + // tous les case 4 case de la première ligne + if (x != board.GetLength(0) * 4 && x % 4 == 0 && y == 0) + Console.Write('╦'); + + // tous les case 4 case de la dernière ligne + if (x != board.GetLength(0) * 4 && x % 4 == 0 && y == 2) + Console.Write('╩'); + } + } + + /*public void DrawPlayGroundBorder(Token[,] board) { // on place le curseur en haut du terrain de jeu après le titre Console.SetCursorPosition(leftSpacing, topSpacing); @@ -474,7 +521,7 @@ namespace P4 Console.Write("╩═══"); } Console.Write("╝"); - } + }*/ /// /// Méthode DrawPlayGround qui dessine les jetons dans le terrain de jeu @@ -500,6 +547,76 @@ namespace P4 /// /// tableau de jetons public void DrawBorder(Token[,] board) + { + for (int y = 0; y < board.GetLength(1) * 2 + 1; y++) + for (int x = 0; x < board.GetLength(0) * 4 + 1; x++) + { + // on place le curseur + Console.SetCursorPosition(x + leftSpacing, y + topSpacing + 3); + + // la première case + if (x == 0 && y == 0) + Console.Write('╔'); + + // une case sur deux en y et une case sur quatre en y + if (x % 4 == 0 && y % 2 == 1) + Console.Write('║'); + + // toutes les case qui ne sont pas toutes les 4 case en x et toutes les 2 case en y + if (x % 4 != 0 && y % 2 == 0) + Console.Write('═'); + + // dans la première colonne toutes les deux cases + if (x == 0 && y == board.GetLength(1) * 2) + Console.Write('╚'); + + // la dernière case de la première ligne + if (x == board.GetLength(0) * 4 && y == 0) + Console.Write('╗'); + + // la dernière case de la dernière ligne + if (x == board.GetLength(0) * 4 && y == board.GetLength(1) * 2) + Console.Write('╝'); + + // toutes les 4 case de la première ligne sauf la première et la dernière + if (x != 0 && + x != board.GetLength(0) * 4 && + x % 4 == 0 && + y == 0) + Console.Write('╦'); + + // toutes les 4 case de la dernière ligne sauf la première et la dernière + if (x != 0 && + x != board.GetLength(0) * 4 && + x % 4 == 0 && + y == board.GetLength(1) * 2) + Console.Write('╩'); + + // toutes les 2 case d'une ligne sur deux dans la dernière colonne sauf la première et la dernière + if (y != 0 && + y != board.GetLength(1) * 2 && + x == board.GetLength(0) * 4 && + y % 2 == 0) + Console.Write('╣'); + + // toutes les 2 case d'une ligne sur deux dans la première colonne sauf la première et la dernière + if (y != 0 && + y != board.GetLength(1) * 2 && + x == 0 && + y % 2 == 0) + Console.Write('╠'); + + // toutes les cases au milieu + if (x != 0 && + x != board.GetLength(0) * 4 && + y != 0 && + y != board.GetLength(1) * 2 && + x % 4 == 0 && + y % 2 == 0) + Console.Write('╬'); + } + } + /*public void DrawBorder(Token[,] board) { // déclaration de l'espacement du plateau int playgroundSpacing = topSpacing + 3; @@ -548,7 +665,7 @@ namespace P4 Console.Write("╩═══"); } Console.Write("╝"); - } + }*/ /// /// Méthode DrawBoard qui dessine les jetons sur le plateau