Jeux noùbre mystère

thomasaurelien Messages postés 71 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 27 novembre 2017 - 29 janv. 2013 à 17:56
 Utilisateur anonyme - 29 janv. 2013 à 19:05
Voila pour apprendre vb.net j'ai réalisé un petit jeu que tous le monde connais le nombre mystère.

Bien entendu c'est un petit jeu qui n'as pas de fonctionnalité particulière mais le but était de m'excercé. C'est pour celà que je voudrai votre avis sur mon petit programme ?

Par avance, je sais qu'il y a quelques trucs que je ne maitrise pas :
- Fermeture avec la croix rouge ne ferme pas le programme
- Pas assez de comentaires

Votre avis m'interresse et aussi si vous avez quelque piste pour l'améliorer MERCI

http://www.partage-facile.com/3QMU9IZN5W/nombre_myst__re.rar.html

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 janv. 2013 à 18:08
Bonjour (ben ... non ===>> je raye)
Regarde ce que me dit mon protecteur, lorsque j'ouvre ton lien par curiosité :

Site Web malveillant bloqué

Vous avez tenté d’accéder à :

http://www.partage-facile.com/3QMU9IZN5W/nombre_myst__re.rar.html

Il s’agit d’un site Web malveillant connu. Il vous est recommandé de ne PAS visiter ce site. Le rapport détaillé décrit les risques de sécurité de ce site.

Pour votre protection, ce site Web a été bloqué
.
Ici, de toutes manières, on n'invite pas à ouvrir un exécutable.
On montre son code (le source uniquement) et on laisse les autres apprécier si ce code ne les gêne pas.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
thomasaurelien Messages postés 71 Date d'inscription jeudi 7 juillet 2011 Statut Membre Dernière intervention 27 novembre 2017
29 janv. 2013 à 18:23
ah désolé ucfoutu cette erreur n'était pas volontaire et donc t'es en colère pu de politesse tu dis pas bonjour !!!

bon allez plus sérieusement parlons code :

J'ai un form Accueil qui permet de choisir son niveau de difficulté :
Public Class Accueil

    Private Sub Bvalid_Click(sender As Object, e As EventArgs) Handles Bvalid.Click
        If c1.Checked = True Then
            Call affichage(1)
        ElseIf c2.Checked = True Then
            Call affichage(2)
        ElseIf c3.Checked = True Then
            affichage(3)
        End If
        Me.Hide()
    End Sub

End Class


un form qui permet de saisir le nombre de l'on propose :
Public Class nbmystere


    Private Sub Bok_Click(sender As Object, e As EventArgs) Handles Bok.Click
        Dim trouve As Boolean
        Dim coupjouer As Integer
        Dim tmp As Integer

        trouve = False

        If TBnbsais.Text = "" Then
            MessageBox.Show("Veuillez saisir un nombre ")
        Else
            tmp = CInt(Lcoup.Text) - 1
            coupjouer = CInt(nombreCoup) - tmp

            If TBnbsais.Text = nbhasard Then
                MessageBox.Show("Vous avez trouvé le nombre en " & coupjouer & " essais", "BRAVO !!!!")
                trouve = True
            Else
                Linfo.Text = calcul(CInt(TBnbsais.Text))
            End If
            TBnbsais.Text = ""
            TBnbsais.Focus()
            Lcoup.Text = tmp.ToString()
        End If
        If trouve Then
            Dim rep As String
            rep = MessageBox.Show("Voulez-vous rejouer ?", "REJOUER", MessageBoxButtons.YesNo)
            If rep = vbYes Then
                Accueil.Show()
                Me.Hide()
            Else
                Me.Close()
            End If

        End If
        If Lcoup.Text = "0" Then
            MessageBox.Show("Désolé, vous n'avez pu d'essais", "SNIF !!!")
            MessageBox.Show("Le résultat était : " & nbhasard.ToString())

            Dim rep As String
            rep = MessageBox.Show("Voulez-vous rejouer ?", "REJOUER", MessageBoxButtons.YesNo)
            If rep = vbYes Then
                Accueil.Show()
                Me.Hide()
            Else
                Me.Close()
            End If
        End If
    End Sub

    Private Sub nbmystere_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Lcoup.Text = nombreCoup.ToString()
    End Sub
End Class


et un module avec mes fonctions :
Module fonctions

    Public maximun As Integer
    Public nombreCoup As Integer
    Public nbhasard As Integer

    Private Function hasard(ByVal limite As Integer) As Integer

        Randomize()   ' Initialise le générateur de nombre aléatoire.
        Return CInt(Int((limite * Rnd()) + 1)) ' Génère un nombre aléatoire entre 1 et limite.

    End Function

    Public Sub affichage(ByVal choix As Integer)
        Dim max As Integer
        Dim nbcoup As Integer
        Select Case choix
            Case 1
                max = 100
                nbcoup = 20
            Case 2
                max = 150
                nbcoup = 15
            Case 3
                max = 200
                nbcoup = 10
        End Select
        maximun = max
        nombreCoup = nbcoup
        nbhasard = hasard(max)
        MessageBox.Show("Vous devez trouver un nombre entre 0 et " & max.ToString() & " en " & nbcoup.ToString() & " essais !!")
        nbmystere.Show()
    End Sub

    Public Function calcul(ByVal nb As Integer) As String
        Dim ecartmin As Integer
        Dim ecartmax As Integer
        Dim info As String
        ecartmin = nbhasard - 10
        ecartmax = nbhasard + 10
        If nb > 0 And nb < maximun Then
            If nb < maximun Then
                If nb >= ecartmin Then
                    info = "Presque ! Plus grand !!!"
                Else
                    info = "Plus grand !!!"
                End If
            Else
                If nb <= ecartmax Then
                    info = "Presque ! Plus petit !!!"
                Else
                    info = "Plus petit !!!"
                End If
            End If
        Else
            info = "Le nombre doit être compris entre 0 et " & maximun.ToString()
        End If
        Return info
    End Function
End Module


J'avoue que sa fait beaucoup en code nan ??
0
Utilisateur anonyme
29 janv. 2013 à 19:05
Bonjour,

1/ Tu peux regrouper la déclaration de tes variables du même type :
Dim machin, truc, bidule as Integer


2 / Il y a redondance sur cette ligne :
If c1.Checked = True Then

La propriété Checked est Booléenne ce qui revient à écrire :
Si Vrai(ou Faux) = Vrai Alors

On peut simplifier par :
If c1.Checked Then


3 / Randomize, Rnd sont obsolètes. On utilise la classe Random (voir msdn).

4 / CInt (également obsolète) doit être remplacé par Convert.To....

5 Erreurs de conversions de type flagrante ici (DialogResult / String) :
Dim rep As String
        rep = MessageBox.Show(

Active Option Strict de toute urgence dans les propriétés de ton projet et corrige les erreurs.

Reviens nous voir avec un code corrigé et optimisé, on parlera de la suite plus tard...
0
Rejoignez-nous