Problème avec mon programme ( Type de valeur )
Bonjour/Bonsoir
Je suis un débutant en VisualBasic, soyez indulgent s'il vous plait :ccool:
Voilà, je suis en train de faire un programme s'intitulant " Plus ou moin "
Le but, et donc de trouver le chiffre géneré aléatoirement.
Le voici:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| Module Module1
Sub Main()
' Déclaration des variables
Dim RandomClass As New Random()
Dim RandomNumber As Integer
Dim NombreEntree As String
Dim Niveau As Integer = 1
Dim Jeu As Integer = 0
Dim NombreMini As Integer
Dim NombreMax As Integer
' Présentation du programme
Console.WriteLine("Bienvenue dans le plus ou moin")
Console.WriteLine("Celui-ci est crée avec le langage de programmation VisualBasic.NET ( VB.NET )")
Console.WriteLine("Merci d'appuyer sur <<Entrer>>")
Console.Read()
' Création du nombre alétoire ( de 1 à 100 )
RandomNumber = RandomClass.Next(1, 100)
Console.WriteLine("On commence !")
Console.WriteLine("On commence de 1 à 100")
NombreMini = 1
NombreMax = 100
' Boucle infinie permettant de jouer en illimité =) !
Do
Console.Read()
Console.WriteLine("Entrer le nombre")
Console.WriteLine("Valeur: " & RandomNumber)
NombreEntree = Console.ReadLine()
' Si le nombre entree est égal au nombre généré:
If NombreEntree = RandomNumber Then
NombreMax += 100
Niveau += 1
Console.WriteLine("Bien joué !")
Console.WriteLine("Niveau " & Niveau & ": de " & NombreMini & " à " & NombreMax)
RandomNumber = RandomClass.Next(NombreMini, NombreMax)
NombreEntree = 0
Console.WriteLine("Le chiffre à rechercher se situe maintenant entre " & NombreMini & " et " & NombreMax)
' Sinon, si le nombre entree est plus petit que le nombre généré:
ElseIf NombreEntree < RandomNumber Then
Console.WriteLine("Le nombre recherché est plus petit !")
' Sinon, si le nombre entree est plus grand que le nombre généré:
ElseIf NombreEntree > RandomNumber Then
Console.WriteLine("Le nombre recherché est plus grand !")
End If
' Faire en sorte que le jeu ne se termine jamais:
Loop Until Jeu = 1
Console.Read()
End Sub
End Module |
Le problème est le suivant:
J'entre pour la première fois le chiffre géneré aléatoirement, ça marche, il m'affiche bien le message " Bien joué ! ...... "
Je suis donc dans le niveau 2, et le nombre à trouver se trouve entre 1 et 200.
J'entre donc n'importe quel chiffre, et un message apparait sur VB:
Citation:
L'exception System.InvalidCastException n'a pas été gérée
Message=La conversion de la chaîne "" en type 'Double' n'est pas valide.
Source=Microsoft.VisualBasic
StackTrace:
à Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
à Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value)
à ConsoleApplication1.Module1.Main() dans C:\Users\Alexandre\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Module1.vb:ligne 31
à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()
InnerException: System.FormatException
Message=Le format de la chaîne d'entrée est incorrect.
Source=Microsoft.VisualBasic
StackTrace:
à Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)
à Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat)
InnerException:
Voilà, je ne comprends pas ce problème, enfin je pense que ça vient du type de format...
Cordialement