PETIT JEU D'UN DEBUTANT EN C++, VARIABLE ALÉATOIRE ET AUTRES PETITS TRUCS UTILES

cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 - 3 juin 2002 à 09:50
 GrayHat Nation - 17 juin 2015 à 11:32
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/9240-petit-jeu-d-un-debutant-en-c-variable-aleatoire-et-autres-petits-trucs-utiles

GrayHat Nation
17 juin 2015 à 11:32
salut j'ai juste un truc a dire, comment peut on proposer une merde comme celle-ci ton programme est farci d'erreur... je fout donc 1 etoile et crois moi c'est vraiment pour t inciter a faire mieux la prochaine fois car proposer un truc comme ca c'est vraiment pas top vu que le travail n'est pas fini... teste tes programmes avant de les proposer aux autres... sinon de l'idee est sympa mais pour un nouveau que veut apprendre, avec ton programme l ne pissera pas loin a moins d'avoir deja de notions en C sinon il nagera...
cs_heyboy Messages postés 18 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 11 juillet 2005
8 mars 2005 à 19:31
Pour enlever cette erreur, il suffit que tu remplaces "iostream.h" par "iostream" et, ensuite, en dessous tu tapes : "using namespace std;"
Voilà ! :)
Masterfight Messages postés 20 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 20 mars 2006
24 déc. 2004 à 11:02
Bonjour, c'est une vieille source et je suis super debutant.
Je suis sous "dev c++ 4.9.8.0" et lorsque je compile ce code il s'arrête sur la ligne 31 de iostream.h:

31 C:\Dev-Cpp\include\c++\backward\iostream.h
In file included from C:/Dev-Cpp/include/c++/backward/iostream.h

Il y a encore plusieurs erreurs mais bon, une à la fois.
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
10 août 2002 à 11:12
salut,

effectivement en C++ suspendre la ligne // #define getch getchar pose des problemes ça ne marche qu'en C.

cmarsc ;-)
cs_WooD Messages postés 6 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 18 mai 2002
9 juil. 2002 à 11:41
modifier cette ligne dans conio.h induit plusieurs erreur dans conio.c utilisé pour textcolor... donc, pas terrible... ca m'apprendra à mettre de la couleur...
cs_WooD Messages postés 6 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 18 mai 2002
9 juin 2002 à 22:20
Hoaw, il faut donc supprimer cette ligne (du moins la mettre en commentaire) et puis voilà !!!
Ben ok, je vais voir ça. Ca devrai mettre révolutionnaire ce truc !!!
merci bcp
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
7 juin 2002 à 13:04
Salut,

Si jamais tu utilises DEVC++ 4, tu peux modifier dans le fichier <conio.h> la ligne suivante
define getch getchar
par
// #define getch getchar

elle sera désactivee afin d'eviter de taper entrée à chaque fois que tu dois appuyer sur des touches comme ESC ou les touches de directions.

Etant donné que l'utilisateur n'entre qu'un seul caractère autant opter pour getch() au lieu de cin cela evitera d'appuyer sur Entrée après chaque entrée au clavier
ex : joueur = getch();

cmarsc
cs_WooD Messages postés 6 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 18 mai 2002
6 juin 2002 à 18:20
en fait non, je ne vais pas mettre Echap car entrée doit être pressé également, tant qu'a presser deux touches autant les presser en combinaisons (Ctrl+C) plutôt que Echap puis Entrée... ca doit être pour ca que je ne l'ai pas mis... si y a un autre moyen, je suis tout ouïe... :-)

@+
cs_WooD Messages postés 6 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 18 mai 2002
6 juin 2002 à 18:03
Salut !

Je sais que l'erreur vien de messagebeep à cause du signe de la valeur mais c'est le seul moyen de faire faire un bip grave à l'ordi.
Pour le clrscr(), ca n'a pas marché mais du tout, j'ai tout essayé ... rien à faire du coup j'ai mis ce truc mourd system("cls"), ca marche nikel.
POur le esc, ca va se faire, j'avais tester le truc mais en mode plein écran (avec command.com) ca marchait pas mieux que ctrl+c, j'avais du mal à le faire proprement et la boucle while 1+1=2 n'était pas là (y a avait un horrible goto). Il est évident maintenant, je le reconnais de placer ESC avec " char clavier; while (clavier != 27) cin>>clavier; en fin de prog ".

Merci bien de ce conseil :-)
la modification sera faite dans 7 minutes environs...
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
6 juin 2002 à 12:48
salut,

je ne sais pas si tu as trouvé la solution au message d'erreur, mais toujours est-il que l'erreur est en fait à la ligne 75 , dans MessageBeep(-1) il se peut qu'il n'accepte pas une valeur négative en revanche lorsqu'on met une valeur différente de -1 (du moins positive l'erreur est supprimée).

On peut utiliser clrscr(); <conio.h> au lieu de la commande du DOS system("cls");

Pourquoi ne pas sortir du programme avec le bon vieux ESC code 27

while (1+1==2); ???

cordialement ;-)
cmarsc
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
4 juin 2002 à 18:34
T'inquiète pas je suis passé par là !
cs_WooD Messages postés 6 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 18 mai 2002
3 juin 2002 à 21:16
Ok ! merci, c'est une mauvaise abitude que j'ai pris en programmant ma calculatrice, j'y remédie incessamment sous peu !!!
cs_GoldenEye Messages postés 527 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 6 octobre 2008 4
3 juin 2002 à 09:50
Ne jamais faire de goto dans un programme même court. C'est contraire aux principes de la programmation structurée et sur de gros programmes, cette méthodologie favorise le code spaghetti illisible. Remplace ta boucle par
do
{
...
} while(jeu pas fini)
Rejoignez-nous