Rackmaninov
Messages postés1Date d'inscriptionvendredi 7 mai 2010StatutMembreDernière intervention 8 mai 2010
-
8 mai 2010 à 15:05
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
8 mai 2010 à 19:02
Bonjour à tous ,
En tant qu'étudiant en maths appliquées , je ne suis un novice parmi les novices en programmation .
Voici mon problème :
Je travaille sur un programme Visual Basic reproduisant le célèbre "jeu de la vie" de Horton Conway .
Le programme en lui-même est terminé , mais je désirerais y ajouter une fonction qui permettrait de sauvegarder une grille existante d'une part,
et de charger les grilles sauvegardées d'autre part . J'ai trouvé sur ce même site - une mine d'or , formidablement administrée, au passage -
un programme qui ressemble au mien et qui propose ces deux fonctions . Problème , mes connaissances en VB sont insuffisantes pour déchiffrer la majeure
partie du code . Je sollicite donc votre expertise pour m'aider à comprendre ce qui est fait à chaque étape dans les deux portions de code suivantes :
1. La sauvegarde d'une grille :
Private Sub Command6_Click()
On Error GoTo ErrHand
Dim i As Integer, j As Integer
Dim Ligne As String
Dim Fle As Integer
CommonDialog1.FileName = ""
CommonDialog1.InitDir = App.Path & "\save"
CommonDialog1.Filter = "Sauvegardes (*.svi)|*.svi"
CommonDialog1.ShowSave
If CommonDialog1.FileName <> "" Then
Fle = FreeFile
Open CommonDialog1.FileName For Output As #Fle
'on sauvegarde le fichier
For i = 1 To 50
Ligne = ""
For j = 1 To 50
If Univers(i, j) Then Ligne Ligne & "T" Else Ligne Ligne & "F"
Next j
Print #Fle, Ligne
Next i
Close #Fle
MsgBox "C'est fait !"
End If
Exit Sub
ErrHand:
MsgBox "Une erreur est survenue !"
Affichage
End Sub
2.Le chargement d'une grille sauvegardée
Private Sub Command5_Click()
On Error GoTo ErrHand
Dim i As Integer, j As Integer
Dim Ligne As String
Dim Fle As Integer
If MsgBox("Vous allez perdre l'univers en cours, êtes vous sûr ?", vbYesNo) = vbNo Then Exit Sub
CommonDialog1.FileName = ""
CommonDialog1.InitDir = App.Path & "\save"
CommonDialog1.Filter = "Sauvegardes (*.svi)|*.svi"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Fle = FreeFile
Open CommonDialog1.FileName For Input As #Fle
'on sauvegarde le fichier
For i = 1 To 50
Line Input #Fle, Ligne
For j = 1 To 50
If Mid(Ligne, j, 1) "T" Then Univers(i, j) True Else Univers(i, j) = False
Next j
Next i
Close #Fle
Affichage
MsgBox "C'est fait !"
End If
Exit Sub
ErrHand:
MsgBox "Une erreur est survenue !"
Affichage
End Sub
NB: Univers(i,j) est un tableau de booléens , si une cellule est présente , la valeur est vraie , s'il n'y a pas de cellule , faux .
Affichage est un autre algorithme qui sert à afficher la grille une fois les valeurs de Univers(i,j) déterminées .