Jeu dallumette en langage C
popo42
-
Winfly Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Winfly Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
nous devons réaliser le jeu d'allumette, la dernière du tas en langage c. mon programme compile en silence mais quand je l'éxecute il ne se passe rien. je n'arrive pas a trouver mes erreurs, svp aidez moi.
voila mon programme
#include <stdio.h>
#include <stdlib.h> /*bibliotheque contenant la fonction aleatoire*/
/*declarations de constantes et de types*/
void Usage (char*s){
printf ("Usage %s",s);
printf("<nb_allumettes>");
printf("\n");
}
void coup_uti(int nb_allumettes, int trait) {/*pour l'utilisateur*/
int nb;
if(trait==0){ /*trait= nb d'allumette enlevé*/
while (nb!=1 || nb!=2){
/*nb = nb d'allumette a enlever choisi par le joueur*/
printf ("vous devez donner un nb entre 1 et 2\n");
printf("Combien en prenez-vous : ");
}
printf("j'en prends %d\n",nb);
}
else{
while (nb>trait*2){
printf("vous devez prendre un nb d'allumette inférieure\n");
printf("à 2 fois le nb d'allumette pris \n");
printf("précedemment par votre adversaire\n");
printf("Combien en prenez-vous : ");
}
printf("J'en prends %d\n",nb);
nb_allumettes=nb_allumettes-nb;/*nb_allumette s= celle encore en jeu*/
printf("Il en reste %d\n",nb_allumettes);
}
}
/*declarations de fonctions*/
int main(int argc, char *argv[]) {
int nb_allumettes;
int trait;
int nb,b;
/*decodage et controle des arguments*/
if(argc < 3) {
Usage(argv [0]);
exit(-1);
}
nb_allumettes=atoi(argv[1]);
trait=atoi(argv[2]);
while(nb_allumettes > 0) {
coup_uti(nb_allumettes,trait);
/* à l'ordi de jouer*/
printf("a l'ordinateur de jouer !\n");
/*stratégie pour gagner, ramener l'autre a prendre la
5ème allumette,la 9ème,la 13ème...
en suivant la suite Un= Un-2 + Un-1; avec U0=0 et U1=1*/
if ((nb_allumettes<9)&(nb_allumettes>5)){
nb=(nb_allumettes-5);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if ((nb_allumettes<13)&(nb_allumettes>9)){
nb=(nb_allumettes-9);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if ((nb_allumettes<17)&(nb_allumettes>13)){
nb=(nb_allumettes-13);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if ((nb_allumettes<21)&(nb_allumettes>17)){
nb=(nb_allumettes-17);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if (nb_allumettes==21)
nb=1;
else if (nb_allumettes >21)
nb=rand();
printf("L'ordinateur retire %d allumettes.\n",nb);
nb_allumettes=nb_allumettes-nb;
}
if(nb_allumettes==0){
if (b==1);
/*Marqueur de "dernier joueur" a avoir retire
la ou les allumettes ce qui nous servira
a la fin pour afficher le vainqueur.*/
printf("Vouz gagnez !");
}
else{
printf("Je gagne !");
}
return(0);
}
Merci
nous devons réaliser le jeu d'allumette, la dernière du tas en langage c. mon programme compile en silence mais quand je l'éxecute il ne se passe rien. je n'arrive pas a trouver mes erreurs, svp aidez moi.
voila mon programme
#include <stdio.h>
#include <stdlib.h> /*bibliotheque contenant la fonction aleatoire*/
/*declarations de constantes et de types*/
void Usage (char*s){
printf ("Usage %s",s);
printf("<nb_allumettes>");
printf("\n");
}
void coup_uti(int nb_allumettes, int trait) {/*pour l'utilisateur*/
int nb;
if(trait==0){ /*trait= nb d'allumette enlevé*/
while (nb!=1 || nb!=2){
/*nb = nb d'allumette a enlever choisi par le joueur*/
printf ("vous devez donner un nb entre 1 et 2\n");
printf("Combien en prenez-vous : ");
}
printf("j'en prends %d\n",nb);
}
else{
while (nb>trait*2){
printf("vous devez prendre un nb d'allumette inférieure\n");
printf("à 2 fois le nb d'allumette pris \n");
printf("précedemment par votre adversaire\n");
printf("Combien en prenez-vous : ");
}
printf("J'en prends %d\n",nb);
nb_allumettes=nb_allumettes-nb;/*nb_allumette s= celle encore en jeu*/
printf("Il en reste %d\n",nb_allumettes);
}
}
/*declarations de fonctions*/
int main(int argc, char *argv[]) {
int nb_allumettes;
int trait;
int nb,b;
/*decodage et controle des arguments*/
if(argc < 3) {
Usage(argv [0]);
exit(-1);
}
nb_allumettes=atoi(argv[1]);
trait=atoi(argv[2]);
while(nb_allumettes > 0) {
coup_uti(nb_allumettes,trait);
/* à l'ordi de jouer*/
printf("a l'ordinateur de jouer !\n");
/*stratégie pour gagner, ramener l'autre a prendre la
5ème allumette,la 9ème,la 13ème...
en suivant la suite Un= Un-2 + Un-1; avec U0=0 et U1=1*/
if ((nb_allumettes<9)&(nb_allumettes>5)){
nb=(nb_allumettes-5);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if ((nb_allumettes<13)&(nb_allumettes>9)){
nb=(nb_allumettes-9);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if ((nb_allumettes<17)&(nb_allumettes>13)){
nb=(nb_allumettes-13);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if ((nb_allumettes<21)&(nb_allumettes>17)){
nb=(nb_allumettes-17);
if (nb>trait*2)
nb=1;
else
nb=nb;
}
if (nb_allumettes==21)
nb=1;
else if (nb_allumettes >21)
nb=rand();
printf("L'ordinateur retire %d allumettes.\n",nb);
nb_allumettes=nb_allumettes-nb;
}
if(nb_allumettes==0){
if (b==1);
/*Marqueur de "dernier joueur" a avoir retire
la ou les allumettes ce qui nous servira
a la fin pour afficher le vainqueur.*/
printf("Vouz gagnez !");
}
else{
printf("Je gagne !");
}
return(0);
}
Merci
A voir également:
- Jeu dallumette en langage C
- Langage ascii - Guide
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu zuma - Télécharger - Jeux vidéo
- Langage binaire - Guide
2 réponses
Il se rend jusqu'ou ton programme car si tu ne voit rien mes toi des trace ex :
*** VOTRE fonction MAIN
/*declarations de fonctions*/
int main(int argc, char *argv[]) {
int nb_allumettes;
int trait;
int nb,b;
printf("Avant exit()")
/*decodage et controle des arguments*/
if(argc < 3) {
Usage(argv [0]);
exit(-1);
}
printf("Apres exit()")
nb_allumettes=atoi(argv[1]);
trait=atoi(argv[2]);
while(nb_allumettes > 0) {
coup_uti(nb_allumettes,trait);
*** VOTRE fonction MAIN
/*declarations de fonctions*/
int main(int argc, char *argv[]) {
int nb_allumettes;
int trait;
int nb,b;
printf("Avant exit()")
/*decodage et controle des arguments*/
if(argc < 3) {
Usage(argv [0]);
exit(-1);
}
printf("Apres exit()")
nb_allumettes=atoi(argv[1]);
trait=atoi(argv[2]);
while(nb_allumettes > 0) {
coup_uti(nb_allumettes,trait);