Bonjour,
J'ai conçu il y a quelques jours un petit jeu, vraiment basique, c'était principalement pour savoir si je pouvais.
J'ai réussi, mais j'ai des questions.
Question stupide, mais qu'elle est la différence entre le private sub, public sub et le sub ?
Ce sont des fonctions, mais pourquoi il y en a plusieurs ?
Ensuite à quoi servent les classes ?
J'ai dû mal à définir leur utilité.
Et pour finir, j'aimerais un avis concret sur mon code en Visual Basic .NET (désolé )
Je suis sûr que j'ai fait des erreurs de débutants, y'a t-il des choses inutiles ? Des choses à améliorer ?
Merci.
J'ai conçu il y a quelques jours un petit jeu, vraiment basique, c'était principalement pour savoir si je pouvais.
J'ai réussi, mais j'ai des questions.
Question stupide, mais qu'elle est la différence entre le private sub, public sub et le sub ?
Ce sont des fonctions, mais pourquoi il y en a plusieurs ?
Ensuite à quoi servent les classes ?
J'ai dû mal à définir leur utilité.
Et pour finir, j'aimerais un avis concret sur mon code en Visual Basic .NET (désolé )
Code:
Imports System.IO 'Manipulation des fichiers. Module Module1 Dim minerai As Integer = 0 'Nombre de minerais. Dim mny As Integer = 1000 'Variable argent. Dim equip As String = "Aucune pioche équipée." 'Variable pioche utilisée. Dim lvl As Integer = 1 'Variable niveau. Dim fer As Integer = 0 'Nombre de fer. Const ferprix As Integer = 50 'Prix fixe du fer. Dim ors As Integer = 0 'Nombre d'or. Const orprix As Integer = 100 'Prix fixe de l'or. Dim diam As Integer = 0 'Nombre de diamant. Const diamprix As Integer = 400 'Prix fixe du diamant. Dim time As Integer = 2000 'Temps minage (en MS, 1000ms = 1 seconde) Dim xp As Integer = 0 'Variable XP. Const xpfer As Integer = 50 'L'XP fixe que le fer donne. Const xpor As Integer = 100 'L'XP fixe que l'or donne. Const xpdiam As Integer = 200 'L'XP fixe que le diamant donne. Dim xpnxt As Integer = 100 'XP pour passer au prochain niveau. Sub Main() 'Lancement du programme. Dim bool As Boolean = True While (bool = True) Console.ForegroundColor = ConsoleColor.DarkYellow Console.WriteLine("BIENVENUE SUR MINER !") Console.ForegroundColor = ConsoleColor.White Console.WriteLine("Vous avez " & mny & " ORs") Console.WriteLine("Vous etes niveau " & lvl) Console.WriteLine("Une pioche est requise pour miner. Voulez-vous achetez une pioche ? (800 ORs) (""Oui"" ou ""Non"")") Dim choix As String = Console.ReadLine If choix = "Oui" Then bool = False mny -= 800 pioche1 = +1 Console.ForegroundColor = ConsoleColor.DarkGreen Console.WriteLine("Votre pioche est prete ! Vous avez : " & mny & " ORs") Console.ForegroundColor = ConsoleColor.White minage() ElseIf choix = "Non" Then menu() Else Console.ForegroundColor = ConsoleColor.DarkRed Console.WriteLine("[ERREUR] Veuillez ecrire ""Oui"" ou ""Non"" !") Console.ForegroundColor = ConsoleColor.White Main() End If End While Console.Read() End Sub Sub aleatoire() 'Système de récolte aléatoire. Dim alea As New Random Dim lettre As String = "" lettre = lettre & ChrW(alea.Next(Asc("a"), Asc("h"))) Select Case lettre Case "a" Console.ForegroundColor = ConsoleColor.Gray Console.WriteLine("Du fer a été récolté !") Console.ForegroundColor = ConsoleColor.White fer += 1 xp += xpfer Case "b" Console.ForegroundColor = ConsoleColor.Yellow Console.WriteLine("De l'or a été récolté !") Console.ForegroundColor = ConsoleColor.White ors += 1 xp += xpor Case "c" Console.ForegroundColor = ConsoleColor.Blue Console.WriteLine("Du diamant a été récolté !") Console.ForegroundColor = ConsoleColor.White diam += 1 xp += xpdiam Case Else Console.ForegroundColor = ConsoleColor.Gray Console.WriteLine("Du fer a été récolté !") Console.ForegroundColor = ConsoleColor.White fer += 1 xp += xpfer End Select End Sub Sub minage() 'Partie 1/2. Suite à un problème intervenue avec le système de niveau, la partie "minage" a dû être découpée en 2. Console.WriteLine("Appuyez sur une la touche ENTREE pour miner.") Dim ctnmin As String = Console.ReadLine Console.WriteLine("Minage en cours...") Threading.Thread.Sleep(time) Console.ForegroundColor = ConsoleColor.White aleatoire() Console.ForegroundColor = ConsoleColor.White minerai += 1 niveau() End Sub Sub minage2() 'Partie 2/2 Console.WriteLine("Voulez-vous continuer à miner ? (""Oui"" ou ""Non"")") Dim choix As String = Console.ReadLine Select Case choix Case "Oui" minage() Case "Non" vntmin() Case Else Console.ForegroundColor = ConsoleColor.DarkRed Console.WriteLine("[ERREUR] Veuillez ecrire ""Oui"" ou ""Non"" !") Console.ForegroundColor = ConsoleColor.White minage2() End Select End Sub Sub vntmin() 'Vente de minerais. Console.ForegroundColor = ConsoleColor.White Console.WriteLine("Vous vous êtes arreté de miner.") Console.ForegroundColor = ConsoleColor.Yellow Console.WriteLine("Vous avez " & fer & " fer(s), " & ors & " or(s) et " & diam & " diamant(s). Voulez-vous les vendre ? (""Oui"" ou ""Non"")") Console.ForegroundColor = ConsoleColor.White Dim vente As String = Console.ReadLine Dim total As Integer = fer + ors + diam Dim argt As Integer = fer * ferprix + ors * orprix + diam * diamprix Select Case vente Case "Oui" Console.ForegroundColor = ConsoleColor.DarkGreen Console.WriteLine("Vous en avez vendu " & total & ". Vous avez recu " & argt & " ORs." & vbCrLf) Console.WriteLine("Retour imminent au menu principal.") Threading.Thread.Sleep(2000) Console.ForegroundColor = ConsoleColor.White mny += argt minerai -= total menu() Case "Non" Console.ForegroundColor = ConsoleColor.Yellow Console.WriteLine("Retour au menu.") Console.ForegroundColor = ConsoleColor.White Threading.Thread.Sleep(1000) menu() Case Else Console.ForegroundColor = ConsoleColor.DarkRed Console.WriteLine("[ERREUR] Veuillez écrire ""Oui"" ou ""Non"" !") Console.ForegroundColor = ConsoleColor.White vntmin() End Select End Sub Sub menu() 'Menu principal. Dim prctxp As Integer = 100 * xp / xpnxt Dim bool As Boolean = True While bool = True Dim vrai As Boolean = True Console.WriteLine("Bienvenue dans le menu principal !") Console.WriteLine("Vous avez " & mny & " ORs") Console.ForegroundColor = ConsoleColor.Blue Console.WriteLine("Menu disponible :" & vbCrLf & "1. Magasin" & vbCrLf & "2. Mine" & vbCrLf & "3. Sauvegarder informations dans un .txt" & vbCrLf & "4. Informations à propos du jeu") Console.ForegroundColor = ConsoleColor.White Console.WriteLine("Choisissez un chiffre :") Dim choix2 As String = Console.ReadLine Select Case choix2 Case 1 magasin() Case 2 If equip = "Aucune pioche équipée." Then Console.ForegroundColor = ConsoleColor.DarkRed Console.WriteLine("Vous n'avez aucune pioche d'équipée, veuillez vous diriger vers le magasin.") Console.ForegroundColor = ConsoleColor.White Else Console.ForegroundColor = ConsoleColor.DarkGreen Console.WriteLine("Votre pioche est prete ! Vous avez : " & mny & " ORs") Console.ForegroundColor = ConsoleColor.White minage() End If Case 3 Dim sw As New StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\Informations Miner.txt") sw.WriteLine("--------------------------------------------- & vbCrLf & "Argent : " & mny & vbCrLf & "Pioche : " & equip & vbCrLf & "Minerai(s) : " & minerai & vbCrLf & "Fer(s) : " & fer & vbCrLf & "Or(s) : " & ors & vbCrLf & "Diamant(s) : " & diam & vbCrLf & "Niveau : " & lvl & vbCrLf & "Expérience : " & xp & " (" & prctxp & "%)" & vbCrLf & "---------------------------------------------) sw.Close() Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("Fichier crée sur le bureau.") Console.ForegroundColor = ConsoleColor.White Threading.Thread.Sleep(2000) menu() Case 4 Console.ForegroundColor = ConsoleColor.Green Console.WriteLine(vbCrLf & "Nombre de niveaux : 50" & vbCrLf & "Nombre de pioches : 5" & vbCrLf & "Nombre de minerais : 3 (Fer - Or - Diamant)" & vbCrLf & "Nombre de lignes : 330" & vbCrLf & "Auteur : Bayern" & vbCrLf) Console.ForegroundColor = ConsoleColor.White Console.WriteLine("Appuyez sur une touche pour quitter.") Console.ReadLine() menu() Case Else menu() End Select Dim choix As String = Console.ReadLine If choix = ("Oui") Then bool = False Console.ForegroundColor = ConsoleColor.DarkGreen Console.WriteLine("Votre pioche est prete ! Vous avez : " & mny & " ORs") Console.ForegroundColor = ConsoleColor.White minage() Else bool = True End If End While Console.Read() End Sub #Region "PiocheShop" 'Pour un achat unique des pioches. Dim pioche1 As Integer = 0 Dim pioche2 As Integer = 0 Dim pioche3 As Integer = 0 Dim pioche4 As Integer = 0 Dim pioche5 As Integer = 0 #End Region Sub magasin() 'Magasin de pioches. Dim pch(5) As Integer Dim pioche(6) As String pioche(1) = "1. Pioche du débutant [800 ORs] [Aucun niveau requis.]" pioche(2) = "2. Pioche en fer [1500 ORs] [Niveau 5 minimum]" pioche(3) = "3. Pioche en or [2000 ORs] [Niveau 10 minimum]" pioche(4) = "4. Pioche en diamant [5000 ORs] [Niveau 20 minimum]" pioche(5) = "5. Pioche du héro [10.000 ORs] [Niveau 40 minimum]" pioche(6) = "6. Quitter." Console.ForegroundColor = ConsoleColor.Yellow Console.WriteLine("ORs : " & mny & vbCrLf & "Niveau : " & lvl) Console.ForegroundColor = ConsoleColor.Blue Console.WriteLine(vbCrLf & "Bienvenue dans le magasin !" & vbCrLf & "Voici les pioches disponibles : " & vbCrLf & "--------------------------- & vbCrLf & pioche(1) & vbCrLf & pioche(2) & vbCrLf & pioche(3) & vbCrLf & pioche(4) & vbCrLf & pioche(5) & vbCrLf & "---------------------------) Console.ForegroundColor = ConsoleColor.White Console.WriteLine("Inscrivez un chiffre correspondant a la pioche voulue :") Dim choix As String = Console.ReadLine Select Case choix Case 1 If pioche1 > 0 Then Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Pioche déjà achetée, aucun retrait d'argent.") Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("Pioche équipée.") equip = ("Pioche du débutant") time = 2000 Console.ForegroundColor = ConsoleColor.White menu() End If If mny >= 800 And lvl >= 0 Then Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("La pioche du débutant a été achetée et équipée !") equip = ("Pioche du débutant") Console.ForegroundColor = ConsoleColor.White pioche1 = +1 time = 2000 mny -= 800 menu() Else Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Vous ne remplissez pas les conditions pour acheter cette pioche !") Console.ForegroundColor = ConsoleColor.White magasin() End If Case 2 If pioche2 > 0 Then Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Pioche déjà achetée, aucun retrait d'argent.") Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("Pioche équipée.") equip = ("Pioche en fer") time -= 500 Console.ForegroundColor = ConsoleColor.White menu() End If If mny >= 1500 And lvl >= 5 Then Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("La pioche en fer a été achetée et équipée !") equip = ("Pioche en fer") Console.ForegroundColor = ConsoleColor.White pioche2 = +1 time -= 500 mny -= 1500 menu() Else Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Vous ne remplissez pas les conditions pour acheter cette pioche !") Console.ForegroundColor = ConsoleColor.White magasin() End If Case 3 If pioche3 > 0 Then Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Pioche déjà achetée, aucun retrait d'argent.") Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("Pioche équipée.") equip = ("Pioche en or") time -= 800 Console.ForegroundColor = ConsoleColor.White menu() End If If mny >= 2000 And lvl >= 10 Then Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("La pioche en or a été achetée et équipée !") equip = ("Pioche en or") Console.ForegroundColor = ConsoleColor.White pioche3 = +1 time -= 800 mny -= 2000 menu() Else Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Vous ne remplissez pas les conditions pour acheter cette pioche !") Console.ForegroundColor = ConsoleColor.White magasin() End If Case 4 If pioche4 > 0 Then Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Pioche déjà achetée, aucun retrait d'argent.") Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("Pioche équipée.") equip = ("Pioche en diamant") time -= 1000 Console.ForegroundColor = ConsoleColor.White menu() End If If mny >= 5000 And lvl >= 20 Then Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("La pioche en diamant a été achetée et équipée !") equip = ("Pioche en diamant") Console.ForegroundColor = ConsoleColor.White pioche4 = +1 time -= 1000 mny -= 5000 menu() Else Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Vous ne remplissez pas les conditions pour acheter cette pioche !") Console.ForegroundColor = ConsoleColor.White magasin() End If Case 5 If pioche5 > 0 Then Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Pioche déjà achetée, aucun retrait d'argent.") Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("Pioche équipée.") equip = ("Pioche du héro") time -= 1500 Console.ForegroundColor = ConsoleColor.White menu() End If If mny >= 10000 And lvl >= 40 Then Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("La pioche du héro a été achetée et équipée !") equip = ("Pioche du héro") Console.ForegroundColor = ConsoleColor.White pioche5 = +1 time -= 1500 mny -= 10000 menu() Else Console.ForegroundColor = ConsoleColor.Red Console.WriteLine("Vous ne remplissez pas les conditions pour acheter cette pioche !") Console.ForegroundColor = ConsoleColor.White magasin() End If Case 6 menu() Case Else Console.ForegroundColor = ConsoleColor.DarkRed Console.WriteLine("[ERREUR] Veuillez inscrire un bon chiffre.") End Select End Sub Sub niveau() 'Système de niveau. Dim lvlfer As Integer = fer * xpfer Dim lvlor As Integer = ors * xpor Dim lvldiam As Integer = diam * xpdiam Dim total As Integer = lvlfer + lvlor + lvldiam If total >= xpnxt Then Console.ForegroundColor = ConsoleColor.Green Console.WriteLine("Bravo ! Vous passez niveau " & lvl + 1 & " !") lvl += 1 xpnxt += 1000 Console.ForegroundColor = ConsoleColor.White minage2() Else minage2() End If End Sub End Module
Merci.
Commentaire