Ptis problemes

Résolu/Fermé
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 - 23 févr. 2009 à 08:28
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 - 24 févr. 2009 à 14:36
Bonjour,
je suis debutant (et amateur) en programmation et je recontres qques chti problemes :
-dans la création d'un jeu simple du style question reponses, quelque soit la reponses que je lui mets, il me repond NAN!! voici ma prog :


wscript.echo "salut!!!"
sava = inputbox("ça va?")
wscript.echo "OK cool, c'est parti!!"
score = 0
wscript.echo "score : 0"

for i = 1 to 2
randomize
a = CInt(Int((10 * Rnd()) + 1))
b = CInt(Int((10 * Rnd()) + 1))
j = inputbox ("combien font " & a & " fois " & b & " ?")
r = a*b
msgbox "ta reponse: " & j & " réponse : " & r
if (j = r) then
wscript.echo "BRAVO!!"
else
wscript.echo "NAAAAAAn !!"

-et un autre probleme : je ne sais pas comment lui dire de choisir une question au hazard dans les questions que je lui ai faites (creation stopée au bout de 2 pour reflechir a ces problemes...)
MERCI BEAUCOUP D'AVANCE

16 réponses

nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
23 févr. 2009 à 08:30
au fait, je n'ai pas mis les questions dans le message ci dessus. Est-ce necessaire?
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
23 févr. 2009 à 08:37
Salut,

alors pour la première partie il te faut convertir ta chaine j en entier avec la fonction CInt

wscript.echo "salut!!!"
sava = inputbox("ça va?")
wscript.echo "OK cool, c'est parti!!"
score = 0
wscript.echo "score : 0"

for i = 1 to 2
randomize
a = CInt(Int((10 * Rnd()) + 1))
b = CInt(Int((10 * Rnd()) + 1))
j = inputbox ("combien font " & a & " fois " & b & " ?")
r = a*b
msgbox "ta reponse: " & j & " réponse : " & r
j = CInt(j)
if (j = r) then
wscript.echo "BRAVO!!"
else
wscript.echo "NAAAAAAn !!"

Si ça ne fonctionne toujours pas converti "r" aussi en entier mais bon normalement il est déjà en entier si tu l'as déclaré plus haut.


Pourrais-tu être un peu plus clair sur les questions au hasard ?
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
23 févr. 2009 à 08:40
je voudrai que les questions ne soient pas dans l'ordre ou je les ai rentrées
MERCIII
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
23 févr. 2009 à 08:42
Est-ce que la première partie de ton programme fonctionne maintenant ?

Montre nous le code quand tu poses tes questions
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
23 févr. 2009 à 08:44
oui mais maintenant il me dit
erreur ligne 14 CInt non compatible

wscript.echo "salut!!!"
sava = inputbox("ça va?")
wscript.echo "OK cool, c'est parti!!"
score = 0
wscript.echo "score : 0"

for i = 1 to 5
randomize
a = CInt(Int((10 * Rnd()) + 1))
b = CInt(Int((10 * Rnd()) + 1))
j = inputbox ("combien font " & a & " fois " & b & " ?")
r = a*b
msgbox "ta reponse: " & j & " réponse : " & r
j = CInt(j)
if (j = r) then
wscript.echo "BRAVO!!"
else
wscript.echo "NAAAAAAn !!"



' Q1
q1 = inputbox("combien font 6*5")
if q1 = 30 then
'wscript.echo "bonne reponse!!" : score=score+1
wscript.echo score & " point(s)"
else
wscript.echo "dommage!!" : score=score-1
wscript.echo score & "point(s)"
end if
' Q2
q2 = inputbox("q2")

q3 = inputbox("q3")

q4 = inputbox("q4")

q5 = inputbox("q5")
end if
next

merci
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
23 févr. 2009 à 08:46
A quoi correspond la ligne 14.

Bon je ne comprends pas trop ce que tu veux faire avec tes questions...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
23 févr. 2009 à 08:47
ligne 14 c'est la ligne que tu ma fait rajouter :
j = CInt(j)
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
23 févr. 2009 à 08:48
et puis avec mes questions, je veux tout simplement qu'elles ne s' affiche pas dans l'orde Q1 Q2 Q3 ... mais que leur ordre soit aleatoire
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
23 févr. 2009 à 08:50
oula il me trouve de plus en plus d'erreurs sans que je n'ai modifié le .vbs entre temps!!!
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
23 févr. 2009 à 08:54
helppppp!!! plz
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
23 févr. 2009 à 09:37
Voici mon code ça fonctionne parfaitement

wscript.echo "salut!!!"
sava = inputbox("ça va?")
wscript.echo "OK cool, c'est parti!!"
score = 0
wscript.echo "score : 0"

for i = 1 to 2
    randomize
    a = CInt(Int((10 * Rnd()) + 1))
    b = CInt(Int((10 * Rnd()) + 1))
    j = inputbox ("combien font " & a & " fois " & b & " ?")
    r = a*b
    msgbox "ta reponse: " & j & " réponse : " & r
    j = CInt(j)
    if (j = r) then
        wscript.echo "BRAVO!!"
    else
        wscript.echo "NAAAAAAn !!"
    End if
Next

0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 08:16
Merci beaucoup!!!! ça marche a merveille mais (desolé de t'emmerder si longtemps) est-ce que tu sais comment faire un inputbox qui demande si on veut reprendre le score de la derniere fois ou non. je sais pas si c'est juste :

r2 = inputbox("Veux-tu remettre ton score a 0?")
if r2 = oui then
score = 0
else
...(je ne sais pas quoi mettre pour lui dire de reprendre le score qu'on avait avant de quitter....)
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
24 févr. 2009 à 09:47
En fait ce que tu veux c'est que lorsque tu fermes et que tu réouvres ton application il te demande si tu veux recommencer avec l'ancien score ? Pour reprendre le score de la dernière fois il faudrait déjà que tu puisses sauvegarder ce score.
Tu peux par exemple stocker ton dernier score dans un fichier texte et ensuite le récupérer à la prochaine ouverture.
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 10:14
oui mais comment faire???...
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 10:40
pour les questions au hazard , j'ai trouvé :

for i = 1 to 3
randomize
a = CInt(Int((5 * Rnd()) + 1))
select case (a)
case 1:
msgbox "question 1"
case 2:
msgbox "q2"
case 3:
msgbox "q3"
case 4:
msgbox "q4"
case else
msgbox "q5"
end select
next
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
24 févr. 2009 à 11:03
Bon déjà il te faut un fichier "score.txt" à coté de ton fichier vbs

En suite tu utilises ce code

wscript.echo "salut!!!"

r2 = inputbox("Veux-tu remettre ton score a 0?")
if r2 = "oui" then
	score = 0
else
	'On récupère le score
	Dim oFso, f
	Set oFso = CreateObject("Scripting.FileSystemObject")
	Set f = oFso.OpenTextFile("score.txt", 1)
	while Not f.AtEndOfStream 
		score = CInt(f.ReadLine)
	Wend
	f.Close
End if

wscript.echo "Ton score est " & score

for i = 1 to 2
	randomize
	a = CInt(Int((10 * Rnd()) + 1))
	b = CInt(Int((10 * Rnd()) + 1))
	j = inputbox ("combien font " & a & " fois " & b & " ?")
	r = a*b
	msgbox "ta reponse: " & j & " réponse : " & r
	 
	j = CInt(j)
	if (j = r) then
		wscript.echo "BRAVO!!"
		score = score + 1
	else
		wscript.echo "NAAAAAAn !!"
		if score > 0 then
			score = score - 1
		End if
	End if
Next

wscript.echo "Ton score final est " & score

r2 = inputbox("Veux-tu sauvegarder ton score?")
if r2 = "oui" then
	'On sauvegarde le score
	Const ForWriting = 2
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set f = fso.OpenTextFile("score.txt", ForWriting,true)
	f.write(score)
	f.Close
End if



Allez ++
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 11:30
merci beaucoup!! au fait, sait tu comment quitter le jeu quand on veut en entrant une reponse speciale?
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 11:35
mais je doi mettre quoi dans le script a la place de :

wscript.echo "salut!!!"
sava = inputbox("ça va?")
wscript.echo "OK cool, c'est parti!!"
score = 0
wscript.echo "score : 0"

for i = 1 to 2
randomize
a = CInt(Int((10 * Rnd()) + 1))
b = CInt(Int((10 * Rnd()) + 1))
j = inputbox ("combien font " & a & " fois " & b & " ?")
r = a*b
msgbox "ta reponse: " & j & " réponse : " & r
j = CInt(j)
if (j = r) then
wscript.echo "BRAVO!!" : score=score+1
wscript.echo "tu as " & score & " point(s)"
else
wscript.echo "NAAAAAAN !!" : score=score-1
wscript.echo "tu as " & score & " point(s)"
End if
Next
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
24 févr. 2009 à 11:55
Tappe "stop" lors d'une question et ça va quitter

wscript.echo "salut!!!"
sava = inputbox("ça va?")
wscript.echo "OK cool, c'est parti!!"
score = 0
wscript.echo "score : 0"

for i = 1 to 2
randomize
a = CInt(Int((10 * Rnd()) + 1))
b = CInt(Int((10 * Rnd()) + 1))
j = inputbox ("combien font " & a & " fois " & b & " ?")
If j = "stop" then
Exit
End if
r = a*b
msgbox "ta reponse: " & j & " réponse : " & r
j = CInt(j)
if (j = r) then
wscript.echo "BRAVO!!" : score=score+1
wscript.echo "tu as " & score & " point(s)"
else
wscript.echo "NAAAAAAN !!" : score=score-1
wscript.echo "tu as " & score & " point(s)"
End if
Next
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 12:44
oui mais si je mets score = 0, il va remettre le score a 0 :(
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 12:46
"Exit incorrect" :(
0
Psyk974 Messages postés 551 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 30 mars 2010 51
24 févr. 2009 à 13:26
Tu n'es pas obligé d'attendre tout cuit... Tu peux faire des recherches sur google pour compléter ce que je te donne. Moi je te donne les codes de tête comme et ya pe etre des erreurs de syntaxe...

Essaye avec "Exit For"
0
nirv4v4 Messages postés 27 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 24 février 2009 1
24 févr. 2009 à 14:36
ok merci beaucoup!!
0