Programmation/ Langage C
Résolu
Dark-Beta69
Messages postés
71
Date d'inscription
Statut
Membre
Dernière intervention
-
Richard.M Messages postés 105 Date d'inscription Statut Membre Dernière intervention -
Richard.M Messages postés 105 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Programmation/ Langage C
- Langage ascii - Guide
- Application de programmation - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage de programmation visual basic - Télécharger - Langages
9 réponses
salut
alors en ce qui concerne la couleur tu doit utilser system("color 80") : ici j'ai mis 80 pour du gris ou du noir je sais plus, mais si tu veu savoir quel couleur iil faut utiliser il te suffit d'aller dans paint dans l'outil pou les couleurs. tu regles ta couleur a partir des couleurs primaires RGB (exemple R=0, V=0, B=0, la tu aura du noir).
en ce qui concerne le'instruction pour recommencer une partie ben je te propose de faire:
printf(" Voulez vous faire une autre partie?\n");
printf("oui(1) ou non(2)");
scanf("%d", &reponse);
fflush(stdin);
if(reponse==OUI)
{
system("cls"); // cette commande sert a effacer la console => pas de traces de la partie précedentes.
main();
}
le principe ici est de revenir au main de ton programme donc de le recommencer.. si il ya des trucs pas clair dis le moi
a+
alors en ce qui concerne la couleur tu doit utilser system("color 80") : ici j'ai mis 80 pour du gris ou du noir je sais plus, mais si tu veu savoir quel couleur iil faut utiliser il te suffit d'aller dans paint dans l'outil pou les couleurs. tu regles ta couleur a partir des couleurs primaires RGB (exemple R=0, V=0, B=0, la tu aura du noir).
en ce qui concerne le'instruction pour recommencer une partie ben je te propose de faire:
printf(" Voulez vous faire une autre partie?\n");
printf("oui(1) ou non(2)");
scanf("%d", &reponse);
fflush(stdin);
if(reponse==OUI)
{
system("cls"); // cette commande sert a effacer la console => pas de traces de la partie précedentes.
main();
}
le principe ici est de revenir au main de ton programme donc de le recommencer.. si il ya des trucs pas clair dis le moi
a+
Salut,
Les booléens n'existent qu'en norme C99. Il faut inclure le header stdbool.h et le type est _Bool.
En C89, il est d'usage de se créer son type avec des directives préprocesseurs #define.
Mais bon, on peut très bien utiliser des int pour stocker un 0 ou un 1. Ce ne sont pas des booléens mais des int. Mais à moins de faire de l'embarqué cela n'est absolument pas gênant.
Pour ce qui est de la génération d'un pseudo-aléatoire, il se fait dans tous les cas entre 0 et RAND_MAX.
C'est à toi de faire une règle de trois (et non un modulo sous peine de ne pas avoir une répartition équiprobable) suivi d'une translation (soustraction ou addition) pour obtenir un nombre dans l'ensemble désiré.
Les booléens n'existent qu'en norme C99. Il faut inclure le header stdbool.h et le type est _Bool.
En C89, il est d'usage de se créer son type avec des directives préprocesseurs #define.
Mais bon, on peut très bien utiliser des int pour stocker un 0 ou un 1. Ce ne sont pas des booléens mais des int. Mais à moins de faire de l'embarqué cela n'est absolument pas gênant.
Pour ce qui est de la génération d'un pseudo-aléatoire, il se fait dans tous les cas entre 0 et RAND_MAX.
C'est à toi de faire une règle de trois (et non un modulo sous peine de ne pas avoir une répartition équiprobable) suivi d'une translation (soustraction ou addition) pour obtenir un nombre dans l'ensemble désiré.
Oui conio.h n'existe pas sur linux.
Tu peux utiliser ncurses sous Linux : http://www.faqs.org/docs/Linux-HOWTO/NCURSES-Programming-HOWTO.html
Cdlt
Tu peux utiliser ncurses sous Linux : http://www.faqs.org/docs/Linux-HOWTO/NCURSES-Programming-HOWTO.html
Cdlt
re :)
en ce qui concerne le fait que la console lise l'instruction return 0 et que la fenètre se ferme :
system("pause"); juste avant le return 0;
sa va stopper la lecture du programme ( sans effacer la console ne t'inquiete pas) et sa va le reprendre quand tu appuira sur une touche.
Voila pour le ptit plus lol :)
en ce qui concerne le fait que la console lise l'instruction return 0 et que la fenètre se ferme :
system("pause"); juste avant le return 0;
sa va stopper la lecture du programme ( sans effacer la console ne t'inquiete pas) et sa va le reprendre quand tu appuira sur une touche.
Voila pour le ptit plus lol :)
Salut,
Alors le mieux pour les couleurs est l'utilisation des API : https://openclassrooms.com/fr/courses Evite d'utiliser la solution avec system, ce n'est vraiment pas top.
Pour reprendre ton programme, tout ceci est question de boucle. Tu peux faire un do while (rep=='o'); en demandant juste avant le while à l'utilisateur de rentrer o/n s'il souhaite continuer ou non.
Pour le raccourci, tu fais clique droit sur ton programme : envoyer vers, bureau (créer un raccourci).
cdlt
Alors le mieux pour les couleurs est l'utilisation des API : https://openclassrooms.com/fr/courses Evite d'utiliser la solution avec system, ce n'est vraiment pas top.
Pour reprendre ton programme, tout ceci est question de boucle. Tu peux faire un do while (rep=='o'); en demandant juste avant le while à l'utilisateur de rentrer o/n s'il souhaite continuer ou non.
Pour le raccourci, tu fais clique droit sur ton programme : envoyer vers, bureau (créer un raccourci).
cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tu va croire que je suis collant :)
PS : Quelqu'un peut m'expliquer ces instructions :
srand (time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
en faite c'est une fonction hasard. la premiere ligne sert a initialiser le timer. et la seconde utilise la notion de modulo qui serait un peu compliquer à t'expliquer dans ce message ( à cette heure ci lol), mais je te file un exemple pour comprendre.
Je veux avoir un nombre au hasard entre 0 et 1 :
int i;
srand(time(0));
i=rand()%2+0;
return i;
ici "i" sera soit égal à 0 soit à 1, et c'est indépendant de l'utilisateur.
A+
PS : Quelqu'un peut m'expliquer ces instructions :
srand (time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
en faite c'est une fonction hasard. la premiere ligne sert a initialiser le timer. et la seconde utilise la notion de modulo qui serait un peu compliquer à t'expliquer dans ce message ( à cette heure ci lol), mais je te file un exemple pour comprendre.
Je veux avoir un nombre au hasard entre 0 et 1 :
int i;
srand(time(0));
i=rand()%2+0;
return i;
ici "i" sera soit égal à 0 soit à 1, et c'est indépendant de l'utilisateur.
A+
Bonjour,
Merci beaucoup à tout les deux.
Alors hier soir avant d'aller dodo j'ai fait ça :
Et j'ai modifié tout les return o; en return rejouer(); du coup la fênetre ne se ferme plus et pas besoin du system("pause")
:)
Mais l'instruction "system("cls");" m'intéresse je vais la mettre.
Aussi j'aimerais savoir si c'est possible de changer de couleur a chaque niveau : du genre a chaque fin de partie avant mon return rejouer(); je met system("cls");
puis une instruction pour changer la couleur ?
Merci a vous deux pour les explications/conseil et merci fiddy pour le lien !
Petite question :
printf(" Voulez vous faire une autre partie?\n");
printf("oui(1) ou non(2)");
scanf("%d", &reponse);
c'est ca une conditions Booléen ? parceque j'ai pas bien compris ce chapitre :s
Et j'aimerais rajouter une mode "spéciale" a mon code source, sa je sais comment faire mais j'aimerais qu'il génère un nombre mystère entre -500 et 500, c'est possible ?
Merci.
Merci beaucoup à tout les deux.
Alors hier soir avant d'aller dodo j'ai fait ça :
int rejouer() { int choix = 0; while (choix < 1 || choix > 2) { printf("\t\t\t\t === REJOUER ? === \n"); printf("1 : OUI\t\t\t\t\t\t\t\t\t2: NON\n"); printf("Votre choix ? "); scanf("%d", &choix); if (choix == 1) { return main();} if (choix == 2) { return 0;} } return choix; }
Et j'ai modifié tout les return o; en return rejouer(); du coup la fênetre ne se ferme plus et pas besoin du system("pause")
:)
Mais l'instruction "system("cls");" m'intéresse je vais la mettre.
Aussi j'aimerais savoir si c'est possible de changer de couleur a chaque niveau : du genre a chaque fin de partie avant mon return rejouer(); je met system("cls");
puis une instruction pour changer la couleur ?
Merci a vous deux pour les explications/conseil et merci fiddy pour le lien !
Petite question :
printf(" Voulez vous faire une autre partie?\n");
printf("oui(1) ou non(2)");
scanf("%d", &reponse);
c'est ca une conditions Booléen ? parceque j'ai pas bien compris ce chapitre :s
Et j'aimerais rajouter une mode "spéciale" a mon code source, sa je sais comment faire mais j'aimerais qu'il génère un nombre mystère entre -500 et 500, c'est possible ?
Merci.
salut.
alors non ce ne sont pas des booléens , les booléens sont des variables auxquels tu affectes une valeurs.
Mais cela dit tu peux en utiliser :
int oui= 1, non = 2; ( ici ce sont des booléens)
En ce qui concerne ton probleme de couleur je ne sais pas si tu as choisi la méthode de fiddy ou la mienne. Donc peut-être que ma solution ne te conviendrait pas.
Quant au nombre mystère entre -500 et 500 je ne sais pas si il est possible de sortir un nombre négatif dsl :s
Pour finir, j'aimerais savoir si tu n'as pas un " warning" avec ton return rejouer(), j'ai bien compris ce que tu voulais faire mais si tu regarde le prototype de ta fonction, ( int rejouer() ) tu doit normalement renvoyer un entier, mais là tu ne renvoie rien.
A+
alors non ce ne sont pas des booléens , les booléens sont des variables auxquels tu affectes une valeurs.
Mais cela dit tu peux en utiliser :
int oui= 1, non = 2; ( ici ce sont des booléens)
En ce qui concerne ton probleme de couleur je ne sais pas si tu as choisi la méthode de fiddy ou la mienne. Donc peut-être que ma solution ne te conviendrait pas.
Quant au nombre mystère entre -500 et 500 je ne sais pas si il est possible de sortir un nombre négatif dsl :s
Pour finir, j'aimerais savoir si tu n'as pas un " warning" avec ton return rejouer(), j'ai bien compris ce que tu voulais faire mais si tu regarde le prototype de ta fonction, ( int rejouer() ) tu doit normalement renvoyer un entier, mais là tu ne renvoie rien.
A+
sans vouloir t'offenser fiddy, Dark-Beta69 vient de commencer le C :) il faut pas trop l'embrouiller lol.
A+
A+
D'accord j'ai pas tout compris mais j'irais chercher sur "google" donc sa ira, merci beaucoup !
Maintenant je voudrais savoir s'il est possible de modifier l'icône du raccourcis sur le bureau ?
et de changer le titre de la fenêtre du jeu, car la j'ai C:/Documents.../bureau/...
Merci encore.
Dark-Beta69
Maintenant je voudrais savoir s'il est possible de modifier l'icône du raccourcis sur le bureau ?
et de changer le titre de la fenêtre du jeu, car la j'ai C:/Documents.../bureau/...
Merci encore.
Dark-Beta69
Attention :
fflush(stdin);
Ca ne s'utilise pas, cela a un comportement indéterminé.
A+
PS : cela à un comportement indéterminé s'il est mal utilisé :)
PS : cela à un comportement indéterminé s'il est mal utilisé :)
Non ! Cela a un comportement indéterminé dès que tu l'utilises. fflush ne pas pas être utilisé sur une entrée. Juste sur les sorties.
Moi je l'avais utiliser a cause du scanf parceque j'ai créer un petit morpion (juste a la console) et si j'avais pas mis le fflush, je me retrouvais à devoir taper 2 fois les coordonnées de mon point pour qu'il puisse se placer.
On m'a expliqué pourquoi et on m'a dit comment ! lol
A+
Cela t'évitera que le '\n' provoqué lors de ta validation soit pris en compte dans la prochaine lecture clavier.