Ce jeu consiste en un combat basique entre vous et l'ordinateur, vous devez le tuez, il doit vous tuer, enfin bref. De plus il utilise de nombreuses fonctions que j'ai pensez utile de commenter afin que ceux qui ont envie en apprenne un peu plus sur VB.NET. Le jeu utilise +sieurs numéric UPDOWN, des boites de dialogues pour enregistrer les données, des passages d'arguments, groupbox, progressbar, timer et autres. J'apprecierais vraiment vos commentaires.
Source / Exemple :
Imports System.Random
Public Class GAMER
Dim nameJ1, strings, variable As String
Dim diff, TROJ, TROE, time1, time2, variable2 As Int16
Dim HPJ, MPJ, DEFJ, ATKJ, ARGJ, BOUJ, FORCENREGISTOTJ, FORCENREGISTOTE, MPENREGISTOTJ, MPENREGISTOTE, COUPE, COUPJ As Long
Dim HPE, MPE, DEFE, ATKE, ARGE, BOUE As Long
Dim time As Int16
Dim variable1 As Long
'Desciption de toutes les variables :
' nameJ1 : nom du joueur
' diff : difficulté du jeu
' HP : vie ; MP : magie ; DEF : défense ; ATK : attaque ; ARG : argent ; BOU : Bouclier ; TRO : nombre de trousse
' le J après chaque correspond au joueur
' le E après chaque variable correspond à l'ordinateur
' time est le compteur de temps qui lancera l'attaque
' variable1 sert à faire transiter certain chiffre
'FORCENREGISTOTE : enregistre le total des attaques porter par l'ennemi pour faire des statistique qui évaluerons qui a gagné de qui a perdu
'FORCENREGISTOTJ : enregistre le total des attaques porter par le joueur
'COUPE : enregistre le nombre de coup porté par l'ennemi
'COUPJ : enregistre le nombre de coup porté par le joueur
'time1 : horaire de départ du jeu
'time2 : hotaire de fin du jeu
Private Sub GAMER_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
nameJ1 = pass1.Text 'récupere le nom du joueur qui se trouve dans un textbox caché (pour la voir mettez la background color en blanc
diff = Val(Pass2.Text) 'récupère le niveau de difficulté et l'enregistre dans diff
JOUEUR1.Text = nameJ1 'on change le nom de la groupbox
BilatkJ.Text = nameJ1 'on change le nom de la groupbox
time1 = System.DateTime.Now.Millisecond
If HPass.Text <> "" Then
HPJ = HPass.Text
MPJ = MPass.Text
ATKJ = Atkpass.Text
ARGJ = ARGpass.Text
BOUJ = Boupass.Text
TROJ = Tropass.Text
DEFJ = DEFPass.Text
HPE = HPE + Int(Rnd() * (80 * diff) + HPJ * diff / 2) '
MPE = MPE + Int(Rnd() * (80 * diff) + MPJ * diff / 2) ' dans touts ces calculs, on fais une addition : ex : HPJ = HPJ + ...
DEFE = DEFE + Int(Rnd() * (80 * diff) + DEFJ * diff / 2) ' cet ajout ne change en rien la valeur lors du lancement du jeu, mais permet, lorsqu'on gagne un niveau de garder ses valeurs
ATKE = ATKE + Int(Rnd() * (35 * diff) + ATKJ * diff / 2) '
ARGE = ARGE + Int(Rnd() * 100 * diff + ARGJ * diff / 2) '
BOUE = BOUE + Int(Rnd() * (80 * diff) + BOUJ * diff / 2) '
TROE = TROE + Int(Rnd() * (8 * diff) + 2 * diff + TROJ * diff / 2) ' }
ACTUDONN()
Else
CREAVAL() 'on lance le sub CREAVAL dont le but est de créer les valeurs du joueur et de l'ennemi
End If
End Sub
Public Sub CREAVAL()
HPJ = HPJ + Int(Rnd() * (50 * diff) + 20 * diff) '
MPJ = MPJ + Int(Rnd() * (50 * diff) + 20 * diff) '
DEFJ = DEFJ + Int(Rnd() * (50 * diff) + 20 * diff) '
ATKJ = ATKJ + Int(Rnd() * (30 * diff)) ' Ici on utilise 2 nouvelles méthodes :
ARGJ = ARGJ + Int(Rnd() * 100 * diff) ' int : arrondi un décimal en entier
BOUJ = BOUJ + Int(Rnd() * (50 * diff)) ' rnd : donne un nombre alétoire : pour un résultat plus aléatoire, il vaut mieux ne rien mettre dans la parenthèse
TROJ = TROE + Int(Rnd() * (8 * diff))
' {
HPE = HPE + Int(Rnd() * (80 * diff) + HPJ * diff / 2) '
MPE = MPE + Int(Rnd() * (80 * diff) + MPJ * diff / 2) ' dans touts ces calculs, on fais une addition : ex : HPJ = HPJ + ...
DEFE = DEFE + Int(Rnd() * (80 * diff) + DEFJ * diff / 2) ' cet ajout ne change en rien la valeur lors du lancement du jeu, mais permet, lorsqu'on gagne un niveau de garder ses valeurs
ATKE = ATKE + Int(Rnd() * (35 * diff) + ATKJ * diff / 2) '
ARGE = ARGE + Int(Rnd() * 100 * diff + ARGJ * diff / 2) '
BOUE = BOUE + Int(Rnd() * (80 * diff) + BOUJ * diff / 2) '
TROE = TROE + Int(Rnd() * (8 * diff) + 2 * diff + TROJ * diff / 2) ' }
Timer1.Start() 'on lance le timer qui a pour seul but de faire attaquer l'ennemi après un labs de temps
marchand.Visible = False 'le marchand d'objet ne pas tout le temps être visible sinon ce serait trop facile alors au départ on le fait disparaitre
ACTUDONN() 'ici on appelle une sub dénommée actudonn qui va actualiser (afficher) les données sur la form pour le joueur
End Sub
Public Sub ACTUDONN()
HPJT.Text = "HP : " + Str(HPJ) '[ HPJT.text correspond au texte de le textbox, dont on définit ici la phrase "HP = "
MPJT.Text = "MP : " + Str(MPJ) ' str sert à transformer un nombre en string ce qui permet d'afficher sur un textbox les valeurs trouvés
DEFJT.Text = "Défense : " + Str(DEFJ)
ATKJT.Text = "Attaque : " + Str(ATKJ)
ARGJT.Text = "Argent : " + Str(ARGJ)
DEFPJT.Text = "Bouclier : " + Str(BOUJ)
TROJT.Text = "Trousse : " + Str(TROJ)
HPET.Text = "HP : " + Str(HPE)
MPET.Text = "MP : " + Str(MPE)
DEFET.Text = "Défense : " + Str(DEFE)
ATKET.Text = "Attaque : " + Str(ATKE)
ARGET.Text = "Argent : " + Str(ARGE)
DEFPET.Text = "Bouclier : " + Str(BOUE)
TROET.Text = "Trousse : " + Str(TROE) ']
prixtro.Text = Str(Int(Rnd() * 60 * diff)) + " euros unités" 'ici on ne passe pas par des variables pour enregistrer
'le prix des trousses, des armes ou des boucliers. Les valeurs seront montrées au joueur et pourront être réutilisées
'en utilisant la formule val(textbox concernée.text) exemple : val(priarm.text)
' attention : pour récupérer un nombre dans une string, il faut que la valeur soit au début de la string, sinon cela ne marche pas
prixarm.Text = Str(Int(Rnd() * 60 * diff)) + " euros unités"
prixbou.Text = Str(Int(Rnd() * 60 * diff)) + " euros unités"
valmarctro.Text = Str(Int(Rnd() * 2 * diff)) + " gain"
valmarcbou.Text = Str(Int(Rnd() * 5 * diff)) + " gain"
valmarcarm.Text = Str(Int(Rnd() * 4 * diff)) + " gain"
If HPE <= 0 Then ENNMORT() 'si l'ennemi à un HP < 0 alors la sub ENNMORT affichera au joueur sa victoire
If HPJ <= 0 Then JOUMORT() ' si le joueur est mort donc ses HPJ < 0 alors on indique au joueur à travers la sub JOUMORT (assez explicite) que c'est la fin
If Rnd(1) * 100 > 50 Then 'ici on introduit une condition : si une valeur aléatoire (en 1 et 100) est supérieure à 50 alors
marchand.Visible = True 'on affiche le marchand
Nbrtroach.Value = 0 'quand on change la valeur du NuméricUpDown, il ne se remet pas automatiquement à 0, ce qui implique au joueur
nbrbouach.Value = 0 ' de le remettre tout seul à 0 => perte de temps, on lui facilite le travail en changeant la valeur des 3 numéricUPDown
nbrarmach.Value = 0 'en utilisant la "fonction" : [nom de la Numeric UP DOWN.value = [valeur : ici = à 0]
Else 'sinon
marchand.Visible = False 'on le fait disparaître
End If
Progresstemp.Value = Progresstemp.Minimum 'On remet au minimum la progresbar pour que le joueur sache qu'il a bien joué et qu'il a encore du temps
'on utilise la phrase suivante : [nom de la progressbar].[valeur : value] = [nom de la progressbar].[minimum = valeur marquer dans le designer (propriétés de la progresbar]
Timer1.Start() 'le timer est toujours arrete à chaque clic sur l'un des boutons, ce qui augmente le temps de réflexion et de lecture du joueur et ne pas l'handicaper en se faisant attaquer pendant qu'il cherche
End Sub
Public Sub ENNMORT()
diff = (diff + 1)
MsgBox("Bravo, Tu l'as tué !!! niveau = " & Str(diff), MsgBoxStyle.Exclamation, "END")
'MsgBox([texte à afficher], [type de message], [titre du message]
'dans le texte à afficher, on peut remarque que j'y ait inserer une variable : diff ; il faut toujours mettre str si on veut afficher une valeur
' de plus, pour séparer le texte de la valeur j'y ai mis un & qui lui indique que cela fait toujours partie du texte à afficher
CREAVAL() 'on repart sur la sub créaval qui permet de recréer des valeurs (en gardant les valeurs que tu a pu obtenir dans les niveaux antérieurs
End Sub
Public Sub JOUMORT()
If MsgBox("Désolé, tu est mort, niveau = " & Str(diff) & " ; Veux-tu rejouer ???", MsgBoxStyle.OKCancel, "END") = MsgBoxResult.OK Then
diff = 1
CREAVAL()
Else
time2 = System.DateTime.Now.Millisecond
End
End If
'on va retranscrire ce qui est dit ci-dessus : le but est ici d'afficher un message en lui disant qu'il est mort, son niveau, et lui demander si il veut rejouer.
' décryptons le message :
' - le texte à afficher est "Désolé tu est mort, niveau = " & str(diff) & " Veux tu rejouer"
' ^| => affiche la valeur de la difficulté atteint
' MsgBoxStyle.OkCancel : type de la MsgBox, qui affichera en plus un Ok et un cancel
' Titre de la MsgBox : End
' dans la condition : SI le résultat de la MsgBox : Ok alors le joueur veut faire une partie
'on remet une difficulté à 1 et on lance CREAVAL pour refaire les valeurs
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
time = time + 1 'on l'incrémente de 1 en 1 à chaque tick du timer (1 seconde)
Progresstemp.Value() = time ' on modifie la valeur de la progressbar de façon à ce qu'il affiche en nombre de blocs la valeur de time
If time >= (45 / diff) Or Progresstemp.Value = Progresstemp.Maximum Then 'si time >= 10 (> est au cas où)
Timer1.Stop() 'on arrete le timer le temps que le joueur apprenne la nouvelle
MsgBox("Temps dépassé : vous êtes attaqué", MsgBoxStyle.Critical, "ALERTE") 'on prévient le joueur par un message MsgBox(TEXTE A AFFICHER, TYPE MESSAGE, TITRE MESSAGE)
Progresstemp.Value = Progresstemp.Minimum 'on modifie la valeur de la progressbar à son minimum
time = 0 'on remet time à 0
ATTAKEN() 'on appelle la sub qui s'occupe de créer les valeurs d'attaque contre le joueur
End If
End Sub
Private Sub Attaquer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Attaquer.Click
Timer1.Stop() ' on stop le timer pour que l'on puisse faire les calculs tranquilement
Progresstemp.Value = Progresstemp.Minimum 'on remet le progresstemp au minimum
typatakj.Text = "Type d'attaque : PHYSIQUE" 'on indique le type d'attaque
variable1 = (Int(Rnd(1) * ATKJ)) 'on fait un calcul trop bête pour être expliqué
FORCENREGISTOTJ = FORCENREGISTOTJ + variable1 'pour les statistiques
COUPJ = COUPJ + 1
restedatkj.Text = Str(variable1) + " infligé !!! " 'on affiche au joueur le nombre de point du'il a infligé
If BOUE <= 0 Then HPE = HPE - Val(restedatkj.Text) 'si le bouclier est <= 0 alors ce sont les HP qui diminue
If BOUE > 0 Then BOUE = BOUE - Val(restedatkj.Text) 'sinon c son bouclier qui prend
If Int(Rnd() * 200) > 100 Then 'ici on interroge l'ordinateur pour savoir si il doit gagner de l'argent, ou de la défense physique ou rien du tout
gainj.Text = Str(Int(Rnd() * 20 * diff)) + " sous gagnés "
ARGJ = ARGJ + Val(gainj.Text)
Else
If Int(Rnd() * 100 < 51) Then
gainj.Text = Str(Int(Rnd() * 21 * diff)) + " bouclier "
BOUJ = BOUJ + Val(gainj.Text)
Else
gainj.Text = "Tu gagnes : rien du tout"
End If
End If
ATTAKEN()
End Sub
Public Sub ATTAKEN()
variable1 = Int(Rnd(1) * 100) 'on crée une valeur entre 1 et 100
If variable1 > 50 Then 'si cette valeur est supérieure à 50 alors c une attaque physique
typatake.Text = "Type d'attaque : PHYSIQUE"
variable1 = Int(Rnd(1) * ATKE * (HPE * 100 / ((300 * diff) + 60 * diff)) - (BOUJ * 50 / ((300 * diff) + 20 * diff))) 'on invente la valeur de l'attaque
If variable1 > ATKE Then variable1 = ATKE 'si elle est plus grande que sa force, alors on la réduit à sa force
FORCENREGISTOTE = FORCENREGISTOTE + variable1 'statistique pour la prochaine version
COUPE = COUPE + 1
restedatke.Text = Str(variable1) & " infligés !!!!!!" 'on indique au joueur combien il lui a infligé
If BOUJ <= 0 Then HPJ = HPJ - Val(restedatke.Text) 'si le bouclier est <= 0 alors ce sont les HP qui diminue
If BOUJ > 0 Then BOUJ = BOUJ - Val(restedatke.Text) 'sinon c son bouclier qui prend
Else 'si la valeur est inférieure à 50 alors
If MPE > 0 Then 'et que ses Mp sont supérieure à 0 alords
typatake.Text = "Type d'attaque : Magique" 'c une attaque magique
variable1 = (Int(Rnd(1) * MPE * (HPE * 100 / ((300 * diff) + 60 * diff)))) 'on invente la valeur de l'attaque
If variable1 > MPE Then variable1 = MPE 'si elle est plus grande que ses MP, alors on la réduit à son maximum
MPE = MPE - variable1 'on nelève cette valeur à son nombre de HP
restedatke.Text = Str(variable1) + " infligés !!!!" 'on précise au joueur combien l'ennemi lui a infligé
If DEFJ <= 0 Then HPJ = HPJ - Val(restedatke.Text) 'si la défense est <= 0 alors ce sont les HP qui diminue
If DEFJ > 0 Then DEFJ = DEFJ - Val(restedatke.Text) 'sinon la défense prend
End If
End If
'-----------------------------------------------------------------------------------------------------------------------------------------------------
If Int(Rnd() * 200) > 50 Then 'comme pour le joueur on regarde si il a gagné quelque chose
gaine.Text = Str(Int(Rnd() * 20 * diff)) + " euros récupérées " 'on l'indique
ARGE = ARGE + Val(gaine.Text) 'on la rejoute
Else
gaine.Text = "Tu gagnes : rien du tout"
End If
'-----------------------------------------------------------------------------------------------------------------------------------------------------
If HPE < ((70 * diff) / 2) Or MPE < ((70 * diff) / 2) Or DEFE < ((70 * diff) / 2) Then 'l'ennemi dispose de trousse qu'il peut utiliser si l'une de ces variables est inférieure à la moitié autorisé
If TROE > 0 Then 'seulement il lui faut des trousses sinon ca ne marche pas
TROE = TROE - 1 'on lui enlève 1 trousse
HPE = Int(Rnd(1) * HPE) + HPE 'on rajoute à ses HP un nombre compris entre 0 et ses HP
MPE = Int(Rnd(1) * MPE) + MPE 'pareil pour ses MP
DEFE = Int(Rnd(1) * DEFE) + DEFE 'et sa défense
End If
End If
'-----------------------------------------------------------------------------------------------------------------------------------------------------
If BOUE < Int(((70 * diff) / 2.5)) And marchand.Visible.ToString = "visible" And ARGE > Val(prixarm.Text) Then ' cela commande à l'ordinateur l'achet chez le marchand de bouclier
'si son bouclier est inférieur au maximum qu'il peut atteindre / par 2.5 et que le marchand est là et qu'il lui reste des sous alors
ARGE = ARGE - Val(prixbou.Text) 'on lui enlève l'argent qui correspond
BOUE = BOUE + Val(valmarcbou.Text) 'et on lui rajoute le bouclier
End If
If TROE < Int(((10 * diff) / 3)) And marchand.Visible.ToString = "visible" And TROE > Val(prixtro.Text) Then 'c pareil pour les trousses et l'attaque
ARGE = ARGE - Val(prixtro.Text)
TROE = TROE + Val(valmarctro.Text)
End If
If ATKE < Int(ATKJ * 80 / 100) And marchand.Visible.ToString = "visible" And ARGE > Val(prixarm.Text) Then
ARGE = ARGE - Val(prixarm.Text)
ATKE = ATKE + Val(valmarcarm.Text)
End If
'-----------------------------------------------------------------------------------------------------------------------------------------------------
Progresstemp.Value = 0 'on met la valeur du progresstemp à 0 afin de ne pas pénaliser le joueur
ACTUDONN() 'on actualise les données
End Sub
Private Sub Acheter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Acheter.Click
Timer1.Stop()
'on met en pause le timer
variable1 = ((Nbrtroach.Value * (Val(prixtro.Text))) + (nbrarmach.Value * (Val(prixarm.Text))) + (nbrbouach.Value * (Val(prixbou.Text))))
If variable1 > ARGJ Then 'on vérifie si tout ce qu'il a demande ne dépasse pas sa somme totale
MsgBox("Vous n'avez pas assez d'argent", MsgBoxStyle.Information, "ERROR") 'si c le cas alors on affiche un message d'erreur et on actualise
Else 'sinon
ARGJ = ARGJ - variable1 'on enlève la somme désiré
TROJ = TROJ + Nbrtroach.Value * Val(valmarctro.Text) 'on rajoute ce qu'il a demandé : [valeur du nombre de trousse désiré]*[valeur de ce qu'il gagne]
ATKJ = ATKJ + nbrarmach.Value * Val(valmarcarm.Text)
BOUJ = BOUJ + nbrbouach.Value * Val(valmarcbou.Text)
End If
Progresstemp.Value = 0 'on met la valeur du progresstemp à 0 afin de ne pas pénaliser le joueur
ACTUDONN() 'on actualise les données
End Sub
Private Sub Trousse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Trousse.Click 'lorsqu'il clique sur un trousse
Timer1.Stop()
Progresstemp.Value = 0
If TROJ > 0 Then 'vérification du nombre de trousse
TROJ = TROJ - 1 'enlèvement d'une trousse
If HPJ > 0 Then
HPJ = HPJ + Int(Rnd() * HPJ / diff) 'on fait comme pour l'ennemi, on random son nombre de HP que l'on rajoute à ce qu'il possède déjà
If HPJ > 2 * HPE Then HPJ = 2 * HPE 'pour limiter le nombre de HP, on place la limite à 2* le nombre de HP de l'ennemi
Else
HPJ = HPJ - Int(Rnd() * HPJ / diff) 'si HP est négatif, on fait comme ligne 309, sauf qu'on soustrait, ce qui ajoute
End If
If MPJ > 0 Then
MPJ = MPJ + Int(Rnd() * MPJ / diff) 'pareil pour les MP
If HPJ > 2 * HPE Then MPJ = 2 * MPE
Else
MPJ = MPJ - Int(Rnd() * MPJ / diff)
End If
If DEFJ > 0 Then
DEFJ = DEFJ + Int(Rnd() * DEFJ / diff)
If HPJ > 2 * HPE Then DEFJ = 2 * DEFE
Else
DEFJ = DEFJ - Int(Rnd() * DEFJ / diff)
End If
ACTUDONN()
End If
End Sub
Private Sub Fragiliser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Fragiliser.Click
If MPJ > 0 Then 'on verifie le nombre de MP
Timer1.Stop()
Progresstemp.Value = 0
typatakj.Text = "Type d'attaque : MAGIQUE" 'on précise le type d'attaque
variable1 = Int(Rnd() * MPJ) 'on random le nombre de MP
restedatkj.Text = Str(variable1) + " infligés !!! " 'on informe le joueur sur ce qu'il a infligé
If DEFE <= 0 Then 'si la défense de l'ennemi est < 0 alors ce sont les HP qui prenne
HPE = HPE - Val(restedatkj.Text)
MPJ = MPJ - Int(variable1 / 2) 'pour des raisons de jouabilités, j'ai préfére / par 2 le nombre de MP utilisé
End If
If DEFE > 0 Then 'si la défense est > 0
DEFE = DEFE - Val(restedatkj.Text) 'c la défense qui prend
MPJ = MPJ - variable1 'on enlève le nobmre de MP normalement
End If
If Int(Rnd() * 200) > 50 Then 'on vérifie si il a gagné quelque chos
gainj.Text = "Tu gagnes : " + Str(Int(Rnd(20 * diff)))
ARGJ = ARGJ + Val(gainj.Text)
Else
gainj.Text = "Tu gagnes : rien du tout"
End If
ATTAKEN() 'on passe la main à l'ennemi
End If
End Sub
Private Sub Voler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Voler.Click
Timer1.Stop()
If Int(Rnd() * 200) > 100 Then 'c comme un dé, pour 1 2 3 c bon, pour le reste ca marche pas
variable1 = Int(Rnd() * ARGE) 'on définit le nombre de sous qu'il lui vole
ARGE = ARGE - variable1 'on l'enlève à l'ennemi
ARGJ = ARGJ + variable1 'on le donne au joueur
If Int(Rnd() * 200) > 100 Then 'bonus exceptionnel
variable1 = Int(Rnd() * TROE) 'on définit le nombre de trousse
TROJ = TROJ + variable1 'rajout
TROE = TROE - variable1 'enlève
End If
Else
MsgBox("Raté") 'si ca ne marche pas, on le précise
End If
ATTAKEN() 'on donne la main
End Sub
Private Sub Sauver_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sauver.Click
Dim number As Int16 'le définit une nouvelle variable valable uniquement dans cette sub
Timer1.Stop()
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog 'change le type de la form mais cela ne sert à rien
If MsgBox("Voulez-vous sauvegarder ???", MsgBoxStyle.YesNo, "QUIT") = MsgBoxResult.Yes Then
'on demande si il veut sauvegarder en utilisant une MsgBox, si le resultat est oui alors
Dim FileDialog1 As New SaveFileDialog() 'on définit une autre variable correspondant à une boite de dialogue
FileDialog1.Filter = "Gente IM|*.gti" 'les filtres précédemment vu
FileDialog1.Title = "Save GenteF1 fighter" 'le titre
FileDialog1.ShowDialog() 'on montre la boite de dialogue
If FileDialog1.FileName = "" Then 'si le chemin du fichier est nul
MsgBox("Vous n'avez rien entré", MsgBoxStyle.Information, "ERROR") 'on le précise
Else 'sinon
FileOpen(1, FileDialog1.FileName, OpenMode.Output) 'on ouvre le fichier en le mettant sur mode output (écriture)
number = Int(Rnd() * 100 * diff) 'on invente la variable
Print(1, Str(number))
Print(1, Str(diff * number) + ", ") 'on écrit la valeur de la difficulté en utilisant la commande print
Print(1, nameJ1 + ", ")
Print(1, Str(HPJ * number) + ", ")
Print(1, Str(MPJ * number) + ", ")
Print(1, Str(DEFJ * number) + ", ")
Print(1, Str(BOUJ * number) + ", ")
Print(1, Str(ATKJ * number) + ", ")
Print(1, Str(TROJ * number) + ", ")
Print(1, Str(ARGJ * number) + ", ")
FileClose(1) 'on ferme le fichier
End If
Else 'si le joueur ne veut pas sauvegarder alors c la fin
End
End If
ACTUDONN() 'on actualise
End Sub
Private Sub Sauver_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Sauver.MouseEnter
ToolTip1.Show("Si tu veux quitter, clique", Sauver) '[nom de la tooltip].Sauver([string à afficher], [nom de toolbox voulu])
'ceci est juste pour montrer comment on montre un tooltip
Timer1.Interval = 3000 'ca c'est pour montrer comment on change la valeur du timer : [nom du timer].interval = valeur en milliseconds
Me.BackColor = Color.DarkGreen 'ca montre comment on change la couleur de la form
End Sub
Private Sub Sauver_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Sauver.MouseLeave
ToolTip1.Hide(Sauver)
'ceci est pour montrer comment on cache une tooltip : [nom de la tooltip].Hide([nom de toolbox voulu])
Timer1.Interval = 1000
Me.BackColor = Color.Black
End Sub
Conclusion :
Seul bug connu dans ce jeu est un overflow qui se pose à partir de niveau 6 je crois ce qui empeche de continuer, ce qui peuvent m''aider sont les bienvenue. Je pense le continuer en créant un duel entre 2 joueurs (pas encore en réseaux mais cela viendra
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.