new drawing methods

This commit is contained in:
bwbl
2024-10-31 15:18:00 +01:00
parent ba79b2a59f
commit 8123ddacec

View File

@ -375,6 +375,10 @@ namespace P4
return false;
}
}
/// <summary>
/// Classe Board contient les méthodes pour la création du tableau
/// </summary>
public class Board
{
private Program _program = new Program();
@ -442,7 +446,50 @@ namespace P4
/// Méthode DrawPlayGroundBorder qui dessine le terrain de jeu
/// </summary>
/// <param name="board">tableau de jetons</param>
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("╝");
}
}*/
/// <summary>
/// Méthode DrawPlayGround qui dessine les jetons dans le terrain de jeu
@ -500,6 +547,76 @@ namespace P4
/// </summary>
/// <param name="board">tableau de jetons</param>
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("╝");
}
}*/
/// <summary>
/// Méthode DrawBoard qui dessine les jetons sur le plateau