IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Associer une couleur à un chiffre


Sujet :

Windows Forms

  1. #21
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    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?

  2. #22
    Membre habitué Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Docten Voir le message
    Bon, on peut mettre de la couleur (j'ai essayé par exemple avec Console.ForegroundColor = ConsoleColor.Yellow) mais maintenant il faudrait attribuer une couleur à chaque chiffre.
    Avec ce code:
    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!")
    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.

    Citation Envoyé par Docten Voir le message
    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?
    Normalement si tu lance l'exe, tu aura ton form ET la console.

  3. #23
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    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.

  4. #24
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    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

  5. #25
    Membre habitué Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Points : 196
    Points
    196
    Par défaut
    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

  6. #26
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    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.

  7. #27
    Membre habitué Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Points : 196
    Points
    196
    Par défaut
    Au lieu de mettre:
    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
    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.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
    Ca n'affichera plus des lettres mais des espaces, avec une couleur de fond différente en fonction des valeurs.

  8. #28
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    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.

  9. #29
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Une petite optimisation qui ne mange pas de pain:
    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
    Utilisation d'un Select Case, T(v, w) n'est évalué qu'une seule fois.
    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 : 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
    Code principal moins chargé, et possibilité de modifier la fonction (autres choix de couleurs) sans modifié le code principal.

    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.

  10. #30
    Membre habitué Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Points : 196
    Points
    196
    Par défaut
    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...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/08/2013, 17h06
  2. Réponses: 8
    Dernier message: 30/03/2009, 15h31
  3. Mettre une couleur à une lettre ou à un chiffre
    Par spico45 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2008, 09h28
  4. Associer une couleur
    Par delire8 dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 04/04/2008, 12h49
  5. Associer une couleur à un nombre
    Par lolow dans le forum LabVIEW
    Réponses: 1
    Dernier message: 22/12/2007, 02h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo