Aide à la programmation VB

Pages: [1]

Aire Ayquaza

  • Membre
  • 906 posts
16 avril 2011, 15:39
Je doit refaire mon progrmme car j'ai supprimé mes sources et là bah je plante un peu

voici le code
Spoiler
Module Module1

    Sub Main()
        Dim Lettre As String = ""
        Dim Nombre As Integer
        Randomize()
        Dim NombreMystere As Integer = CInt(Rnd() * 1000 + 1)
        Dim NombreDeCoups As Integer = 0
        Dim Prenom As String
        Console.WriteLine("----------------Jeu du Nombre Mystère----------------")
        Console.WriteLine("Avant de commencer, je vais vous demander votre prénom.")
        Prenom = Console.ReadLine()
        Console.WriteLine("Bonjour " & Prenom & ", vous allez jouer au jeu du Nombre Mystère réalisé par Matthieu Lepers. Si vous rencontrez un problème avec ce jeu, veuillez le contacté à cette adresse : matthieulepers@hotmail.fr")
        Console.WriteLine()
        Do
            Console.WriteLine("Entrez un nombre entre 1 et 1000")
            NombreDeCoups = NombreDeCoups + 1
            Lettre = Console.ReadLine()
            If Nombre > NombreMystere Then
                Console.Beep(1000, 200)
                Console.WriteLine("Entrez un nombre plus petit")
                Console.WriteLine()
            ElseIf Nombre < NombreMystere Then
                Console.Beep(500, 200)
                Console.WriteLine("Entrez un nombre plus grand")
                Console.WriteLine()
            ElseIf Nombre = NombreMystere Then
                Console.Beep(1000, 200)
                Console.Beep(1000, 200)
                Console.Beep(1000, 200)
                Console.WriteLine("Bravo " & Prenom & ", vous avez trouvé le Nombre Mystère qui était " & NombreMystere & " en " & NombreDeCoups & " coups.")
            End If
        Loop Until IsNumeric(Lettre)
        Console.WriteLine("Appuyez sur une touche pour continuer...")
        Console.ReadKey()
    End Sub
End Module
Merci a ceux qui s'y connaissent en VB.NET

Et a ceux qui ne s'y connaissent pas merci de ne pas poster
« Modifié: 20 avril 2011, 14:18 par Aire Ayquaza »

Boogy

  • Membre
  • 8335 posts
16 avril 2011, 15:59
Déplacé vers Random.

Aire Ayquaza

  • Membre
  • 906 posts
16 avril 2011, 16:28
Merci de pas avoir prévenu

EDIT:Ne pas lock j'ai un probleme !
La boucle Do ne s'arette pas quand le nombre est trouver
Code
Module Module1

    Sub Main()
        Dim Rejouer As Integer = 0
        Dim Lettre As String = ""
        Dim Nombre As Integer
        Randomize()
        Dim NombreMystere As Integer = CInt(Rnd() * 1000 + 1)
        Dim NombreDeCoups As Integer = 0
        Dim Prenom As String
        Console.WriteLine("----------------Jeu du Nombre Mystère----------------")
        Console.WriteLine("Avant de commencer, je vais vous demander votre prénom.")
        Prenom = Console.ReadLine()
        Console.WriteLine("Bonjour " & Prenom & ", vous allez jouer au jeu du Nombre Mystère réalisé par Matthieu Lepers. Si vous rencontrez un problème avec ce jeu, veuillez le contacté à cette adresse : matthieulepers@hotmail.fr")
        Console.WriteLine()
        Do
            Do
                Console.WriteLine("Entrez un nombre entre 1 et 1000")
                NombreDeCoups = NombreDeCoups + 1
                Lettre = Console.ReadLine()
            Loop Until IsNumeric(Lettre)
            Nombre = Lettre
            If Nombre > NombreMystere Then
                Console.Beep(1000, 200)
                Console.WriteLine("Entrez un nombre plus petit")
                Console.WriteLine()
            End If
            If Nombre < NombreMystere Then
                Console.Beep(500, 200)
                Console.WriteLine("Entrez un nombre plus grand")
                Console.WriteLine()
            End If
            If Nombre = NombreMystere Then
                Console.Beep(1000, 200)
                Console.Beep(1000, 200)
                Console.Beep(1000, 200)
                Console.WriteLine("Bravo " & Prenom & ", vous avez trouvé le Nombre Mystère qui était " & NombreMystere & " en " & NombreDeCoups & " coups.")
            End If
        Loop While IsNumeric(Lettre)
        Console.WriteLine("Appuyez sur une touche pour continuer...")
        Console.ReadKey()
    End Sub
End Module
« Modifié: 17 avril 2011, 13:26 par Aire Ayquaza »

LynxAenslade

  • Membre
  • 174 posts
17 avril 2011, 19:20
Tu as testé le débug pour voir si la condition sur Lettre est bien remplie quand le joueur trouve ?

pokastuce

  • Membre
  • 676 posts
17 avril 2011, 21:43
quand on regarde le code on voit une boucle principale (logique pour le test du nombre à l'itération n) et dedans une boucle.

la deuxième boucle, osef elle sert juste à vérifier qu'on a rentré un nombre :p

la deuxième doit se terminer quand on a terminé donc ... nombre=nombremystere

et pourquoi mettre
Loop While IsNumeric(Lettre)

puisqu'à chaque fois que ce test entre en jeu c'est que Lettre est déjà un numéric (boucle imbriquée qui demande de rentrer un nombre tant qu'il n'est pas un nombre

Donc pour arrêter la boucle, tu peux faire un gros break (mais c'est hyper crade - bien que dans les langages de hauts niveaux comme bas niveaux, on peut se le permettre maintenant)
une facon propre de faire est de déclarer un booléen avant la première boucle (nom de variable : estTrouve) et de l'initialiaser à False.

lorsque le test nombre=nombremystere
en plus d'afficher youp la boum c'est trouvé, met cette variable à True ;)

donc lors de la déclaration des variables :
Dim estTrouve As Boolean = False

puis au lieu de
Loop While IsNumeric(Lettre)
tu auras donc
Loop While estTrouve = False //edit remplacé le == par = x)

Aire Ayquaza

  • Membre
  • 906 posts
18 avril 2011, 10:26
Merci je vais tester cela
EDIT:Sa a pas fonctionné
M@T m'avais deja corriger sa et sa marché super le probleme c'est que enfaisant le netoyage de mon ordi j'ai supprimer les source ><

J'ai le programme qui fonctionne tres bien mais pas les sources j'aimerai les retrouver sans a avoir a utiliser un décompilateur (trop complexe)

Le probleme c'est que M@T est plus co depuit 5 jours

Je voulais amélioré mon jeu en ajoutant la table des scores qui seront gardé en mémoire un peu comme sa:
  • Place        Prenom           Nombre de coups
  • 1er           Matthieu(Moi)              7
  • 2ème        Pokastuce                   8
  • 3ème        Boogy                         9
  • 4ème
  • 5ème
  • 6ème
  • 7ème
  • 8ème
  • 9ème
  • 10ème
Et que sa s'actualise a chaque nouveau score
PS:comment on met des couleur dans une console ?
EDIT:Ah oui j'oubiler ! La boucle qui fait en sorte que la console ne demande que un nombre est importante sinon le programme plante ou donne une valeur tres incertaine a le lettre donné
« Modifié: 18 avril 2011, 10:45 par Aire Ayquaza »

pokastuce

  • Membre
  • 676 posts
18 avril 2011, 14:28
Merci je vais tester cela
EDIT:Sa a pas fonctionné
quelle est la source avec ta mise en place de ma correction parce qu'elle marche x)

Citation de: Aire Ayquaza
PS:comment on met des couleur dans une console ?
dans le package Imports Win32.Kernel32.ConsoleColor
tu as SetConsoleColor(fore As Color, back As Color, Attributes (je mets toujours à Attributes.None)
utilise cette fonction avant toute sortie de chaine dans la console

fore & back sont le résultat de Or sur des couleurs primaires (si tu veux faire des couleurs laternatives :p
exemples de valeurs :
Black = 0
Blue = 16
Green = 32
Red = 64
Magenta = Blue Or Red
White = Blue Or Green Or Red
Gray = 128
LightGreen = Gray Or Green

tu peux aussi charger les couleurs avec ForeGroundColors.{blop} >> laisse faire l'autocomplteur pour avoir le nom exact de la classe contenant les couleur et l'énumération des couleur

Citation de: Aire Ayquaza
EDIT:Ah oui j'oubiler ! La boucle qui fait en sorte que la console ne demande que un nombre est importante sinon le programme plante ou donne une valeur tres incertaine a le lettre donné
Ba oui quelle est importante, jamais dit le contraire :p
comme en C quand tu fais des prompt de valeurs si tu veux une valeurs sur un integer mais que stdin, un flux etc... obtiens une chaine, ca te foire toute l'entrée standard, donc y a des fonctions prévues, scanf, sscanf, fscanf, et j'en passe :)

Aire Ayquaza

  • Membre
  • 906 posts
18 avril 2011, 14:45
Voila le code :
Code
Module Module1

    Sub Main()
        Dim estTrouve As Boolean = False
        Dim Rejouer As Integer = 0
        Dim Lettre As String = ""
        Dim Nombre As Integer
        Randomize()
        Dim NombreMystere As Integer = CInt(Rnd() * 1000 + 1)
        Dim NombreDeCoups As Integer = 0
        Dim Prenom As String
        Console.WriteLine("----------------Jeu du Nombre Mystère----------------")
        Console.WriteLine("Avant de commencer, je vais vous demander votre prénom.")
        Prenom = Console.ReadLine()
        Console.WriteLine("Bonjour " & Prenom & ", vous allez jouer au jeu du Nombre Mystère réalisé par Matthieu Lepers. Si vous rencontrez un problème avec ce jeu, veuillez le contacté à cette adresse : matthieulepers@hotmail.fr")
        Console.WriteLine()
        Do
            Do
                Console.WriteLine("Entrez un nombre entre 1 et 1000")
                NombreDeCoups = NombreDeCoups + 1
                Lettre = Console.ReadLine()
            Loop Until IsNumeric(Lettre)
            Nombre = Lettre
            If Nombre > NombreMystere Then
                Console.Beep(1000, 200)
                Console.WriteLine("Entrez un nombre plus petit")
                Console.WriteLine()
            End If
            If Nombre < NombreMystere Then
                Console.Beep(500, 200)
                Console.WriteLine("Entrez un nombre plus grand")
                Console.WriteLine()
            End If
            If Nombre = NombreMystere Then
                Console.Beep(1000, 200)
                Console.Beep(1000, 200)
                Console.Beep(1000, 200)
                Console.WriteLine("Bravo " & Prenom & ", vous avez trouvé le Nombre Mystère qui était " & NombreMystere & " en " & NombreDeCoups & " coups.")
            End If
        Loop While estTrouve = False
        Console.WriteLine("Appuyez sur une touche pour continuer...")
        Console.ReadKey()
    End Sub
End Module

LOL LAME

  • Membre
  • 19 posts
18 avril 2011, 14:48
Et si tu rajoutais une ligne

estTrouve = True

Après "Console.writeLine(Bravo...)" ?

LOL, LAME.

Aire Ayquaza

  • Membre
  • 906 posts
20 avril 2011, 10:57
Salut j'ai encore un problème : Comment je fait pour passé des lignes dans l'écriture du texte d'un ComboBox ?
Exemple:ComboBox
A
B
C
et pas ABC (les uns en dessous des autres)

Code
    Private Sub CB_ESPECE_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_ESPECE.SelectedIndexChanged
        If Me.CB_ESPECE.Text = "Zarbi" Then
            Me
.CB_FORME.Enabled = True
            Me
.CB_FORME.Text = "!" //Comment je fait pour  passé une ligne en sachant que Zarbi a beaucoups de formes ?
          ElseIf Me.CB_ESPECE.Text IsNot "Zarbi" Then
            Me
.CB_FORME.Enabled = False
        End If
    End Sub



en français ça donne si Zarbi est selectionné dans la combobox ESPECE alors la combobox FORME est utilisable
Sinon si ce n'est pas Zarbi qui est séléctionné dans la CB_ESPECE alors la CB_FORME n'est pas utilisable (pokémon n'ayant pas de forme)
« Modifié: 20 avril 2011, 11:02 par Aire Ayquaza »

pokastuce

  • Membre
  • 676 posts
20 avril 2011, 13:43
ce que tu veux faire ce n'est pas un retour chariot mais carrément choisir le bon item correspondant à ton pokemon

tu peux utiliser la gestion des combobox.items si je me souviens en faisant un clear pour effacer (par exemple) les anciennes formes puis en faisant des cb.items.add(text) pour chaque sous forme

et enfin une fois que tu sais quel forme tu as exactement, tu dis que ton selecteditem est celui a l'indice i ou i est l'indice du cb.items.text=la forme

Aire Ayquaza

  • Membre
  • 906 posts
20 avril 2011, 14:18
Peut tu me donné un exemple car la je seche un peu  :(

PS:J'ai créé une ImageListe, j'y est mi des images dedant et je veut mettre ces images dans un ComboBox comment puis-je faire ?

M@T

  • Membre
  • 15146 posts
21 avril 2011, 21:31
Images dans une ComboBox... ?  :hum:
Tu vas sans doute devoir soit gérer quelques événements qui se produisent lors de l'affichage des Items, ou bien créer un nouveau contrôle qui hérite de ComboBox et qui "Override" l'événement OnDraw (ça a l'avantage d'être réutilisable facilement).
C'est pas tellement difficile mais vu le code de ton "Plus ou moins", je ne suis pas sûr que tu raisonnes vraiment en .NET.  ;D

Aire Ayquaza

  • Membre
  • 906 posts
22 avril 2011, 10:51
Quelqu'un peu m'expliqué comment je peut faire ceci (en jaune)
Screen de PokéGen, Générateur de code, boutons d'activation a coché dans un Combobox (?)
Je voudrai savoir comment il est possible de coché les objet de cette CB

pokastuce

  • Membre
  • 676 posts
22 avril 2011, 12:09
un exemple de tuto sur l'utilisation de checkbox item dans un combobox en c#

http://www.codeproject.com/KB/combobox/extending_combobox.aspx

en VB.Net c'est la même chose

Aire Ayquaza

  • Membre
  • 906 posts
22 avril 2011, 12:27
J'arrive pas je marque sa :
Me.CheckBox.Items = CheckBox1
Erreur Item est ReadOnly
Ya pas AddItem
EDIT:Quand j'ecrit :
Me.CheckBox.Item.Add = CheckBox1 il me fait une erreur

EDIT2:Quand je marque sa "Me.ComboBox1.Items.Add(CheckBox1)" et que je lance l'execusion dans le combobox il est marqué "System.Windows.Forms.CheckBox, CheckState: 0"
« Modifié: 22 avril 2011, 13:52 par Aire Ayquaza »

Pages: [1]    En haut ↑