Bonjour/Bonsoir
Je suis un débutant en VisualBasic, soyez indulgent s'il vous plait
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:
Le problème est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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:
Voilà, je ne comprends pas ce problème, enfin je pense que ça vient du type de format...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:
Cordialement
Partager