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?
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Je te joins le projet que tu m'avais passé et que j'ai modifié. Test pour voir si ça marche chez toi...
ioio_modif.rar
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!
Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
À quelle heure dormez-vous ?
Censément, quelqu'un de sensé est censé s'exprimer sensément.
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...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager