IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème pour passer de windows à Unbuntu


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut Problème pour passer de windows à Unbuntu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # #include <stdio.h>
    # #include <stdlib.h>
    #
    # char grille[6][7];/*ce tableau represente une delimitation du nombre de case de la grille*/
    # int remplissage[7];/* ce tableau définit le nombre de jeton qu'il y a dans la colonne..maximum 6.*/
    #
    # int dansGrille(int x,int y)
    # /*la fonction prend 2 entiers x et y et renvoie vrai s'il existe une case de coordonnées(x,y)dans grille.*/
    # {
    # if ((x>=0)&&(x<=5)&&(y>=0)&&(y<=6))/* x appartient aux six cases d'une colone 0~5
    # y appartient aux septs case d'une ligne 0~6*/
    # return

  2. #2
    Membre confirmé Avatar de Gui13
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 157
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <windows.h>
    Rien que ca ca aurait du te titiller un peu sous Ubuntu
    Pour le reste, je ne sais pas, désolé.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 132
    Billets dans le blog
    150
    Par défaut
    Les warnings se règlent avec l'ajout de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #include <stdio.h>
    #include <stdlib.h>
    ( Qui était notamment caché par le #include <windows.h> )
    ( Chose que je n'aime pas dans les tutoriaux de C, orientée windows )


    [Blague]
    Citation Envoyé par Gui13
    Rien que ca ca aurait du te titiller un peu sous Ubuntu
    Meuh non, c'est pour avoir des fenetres
    [/blague]
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    De plus tu sembles avoir des fonctions implémentées dans tes .h
    menu.h: In function ‘menu’:
    menu.h:2: warning: incompatible implicit declaration of built-in function ‘printf’
    Du code dans des .h c'est le mal. Tu dois seulement déclarer tes fonctions dans les .h. Tu devrais avoir un fichier menu.c pour implémenter ces fonctions, dans lequel tu pourras mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <stdio.h>
    #include "menu.h"
    Et tu n'auras plus ce warning.

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut
    C'est tout de même bizarre, quand je reviens sous windows, il me le compile trankilou, j'ai le temps de me boire une bière alors que unbuntu, j'ai pas le temps d'appuyer sur le bouton qu'il m'agresse...

    De plus j'ai effectivement un menu.h qui affiche juste (void) donc je ne vois pas pourquoi je devrais remettre les <stdio.h> et <stdlib.h>

    Passage windows=> unbuntu?

    Dans tous les cas je vais poster mon main.c entier avec description pour que vous puissiez me corriger parce que la je suis encore un peu perdu...
    Pour l'instant le "<windows.h>" est pour l'ouverture d'une fenêtre que je ne sais pas encore comment faire mais j'incrémenterai à l'intérieur d'un de mes choix je pense. Si vous avez besoin d'autres choses, je reste a votre disposition. Pour l'instant je corrige le code sous windows. Je verrai pour le passage sous unbuntu plus tard car je pense qu'il y a un problème de syntaxe au niveau du code...

    ps: Désolé pour le double post que je m'apprete a faire, sa sera beaucoup plus clair...

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Tu ferais mieux de poster aussi les .h (surtout menu.h)

  7. #7
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    • Sleep est une fonctionne Windows, tu ne va pas la retrouver sous ubuntu...
    • Tu ne pourra pas compiler sous ubuntu tant que #include <windows.h> sera présent. Mais tu peux ruser :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      #ifdef WIN32
      #include <windows.h>
      #endif
    • Que contient menu.h ?

  8. #8
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut mon menu.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void menu(){
        printf("\t\t\t******************************\n");
        printf("\t\t\t****** MENU PUISSANCE 4 ******\n\t\t\t------------------------------\n");
        printf("\t\t\t********* 1.Jouer ************\n");
        printf("\t\t\t********** 2.R\x8Agles **********\n");
        printf("\t\t\t********* 3.Quitter **********\n");
        printf("\t\t\t******************************\n");
        printf("\t\t\t******************************\n");
        }
    ======================================================

    Règles.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void AffichageRegle(){
    printf("Le but du jeu est d'aligner 4 pions sur une grille comptant 6 rang%ces et 7 colonnes.Chaque joueur dispose de 21 pions d'une couleur (par convention, en g%cn%cral jaune ou rouge).Tour %c tour les deux joueurs placent un pion dans la colonne de leur choix, le pion coulisse alors jusqu'%c la position la plus basse possible dans ladite colonne suite %c quoi c'est %c l'adversaire de jouer.Le vainqueur est le joueur qui r%calisE le premier un alignement (horizontal, vertical ou diagonal) d'au moins quatre pions de sa couleur.Si alors que toutes les cases de la grille de jeu sont remplies aucun des deux joueurs n'a r%calis%c un tel alignement, la partie est d%cclar%ce nulle.\n",130,130,130,133,133,133,133,130,130,130,130,130,130);
    }

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Hello,

    Citation Envoyé par mabu Voir le message
    Bonjour,

    • Sleep est une fonctionne Windows, tu ne va pas la retrouver sous ubuntu...
    C'est vrai mais tu pourrais quand même dire que les équivalents sont sleep() (avec une minuscule) et usleep()

  10. #10
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Prolusitano Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void menu(){
        printf("\t\t\t******************************\n");
        printf("\t\t\t****** MENU PUISSANCE 4 ******\n\t\t\t------------------------------\n");
        printf("\t\t\t********* 1.Jouer ************\n");
        printf("\t\t\t********** 2.R\x8Agles **********\n");
        printf("\t\t\t********* 3.Quitter **********\n");
        printf("\t\t\t******************************\n");
        printf("\t\t\t******************************\n");
        }
    Tout d'abord, on ne met pas de code dans un .h seulement les déclarations.
    Ensuite la déclaration de printf() n'est pas visible ici puisque stdio n'est pas inclus dans menu.h et est inclus après menu.h dans main.c.

  11. #11
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    @Prolusitano : Cette erreur t'avait déjà été signalée hier par muad'dib !

  12. #12
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut Blindage des codes lettres?
    Mes erreurs ont été réparé, je vous remercie de votre aide.
    Cependant, j'ai un nouveau problème, lorsque je veux demander à l'utilisateur de rentrer une ligne ou colonne ( en fonction des cases vides) et donc de mettre un chiffre, j'aimerai blinder le caractère des lettres, afin d'empecher "l'idiot" qui appuyerait sur des lettres au lieu des chiffres...
    Si quelqu'un a une idée...

    Merci d'avance!

    pour ne pas faire de double post, je reviens vers vous, avec une solution, adaptée mais qui ne fonctionne pas aussi bien que je le pensais.

    Donc voila quand, l'utilisateur rentre une lettre le message s'affiche mais voila: il s'affiche sans s'arreter... en boucle... (mon problème vient certainement de "do while" mais je ne vois pas ou...)

  13. #13
    Membre éprouvé
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Bonjour,

    pour le problème de la boucle infinie, tu peux aller consulter ce lien
    http://xrenault.developpez.com/tutoriels/c/scanf/#L4.2
    à la partie Utilisation de scanf dans une boucle.

  14. #14
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut
    Merci! Donc j'ai bien réparé cette erreur, cela fonctionne désormais très bien... Mais c'est bien connu souvent en programmation, une erreur ne vient jamais toute seule!

    J'ai exactement le même problème dans un switch... je demande a l'utilisateur de rentrer son choix (entre 1 et 3) toujours que des nombres et la, même avec le "default" , la fonction bug et se met a défiler en boucle... Dans ce cas la, je ne vois pas pourquoi il faudrait blinder encore le code...


    C'est normalement mon dernier essai de correction au niveau de mon code...
    Par la suite, je commencerai un tableau graphique (le centre mère du puissance 4 pour moi...) et je reste en c. Je pense que je vais utiliser une librairie que j'ai eu auparavant grace à ma fac, mais ne connaissez vous pas, d'autres astuces?

    J'aimerai autre chose que des "-" et des "|" pour faire la grille de mon puissance 4! c'est un peu glauque...

    ps:En regardant sur d'autres puissance4 qui ont été faits, j'ai trouvé ceci:
    "fflush(stdin);" Quelqu'un sait-il ce que c'est?

  15. #15
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    ps:En regardant sur d'autres puissance4 qui ont été faits, j'ai trouvé ceci:
    "fflush(stdin);" Quelqu'un sait-il ce que c'est?
    C'est une erreur : fflush() qui est utilisé pour vider un tampon ne doit l'être qu'avec pour des flux de sortie (comme stdout) et non pas pour des flux d'entrée (comme stdin). Pour ces derniers, le comportement de fflush() dépend de l'implémentation.

    Si tu es gêné par ce qui peut rester dans le buffer d'entrée, il vaut mieux le vider après chaque utilisation.
    Par exemple, si tu veux lire un nombre en te garantissant ensuite contre ce qui reste dans le buffer d'entrée, tu peux le vider systématiquement de la façon suivante (en reprenant pour exemple le code précédent) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      do
      {
          printf("\tA vous de rentrez une valeur comprise entre 1 et 7\n");
          scanf("%d",&h);
          scanf("%*[^\n]%*c"); // vider le buffer
      }while(jouable(h)!=1);

  16. #16
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut
    Très bien je comprend mieux du coup! Merci!

  17. #17
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Je pense qu'il serait utile que tu te repenches sur un cours de C : tu as du code dans des fichiers d'en-tête, tu utilises scanf pour lire les entrées du clavier, ...

    Des cours de C : http://c.developpez.com

    Pour les entrées : http://emmanuel-delahaye.developpez....e=Page6#LXXXII
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  18. #18
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Bonjour,

    Je pense qu'il serait utile que tu te repenches sur un cours de C : tu as du code dans des fichiers d'en-tête, tu utilises scanf pour lire les entrées du clavier, ...

    Des cours de C : http://c.developpez.com

    Pour les entrées : http://emmanuel-delahaye.developpez....e=Page6#LXXXII
    C'est sur que j'ai quelques petits soucis, quelques fois, malheureusement, c'est une sorte de projet ou l'on doit utiliser nos connaissances mais aussi en rechercher d'autres que l'on pas encore appris... Pour l'instant, pour vous donner une idée, nous en sommes qu'aux tableaux, on commence tout juste... alors que je suis sur que j'en aurais vivement besoin, donc pas le choix, il faut apprendre sur le tas, et comprendre au maximum ce qui est proposé ici, corrigé ou encore proposé et je vous en remercie. Mais j'essaye de consulter le plus de sources possibles pour apprendre le plus possibles...

    Merci à vous.

    En regardant d'autres codes, je comptais utilisé le même procédé que celui-ci seulement je ne comprends pas certaines utilisations:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Code ancien plus valide
    Cette fonction sert à reconnaitre quand des pions sont alignés au bout de 4 (partie gagné).
    Je comprend vertical, horizontal, je pense que les "c" sont pour les "colonnes" et les "l"sont les "lignes", d'ou les c++ et les l++.

    Mais alors la déclaration du "int n" je ne vois pas...
    Serai-ce pour les diagonales?

    Merci d'avance

  19. #19
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Ce code compte (n est le compteur) le nombre de cases identiques consécutives à une case donnée (c,l) (non égale à ' ') dans la direction spécifiée par vertical et horizontal.
    Il a été visiblement pondu sans réfléchir par utilisation d'un code motif modifié pour chaque cas spécifique.
    Si on regarde un peu, on voit que les indices du tableau varient selon la valeur de vertical et d'horizontal
    Le code se résume donc à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int adjacent(int c, int l,int vertical, int horizontal)
    {
       int n=0;
       if(cage[l][c] !=' ' && (vertical != 0 || horizontal != 0))
          while(cage[l][c]==cage[l+vertical][c+horizontal])
          {
             n++;
             c += horizontal;
             l += vertical
          }
       return n;
    }
    Quant au code de gagnant(), il regarde si, pour une cellule donnée, la nombre de cellules qui lui sont identiques, situées avant et après elle dans une direction donnée est supérieure ou égale à 3. Avec la cellule testée,cela ferait donc 4 cellules ou plus alignées dans une direction donnée. Si pour une direction, cette condition est satisfaite, alors gagnant renvoie 1 et sinon 0.

  20. #20
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 30
    Par défaut A nouveaux des problèmes...
    D'accord merci diogène du coup, je comprend mieux, et ton code est beaucoup plus simple. Si cela ne te dérange pas, je vais me l'approprier et le rentrer dans mon code. Cependant, autant sur ce code que l'autre un problème se pose, à vrai dire j'ai plusieurs problèmes aux quels je ne trouve aucune solution:

    1) Lorsque que l'on fait un partie, le programme compte le nombre de coups de chaque utilisateur. En une partie imaginons l'utilisateur gagne en 5 coups, le programme affiche correctement, "Blabla gagne en 5 coups".
    L'utilisateur peut alors redémarrer une partie, neuve. La grille se vide, et cette fois-ci le joueur regagne en 5 coups. Le programme affiche "blabla gagne en 10 coups". Je pense qu'il y a un problème de mémoire cache a vidé, j'ai pensé au "system("clear") mais apparemment, ce n'est pas pour cela... De plus vous remarquerez que le nombre de coups total est de 11, le joueur ne peut gagner en 5.5 coups...Mais je n'ai trouvé que cette solution pour l'instant...

    Code ou le compteur compte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
         #include <stdio.h>
         #include <stdlib.h>
         #include "incage.h"
         #include "possible.h"
         #include "placerpion.h"
         #include "dessincage.h"
         #include "caseutilise.h"
         #include "adjacent.h"
         #include "gagnant.h"
     
     
    int jeu ()
         {
     
     
         int a,b,joueur=0,col,li;
         int m=0,compt1=0;
         const N=50;
         char nom1[N],nom2[N],tryagain;
         printf("Veuillez entrer le nom du premier joueur:\n");
         scanf("%s",&nom1[N]);
         printf("Veuillez entrer le nom du deuxieme joueur:\n");
         scanf("%s",&nom2[N]);
         dessincage();
         do
         {
         for (a=0;a<6;a++)
         {
         for (b=0;b<7;b++)
         {
         cage[a][b]=' ';
         }
         }
     
         for(b=0;b<7;b++)
         {
         remp[b]=0;
         }
         do
         {
         if (joueur%2==0)
         {
         printf("%s, C'est à vous!\n",&nom1[N]);// on rentre son nom
         col=placerpion();
         li=remp[col];//remplissage définit les lignes de la colonne
         cage[li][col]='O';
         remp[col]=remp[col]+1;
         compt1++;
         dessincage();
         if( gagnant(col,li)==1)// si la partie est gagnée
         {
         printf("%s gagne en %d coup\n",&nom1[N],compt1/2+1);
         }
         }
     
         if(joueur%2!=0)
         {
         printf("%s, a vous.\n",&nom2[N]);
         col=placerpion();
         li=remp[col];
         cage[li][col]='X';
         remp[col]=remp[col]+1;
         compt1++;
         dessincage();
         if( gagnant(col,li)==1)
         {
         printf("%s gagne en %d coup\n",&nom2[N],compt1/2);
         }
     
         }
     
         joueur=joueur+1;//on incremente le joueur
     
     
         } while(( !caseutilise() && !gagnant(col,li) ) );// répéter tant que c'est pas rempli
     
         do
         {
         printf("\t\tVoulez-vous recommencer une autre partie?");
         scanf("%c",&tryagain);
         }while(tryagain!='o' && tryagain!='n');
     
         printf("\n");
         }while (tryagain=='o');
     
         }
    2) j'ai a nouveau un problème de boucle infinie, pour le menu, si l'utilisateur rentre une lettre le programme défile sans s'arreter, et la solution qui m'avait été donné pour résoudre mon problème précédent ne fonctionne pas pour le menu, malheureusement ...Normalement, cela est censé rentrer dans le "default" du menu...

    Code du menu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    #include <stdio.h>
    #include <stdlib.h>//utilisation pour unix//
    //#include <unistd.h>//
    #include "menu.h"// Menu au début du pgrm pour le choix, que pour le fun...//
    #include "jeu.c"//main du jeu//
    #include "Regles.h"// fichier regle.h contenant le texte regles a afficher//
     
     
     
     int main(){
        int choix,fin=1;
        printf("\n\n\n\n\t\t\t\tPuissance 4\n");
        sleep(3);
          menu();  
            while(fin){
            printf("\n\t\t\t   ************************\n\t\t\t   *Quel est votre choix ?* \n\t\t\t   ************************\n");
            scanf("%d",&choix);
     
        switch(choix){      
        case 1: {
           jeu(); 
        //Permet de jouer en compagnie d'un joueur plus précisemment contre celui-ci//
             }break;
        case 2: {
             printf("\t\t\t\tVoici les R\x8Agles :\n");
                  Regle();
     
             // Regle du jeu//
             }break;
     
         case 3: {    //Permet de quitter le jeu //
             printf("\n\t\t\tMerci d'avoir particip\x82\n");
             sleep(1);    //Permet de mettre un délai avant d'éxécuter les instructions//
             printf("veuillez patienter 5 secondes avant la fermeture ...\n");
             printf("5...\n");
             sleep(1);
             printf("4...\n");
             sleep(1);
             printf("3...\n");
             sleep(1);
             printf("2...\n");
             sleep(1);
             printf("1...\n");
             sleep(1);
             exit(0);break;}
         default: printf("ce choix n'existe pas! Veuillez entrer un chiffre entre 1 et 3,Merci.\n");}
    }
    return 0;
    }
    3) Je suis entrain de recréer une fonction qui au lieu d'afficher un puissance 4, laisse le choix à l'utilisateur de rentrer une grille Nxn avec N et n choisi par lui même. Le problème c'est que à chaque tour, le programme redemande de rentrer une valeur pour les N et n... Pour l'instant on peut dire que j'arrive plus ou moins, mais alors parfois cela ramène plein de petits problèmes annexes...

    4)Problèmes facultatifs qui se règlent à la fin (mais toutes les idées sont bonne à prendre):

    -Le tableau est compréssé sous le terminal et dès que l'on rentre un pion dans une colonne, il se met correctement... ( Action du saint Esprit?)
    -Les accents sont des caractères étranger en c...
    -Parfois j'ai l'impression que le joueur gagne prématurément... Le tableau est presque rempli, alors que le joueur met un pion quelque part ou le jeu ne peut pas être gagner, et le jeu se termine en disant que le joueur a gagné... ( bon je reconnais que c'est utile pour le loto mais la...)

    Bref, voila, je pense que quand j'aurai résolu, toutes ces choses, je pense que je pourrais souffler jusqu'a un éventuel Puissance4 2.0 ;D.

    En attendant, encore merci à toute l'aide que vous me fournissez, vous n'avez pas idée comment cela m'aide... et me fais avancer...

    Ps: je supprime les posts hors sujets postés auparavant pour des raisons personelles, je les remettrai prochainement!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [UC] [DC] Problème pour passer de l'un à l'autre
    Par Igou77 dans le forum Cas d'utilisation
    Réponses: 3
    Dernier message: 06/11/2007, 10h41
  2. Problême pour passer une variable dans un SelectCommand
    Par Thetonio007 dans le forum ASP.NET
    Réponses: 12
    Dernier message: 26/06/2007, 14h37
  3. Gtk: problème pour passer une structure en paramètres
    Par C_Chaou dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 19/04/2007, 19h29
  4. [XML] Problème pour passer un paramètre
    Par goddet dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 26/03/2007, 15h16
  5. [JSP] Problème pour passer un array comme paramètre
    Par MxPx_23 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/06/2006, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo