Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[VB.NET] Le jeu du pendu !
Auteur Message
Répondre en citant
Message [VB.NET] Le jeu du pendu ! 
Bonsoir.

Je vous présente aujourd'hui mon jeu du pendu.

OS de développement : Windows 7 Ultimate 32 bits
OS Compatible : Windows XP et supérieur possédant le framework 4 ou plus.

Voici le code un peu commenté :

Code:
Imports System.IO

Public Class Form1
    Public ligne As String
    Public MotGagnant As String
    Public lettreTrouvé As String
    Public CoupRestant As Integer = 11
    Public nlignes As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim lignes() As String = File.ReadAllLines(Application.StartupPath & "\dico.txt") 'compte le nombre de ligne dans dico.txt
        nlignes = lignes.Length
        ChoixMot()
    End Sub

    Private Sub ButtonValider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonValider.Click
        VerifLettres()
    End Sub

    Sub fin()  'Initialisation du jeu si le joueur veut rejouer
        CoupRestant = 11
        lettreTrouvé = ""
        Me.LabelLettresTestées.Text = ""
        Me.LabelMot.Text = ""
        MotGagnant = ""
        Me.PictureBoxTête.Image = My.Resources.têtePasPendu
        For Each PictureBox In Me.Panel1.Controls
            PictureBox.visible = False
        Next
        ChoixMot()
    End Sub

    Private Sub TextBoxLettre_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBoxLettre.KeyPress
        If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Enter) Then
            e.Handled = True   'Permet d'éviter le "ding" lors de l'appuie sur la touche entrer
            VerifLettres()
        End If
    End Sub

    Sub ChoixMot()
        Dim monStreamReader As StreamReader = New StreamReader(Application.StartupPath & "\dico.txt", System.Text.Encoding.Default)
        ligne = monStreamReader.ReadLine()
        Randomize()
        Dim random As New Random(), i As Integer
        Dim j As Integer = 0
        i = random.Next(0, nlignes)
        ligne = monStreamReader.ReadLine()
        While Not j = i
            j += 1
            ligne = monStreamReader.ReadLine()
        End While
        For Each lettre In ligne
            If Char.IsLetter(lettre) Then
                Me.LabelMot.Text = Me.LabelMot.Text & "_ "
                MotGagnant = MotGagnant & lettre & " "
            End If
        Next
    End Sub

    Sub VerifLettres()
        Try
            If Char.IsLetter(Me.TextBoxLettre.Text(0)) Then
                Dim CoupsMoins As Boolean = True
                Dim i As Integer = 0
                Me.LabelMot.Text = ""
                If Not Me.LabelLettresTestées.Text.Contains(Me.TextBoxLettre.Text(0)) Then
                    CoupsMoins = False
                    Me.LabelLettresTestées.Text = Me.LabelLettresTestées.Text & Me.TextBoxLettre.Text(0) & " "
                    lettreTrouvé = lettreTrouvé & Me.TextBoxLettre.Text(0)
                End If
                For Each lettre In ligne
                    If Char.IsLetter(lettre) Then
                        For Each character In lettreTrouvé
                            If character = ligne(i) Then
                                Me.LabelMot.Text = Me.LabelMot.Text & character & " "
                            End If
                        Next
                        If Not lettreTrouvé.Contains(lettre) Then
                            Me.LabelMot.Text = Me.LabelMot.Text & "_ "
                        End If
                        i = i + 1
                    End If
                Next
                If Not ligne.Contains(Me.TextBoxLettre.Text(0)) And Not CoupRestant = 0 And Not CoupsMoins Then   'Si le mot ne contient pas la lettre entrée
                    CoupRestant -= 1
                    i = 11
                    For Each morceau In Me.Panel1.Controls
                        If Not i <= CoupRestant Then    'affichage d'un morceau du pendu
                            morceau.visible = True
                        End If
                        i = i - 1
                    Next
                ElseIf Not ligne.Contains(Me.TextBoxLettre.Text(0)) And CoupRestant = 0 Then  'Condition de défaite
                    Me.PictureBoxTête.Image = My.Resources.tête
                    Me.PictureBoxTabouret.Visible = False
                    Me.LabelMot.Text = ""
                    If MsgBox("Dommage ! Vous avez perdu !" & Chr(13) & "Le mot était : " & ligne & Chr(13) & Chr(13) & "Rejouer ?", 68, "Mot non trouvé !") = vbYes Then
                        fin()
                    Else
                        Me.Close()
                    End If
                ElseIf MotGagnant = Me.LabelMot.Text Then   'Condition de victoire
                    If MsgBox("Bravo ! Vous avez gagné !" & Chr(13) & "Le mot était : " & ligne & Chr(13) & Chr(13) & "Rejouer ?", 68, "Mot découvert !") = vbYes Then
                        fin()
                    Else
                        Me.Close()
                    End If
                End If
            End If
            Me.TextBoxLettre.Clear()
        Catch ex As Exception
        End Try
        Me.TextBoxLettre.Focus()
    End Sub

End Class


L'archive comprend également le dictionnaire contenant les mots. Voilà de quoi je me suis inspiré pour ce dico : http://www.encyclopedie-incomplete.com/?Les-600-Mots-Francais-Les-Plus

Quelques screen :





Un lien de téléchargement également : http://www.box.net/shared/f4cr35dvix



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [VB.NET] Le jeu du pendu ! 
Beau travail.



Message [VB.NET] Le jeu du pendu ! 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch