Néanmoins je voudrais afficher une fenêtre qui se lanceraità partir du .exe or ce nest pas le cas de la console. Connaitriez vous un moyen pour afficher le tableau dans un fenêtre quand on lance le .exe?
Version imprimable
Néanmoins je voudrais afficher une fenêtre qui se lanceraità partir du .exe or ce nest pas le cas de la console. Connaitriez vous un moyen pour afficher le tableau dans un fenêtre quand on lance le .exe?
Avec ce code:Le texte Jeu du labyrinthe s'affichera dans la console. Tu peux faire pareil pour changer la couleur de fond avec la propriété Console.BackgroundColor.Code:
1
2
3
4
5
6 Console.ForegroundColor = ConsoleColor.Red Console.Write("Jeu") Console.ForegroundColor = ConsoleColor.Yellow Console.Write(" du ") Console.ForegroundColor = ConsoleColor.Green Console.Write("labyrinthe!")
Normalement si tu lance l'exe, tu aura ton form ET la console.
Bonjour,
Merci encore benito pour tes conseils. J'ai essayé la manip mais dans la console, les chiffres du tableau n'ont pas de couleurs mais il ya des chiffres en couleurs placés après ou avant le tableau suivant la place du code que tu m'as donné dans la procédure. Je ne sais pas si je me suis fait comprendre.
J'ai essayé ceci mais cela ne change rien:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 For i = 1 To n For j = 1 To n If T(i, j) = 2 Then Console.ForegroundColor = ConsoleColor.Red Console.Write("2") ElseIf T(i, j) = 3 Then Console.ForegroundColor = ConsoleColor.Yellow Console.Write(" 3 ") ElseIf T(i, j) = 1 Or T(i, j) = 7 Then Console.ForegroundColor = ConsoleColor.Green Console.Write("1" & "7") ElseIf T(i, j) = 0 Then Console.ForegroundColor = ConsoleColor.Blue Console.Write("0") End If Next j Next i
Pourtant chez moi ca marche parfaitement:
http://ups.imagup.com/07/1265595882.png
Je te joins le projet que tu m'avais passé et que j'ai modifié. Test pour voir si ça marche chez toi...
Pièce jointe 58349
Merci bien. Cela marche effectivement. Je n'avais pas pris en compte les dimensions du tableau que j'avais oubliées (cette partie du code a été faite par mon camarade).
Existe-il une autre commande qui cette fois remplacerait les chiffres par des carrés de couleurs?
Sinon, ce n'est pas grave je garderai cette configuration.
Je vais essayer d'améliorer le code parce que parfois la sortie ne s'affiche pas et des chemins sont hasardeux en effet.
Au lieu de mettre:
tu mets:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 For v = 1 To i Console.WriteLine() For w = 1 To j If T(v, w) = 0 Then Console.ForegroundColor = ConsoleColor.Blue Console.Write(T(v, w)) ElseIf T(v, w) = 3 Then Console.ForegroundColor = ConsoleColor.Yellow Console.Write(T(v, w)) ElseIf T(v, w) = 1 Or T(v, w) = 7 Then Console.ForegroundColor = ConsoleColor.Green Console.Write(T(v, w)) ElseIf T(v, w) = 2 Then Console.ForegroundColor = ConsoleColor.Red Console.Write(T(v, w)) End If Next w Next v
Ca n'affichera plus des lettres mais des espaces, avec une couleur de fond différente en fonction des valeurs.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 For v = 1 To i Console.WriteLine() For w = 1 To j If T(v, w) = 0 Then Console.BackgroundColor = ConsoleColor.Blue Console.Write(" ") ElseIf T(v, w) = 3 Then Console.BackgroundColor = ConsoleColor.Yellow Console.Write(" ") ElseIf T(v, w) = 1 Or T(v, w) = 7 Then Console.BackgroundColor = ConsoleColor.Green Console.Write(" ") ElseIf T(v, w) = 2 Then Console.BackgroundColor = ConsoleColor.Red Console.Write(" ") End If Next w Next v
C'est nickel. Je ne connaissais pas cette manip.
Tu m'enlèves une épine du pied, merci beaucoup.
Ne reste plus qu'à optimiser ce labyrinthe.
Une petite optimisation qui ne mange pas de pain:
Utilisation d'un Select Case, T(v, w) n'est évalué qu'une seule fois.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 For v = 1 To i Console.WriteLine() For w = 1 To j Select Case T(v, w) = 0 Case 1, 7 Console.ForegroundColor = ConsoleColor.Green Case 2 Console.ForegroundColor = ConsoleColor.Red Case 3 Console.ForegroundColor = ConsoleColor.Yellow Case Else Console.ForegroundColor = ConsoleColor.Blue End Select Console.Write(" ") Next w Next v
Sortie du Console.Write() car effectué dans tous les cas.
N.B. On peut aussi sortir le Select Case du For, en créant une fonction comme ceci:
Code principal moins chargé, et possibilité de modifier la fonction (autres choix de couleurs) sans modifié le code principal.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 For v = 1 To i Console.WriteLine() For w = 1 To j Console.ForegroundColor = ChoixCouleur(T(v, w)) Console.Write(" ") Next w Next v ... Private Function ChoixCouleur(ByVal valeur As Integer) As ConsoleColor Select Case valeur = 0 Case 1, 7 Return ConsoleColor.Green Case 2 Return ConsoleColor.Red Case 3 Return ConsoleColor.Yellow Case Else Return ConsoleColor.Blue End Select End Function
En espérant avoir été utile!
Autres petits conseils: dans ton code déclare des varaibles avec des noms plus explicites (pas simplement des lettre a, b, c...) et commente ton code: tu pourras t'y retrouver beaucoup plus facilement et tu auras moins de chances de faires de erreurs...
Ensuite je ne sais pas bien comment tu génére ton labyrinthe, mais tu devrais peu être essayer de mettre moins de boucles...;)