Bonjour à tous,
dans le cadre d'un cours de correction de programme, j'ai sélectionné un code sur lequel j'ai fait quelques ajouts/modifications.
La source de ce code :
http://www.vbfrance.com/codes/JEU-CISEAUX_47532.aspx
Auteur : Le pivert
Je ne prend aucun droit sur le code.
Donc, la modification que j'ai apporté est : Un formulaire de connexion.
La dynamique du jeu reste la même. Par contre, lorsque le programme est démarrer, un formulaire de login apparait et propose à l'utilisateur de se connecter ou créer un compte.
L'objectif étant de pouvoir garder les statistiques de chaque joueur individuellement. (sans pouvoir copier l'identifiant)
J'ai aussi modifié l'interface à ma façon.
Tout commentaires constructifs est la bienvenu.
Source / Exemple :
Option Explicit On
Imports System.IO
Public Class Form2
Dim connected As Boolean
Dim formTo As Form1
Dim alreadyUsed As Boolean 'Boolean pour la validation du username
Public Sub New(ByVal formTest As Form1)
InitializeComponent()
formTo = New Form1
formTo = formTest 'form principale est en référence.
alreadyUsed = False
connected = False
End Sub
Private Sub newAccount_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles newAccount.Click
'if pour valider le texte
If user.Text = "" Then
erreurtxt.Text = "Veuillez saisir un nom d'utilisateur"
user.Focus()
ElseIf pass.Text = "" Then
erreurtxt.Text = "Veuillez saisir un mot de passe"
pass.Focus()
Else
verifUser() 'fonction pour valider si le username est déjà utilisé
If alreadyUsed = True Then
erreurtxt.Text = "Ce nom d'utilisateur est déjà utilisé"
user.Focus()
Else
writeUser() 'sinon on l'écrit dans un fichier .txt de nom d'utilisateur
addlogin() 'donc c'est OK, on crée le compte
formTo.username = user.Text 'envoi le username actif au jeu dans la variable public username
formTo.setUser() 'on set le username dans form1 pour débuter le jeu
openGame() 'on affiche le jeu
End If
End If
End Sub
Private Sub writeUser()
Dim newUser As New StreamWriter("users.txt", True)
newUser.WriteLine(user.Text)
newUser.Close()
End Sub
Private Sub verifUser()
Dim listeUsers As New StreamReader("users.txt", True)
Dim line As String
Dim result As Integer
line = listeUsers.ReadLine
'valider en vérifiant tous les noms d'utilisateur
Do While (Not line Is Nothing)
result = StrComp(user.Text, line)
If result = 0 Then
alreadyUsed = True
End If
line = listeUsers.ReadLine
Loop
listeUsers.Close()
End Sub
Private Sub addlogin()
Dim newLogin As New StreamWriter("comptes.txt", True)
newLogin.WriteLine(user.Text & ";" & pass.Text)
newLogin.Close()
End Sub
Private Sub login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles login.Click
Dim listeCompte As New StreamReader("comptes.txt", True)
Dim userVerif As String
Dim isset As Boolean
Dim line As String
Dim result As Integer
userVerif = ""
If user.Text = "" Then
erreurtxt.Text = "Veuillez saisir un nom d'utilisateur"
isset = False
user.Focus()
ElseIf pass.Text = "" Then
erreurtxt.Text = "Veuillez saisir un mot de passe"
isset = False
pass.Focus()
Else
userVerif = user.Text & ";" & pass.Text
isset = True
End If
If isset = True Then
line = listeCompte.ReadLine
Do While (Not line Is Nothing)
result = StrComp(userVerif, line)
If result = 0 Then
connected = True
formTo.username = user.Text
formTo.setUser()
openGame()
End If
line = listeCompte.ReadLine
Loop
End If
If connected = False Then
erreurtxt.Text = "Bad login"
End If
listeCompte.Close()
End Sub
Private Sub openGame()
formTo.Show()
Me.Close()
End Sub
Private Sub user_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles user.TextChanged
erreurtxt.Text = ""
alreadyUsed = False
End Sub
Private Sub pass_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pass.TextChanged
erreurtxt.Text = ""
End Sub
Private Sub quitbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles quitbutton.Click
formTo.Close()
End Sub
End Class
Conclusion :
Je voudrais pouvoir compléter encore plusieurs ajouts/modifications, mais comme je dois finir ma session, je rajoute seulement ceci pour l'instant...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.