TROUVER LE NOMBRE [VBS]

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 22 juil. 2005 à 16:58
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 28 sept. 2005 à 21:59
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/32834-trouver-le-nombre-vbs

us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
28 sept. 2005 à 21:59
?
cs_maxwells Messages postés 31 Date d'inscription lundi 14 mars 2005 Statut Membre Dernière intervention 9 novembre 2008
28 sept. 2005 à 11:14
Salut à tous et merci pour tous vos commentaires mais petite précision, je suis conscient de tous ce que vous avez dit mais j'ai déposé cette source pour les débutants, cela ne signifie pas que je suis moi aussi un débutant.
Sinon vos commentaires sont toujours les bienvenus.

P.S. : merci à Barbichette pour prendre ma défense.
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
27 sept. 2005 à 23:31
Juste une petite info. Je ne suis pas du tout programmeur de metier, et loin d'être dans le milieu de l'informatique en général (PS: je travail sur l'autoroute). Donc, quand j'ai besoin d'un soft, je cherche d'abort sur internet avant de faire un prog. Or, dans les cas de mes codes sources, il n'en existait pas.
Pour l'écran de veille, j'ai du cherche sur des sites en anglais ou en Japonnais pour trouver des docs et des exemples ou bien importer des codes du C++ vers Delphi.
Maintenant, pour le listeur, il me semble bien avoir eu des remarques sur le fait que ça existait déjà et en mieux. donc, à mon tour de dire quand il y a doublons.

Que maxwells veuille s'améloirer, c'est une bonne chose. Si il y avait eu Internet quand j'ai appris le PC, j'aurais sûrement surfer sur la vague pour trouver des exemples. Mais là, il y en a au moins 19 codes pour le PGCD en basic. Il me semble que depuis le temps, on en a fait le tour plusieurs fois.

Mais la question est : Pourquoi mettre un code maladroit en disant, "Cela peut peut-être aider les débutant... ". Non, ça peut l'aider, et je pense que ça lui a permis d'avancer. Mais il y a mieux. Alors, pour de l'aide OUI, mais il faut le dire.
Pour le fun, NON.

Barbichette
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
27 sept. 2005 à 22:29
Barbichette !

JE polémiquerais une seule fois : En quoi tes deux posts sont-ils constructif pour maxwells ? (niveau débutant)

et pis, "le compte est bon" , "des écrans de veilles" , "listeur de répertoires" , etc... il y en a aussi des tas sur internet, non ? et encore plus, si je tiens compte de tous les langages de programmation, comme toi ! ILS font donc plus que doublons ! ... et donc si tu es logique avec toi-même, il te reste plus qu'à les supprimer...

Us.
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
27 sept. 2005 à 08:44
Pour rajouter un truc, je suis bien content que tu arrive à programmer ça. Il faut bien commencer par quelque chose. Là n'est pas la question.
Le problème, c'est de mettre ce source en ligne.
Si on fait une recherche sur se site, on en trouve déjà trois sans se creuser les méninges sur le mot clé.
Voilà...

Barbichette
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
27 sept. 2005 à 08:26
d'accord avec jdaubertin.
C'est un jeu que l'on retrouve 50 fois sur n'importe quel site de programmation. On le trouve en fortran, basic, casio, TI, assembleur, et j'en passe comme sur les proc 68HCxx.
Je suis un peu dur mais entre le calcul du PGCD, le pivot de gauss ou la résolution d'équations de degré 2, qui reviennent toutes les trois semaines, il y a bien 6000 sources sur 13000 de vbfrance qui ne sont que des doublons.
Enfin, entre le code un peu maladroit et les noms de variables tantôt anglais, tantôt français, ça sent le copier-coller.

Alors, pour le code, l'originalité et le reste, je met 1/10
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
25 sept. 2005 à 10:52
Ah ! J'oublie ma note d'encouragement : 9/10 !

Us.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
25 sept. 2005 à 10:50
Salut,

Boufff... le jeu de masacre, dites donc !

JE pense que Maxwells a très fait de mettre son petit jeu, et puis merci ! IL m'a amusé.

Si on doit à chaque fois se demander à qui doit profiter un code, et ben... on risque pas moins de ne plus avoir de site du tout ! Et comme le dit Julien39, la motivation pour déposer son code c'est aussi d'en connaître les défauts...

Et dans cette rubrique, je me permet de signaler quelques points.

Déjà, comme l'avait dit Crenaud, les deux lignes :

If QuitOrReplay = vbyes then CodeJeu
If QuitOrReplay = vbno then Wscript.quit

Peuvent à mon avis être remplacé plus simplement que ce qu'il avait été proposé, par :

If QuitOrReplay = vbyes then
CodeJeu
Else
Wscript.quit
End IF

=

L'instruction Call Start() et Sub start() n'ont pas lieu d'être, puisque par défaut si le code n'est pas encadré dans une Sub alors il est exécuté.

=

De l'ordre du détail, chr(10) peut être remplacé par VbCr.

=

L'instruction Cint n'est pas ici du meilleur emploi. Cint sert à convertir un nb en un type Integer, (donc l'arrondi si nécessaire), mais ici il est employé que pour garder la partie entière du nb entré. IL est donc de loin préférable d'utiliser Int ou Fix, fonctions dédier à cela. DE plus, on peut l'appliquer directement à l'instruction InputBox, cela évite de le repéter X fois par la suite...

Mais, il reste un souci... Si on rentre au lieu d'un nombre un texte, une erreur se produit... IL faudrait donc utiliser l'instruction Err, pour gérer se cas de figure...

=

La formule :

NombreATrouver = int(Rnd*1000)

Donne un nombre compris entre 0 et 999, et non pas 1000 !

IL faut pour avoir jusqu'à 1000 :

NombreATrouver int(Rnd*1001)


Ensuite, si on veut arrêter le jeu au cours de la recherche, par le bouton Annuler, il se produit une erreur... Cela ne fait pas très propre... IL faudrait donc rajouter la gestion du bouton Annuler... Autre chose, si on rentre rien et OK, le code le considère comme si on avait rentré zéro, alors que le joueur n'a pas vraiment joué...

=

Bon... voilà, je pense qu'on pourrait encore aller plus loin, mais je n'arrête là. Voici ce que devient le code suite aux remarques :

=

Prenom = InputBox("Avant de commencer le jeu je voudrais savoir votre prénom pour que cela soit plus conviviable." & vbCr & "Quel est votre prénom ?", "quel est votre nom")

BeginGame = MsgBox("Très bien " & Prenom & ", voici les règles du jeu : " & vbCr & "L'ordinateur choisi un nombre compris entre 0 et 1000 et vous devez le trouver." & vbCr & "Sachant que l'ordinateur vous dira si le nombre que vous devez trouvez est supérieur ou inférieur à celui que vous avez tapé." & vbCr & vbCr & "Voulez-vous commencer le jeu ?", vbInformation + vbYesNo, "Règles du jeu...")
If BeginGame = vbYes Then
MsgBox "Très bien alors c'est parti !!!", vbInformation, "Ok alors on y va !!!"
CodeJeu
Else
WScript.Quit
End If

QuitOrReplay = MsgBox("Voulez-vous refaire une partie ?", vbYesNo + vbQuestion, "Voulez-vous rejouer ?")
If QuitOrReplay = vbYes Then
CodeJeu
Else
WScript.Quit
End If

Sub CodeJeu()
Randomize Timer

NombreATrouver = Int(Rnd * 1001)
NombreDeCoups = 0

While NombreJoueur <> NombreATrouver
NombreJoueur = InputBox("Tapez le nombre qui vous paraîtrait être celui que l'ordinateur à choisi.")
If NombreJoueur = "" Then Exit Sub
On Error Resume Next
NombreJoueur = Int(NombreJoueur)
If Err <> 0 Then MsgBox "Vous n'avez pas entré un nombre !": Exit Sub
If NombreJoueur < NombreATrouver Then
MsgBox "C'est plus (+)!!!"
NombreDeCoups = NombreDeCoups + 1
ElseIf NombreJoueur > NombreATrouver Then
MsgBox "C'est moins (-)!!!"
NombreDeCoups = NombreDeCoups + 1
End If
Wend
MsgBox "Bien joué " & Prenom & ", le nombre choisi par l'ordinateur était " & NombreATrouver & " ." & vbCr & "Vous avez trouver ce nombre en " & NombreDeCoups & " coups."
End Sub

=

Amicalement,
Us.
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
26 juil. 2005 à 15:39
Une source inutile sa n'existe pas.
Si c'est le code tout simple, "le tout premier jeu qu'on fait pour apprendre la programmation" il n'y a pas de commentaire à mettre.

Une source peut etre déposée avec différentes motivations: Aider les autres à faire leurs programmes, mais aussi voir où se trouvent ses erreurs en soumettant son travail a des programmeurs plus experimentés et sa marche (premier commentaire).

Le partage de son travail est un acte que l'on se doit de saluer.

Alors arrete de critiquer inutilement et partage tes codes jdaubertin.
jdaubertin Messages postés 5 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 10 mai 2006
26 juil. 2005 à 13:39
Lol c'est vraiment le genre de jeu simple à faire, c'est le tout premier "jeu" que j'ai fais lorsque j'ai commencé à apprendre la programmation. Enfin bon, de la à le poster, je pense qu'il y a assez de source du même type. De plus même cela était pour aider les débutants, je ne vois pas beaucoup de commentaires dans ton script. Résumé : source inutile donc je te met 5/10 parce que ça fonctionne et que c'est propre malgrè beaucoup de texte inutile.

Bonne continuation
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
23 juil. 2005 à 21:23
Je suis d'accord avec Zlub tu aurais du raire un morpion il y en pas du tout ( je rigole ).

C'est pas mal malgré tout 6/10
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
22 juil. 2005 à 22:05
Pas mal.. un peu trop de texte de présentation

bonne remarque de crenaud76 ...
J'aurais pas si généreux pour la note, donc je note pas...
comme ça tu conserve une bonne note... (en fait c'est en originalitée que ça pêche selon moi..)
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
22 juil. 2005 à 16:58
Tu as l'air un peu faché avec les "Else" toi non ?
Perso, plutot que

If QuitOrReplay = vbyes then CodeJeu
If QuitOrReplay = vbno then Wscript.quit

Je coderai ceci ...

If QuitOrReplay = vbyes then
CodeJeu
Else If QuitOrReplay = vbno then
Wscript.quit
End If

Et même ceci ...

If QuitOrReplay = vbyes then CodeJeu Else Wscript.quit

Meme remarque pour la comparaison des nombres dans la boucle While !
Et l'incrément du compteur de coup pourrait être En dehors des If !!
Mais sinon ton code est propre alors 7/10 pour toi ...

christophe R.
Rejoignez-nous