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 :

Aide pour un programme ( vive les tableaux en C..)


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 61
    Points : 24
    Points
    24
    Par défaut Aide pour un programme ( vive les tableaux en C..)
    Bonjour à tous ,

    J'éspere que vous pourrez m'aidez, j'ai fait ce petit programme et il n'est pas tout à fait au point... en effet je voudrai rester sur un même tableau et non en refaire un à chaque fois. Mais je ne sais pas comment faire, si vous pouez m'aider, me mettre sur une piste ce serai gentil. ( c'est une sorte de puissance 4 bizzaroïde lol).

    J'éspère que je me suis bien exprimé sur le probléme que je rencontre.

    Cordialement, le noob codeur.

    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
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
     
    //ajout en global et en commentaire l'affichage dans cube
     
    void aff(int a[10][10]){
      int i,j=0;
      for(i=0;i<=9;i++){
        for(j=0;j<=9;j++)
          printf("%c",a[i][j]);
        printf ("\n");
      }
      printf ("\n");
    }
     
    void cube(){
     
      int i,j,jp,a[10][10];
      i=0;
      j=0;
       for(i=0;i<=9;i++){
        for(j=0;j<=9;j++){
          a[i][j]='.';
        }
        }
      srand ((unsigned) time (NULL)); 
      aff(a);
      // while(1){
        i=-1;
        j=5;
        while( (i<=8) && (a[i+1][j]=='.') ){
          i++;
          j+=(rand()%3)-1;
          if(a[i][j]=='#')
    	break;
          else{
    	a[i][j]='#';
    	//system ("clear");  
    	aff(a);
    	if(i!=9)
    	  a[i][j]='.';
          }
        }
        // }
        i=-1;
        j=5;
     
        while(i<=8 && a[i+1][j]!='#'){
          jp=i;
          i++;
          srand (time(NULL));
          j=2;
          if(a[i][j]=='#'){
    	i = jp ;
    	break;
          }
          a[i][j]='#';
          //system ("clear");  
          aff(a);
          if(i!=9)
    	a[i][j]='.';
        }//cube();
    }
     
    int main(){
      cube();
      system ("pause");
      return 0;
    }

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par moule
    en effet je voudrai rester sur un même tableau et non en refaire un à chaque fois.
    C'est pas hyper clair, mais on dirait que tu veux faire de l'affichage plein ecran.

    Rien de portable. Il faut des fonctions système comme, par exemple, celles de conio (DOS/Windows) ou [n]curses (Unixoides).

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 61
    Points : 24
    Points
    24
    Par défaut
    Je joint ce que je doit obtenir au final, ce sera surement plus compréhensible.cubes.rar

    Cordialement.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par moule
    Je joint ce que je doit obtenir au final, ce sera surement plus compréhensible.cubes.rar
    Argh, un exécutable, j'en veux pas.

  5. #5
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Argh, un exécutable, j'en veux pas.
    +1 t'as pas une miniature de console plutot que l'on voit ça

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Points : 18
    Points
    18
    Par défaut
    Une miniature, ça va etre dur, c'est animé comme programme, il y a un tableau où toutes les cases contiennent des ".", et il y a un "a" qui part de la première ligne du tableau et qui descend en passant d'une case aléatoire de la ligne 1 à une case -1 ou case +1 à la ligne d'en dessous, lorsque le "a" arrive à la dernière ligne, il devient un # et reste statique. Je suppose qu'à la fin toutes les cases du tableau doivent contenir des #, m'enfin.

  7. #7
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Preez
    Une miniature, ça va etre dur, c'est animé comme programme, il y a un tableau où toutes les cases contiennent des ".", et il y a un "a" qui part de la première ligne du tableau et qui descend en passant d'une case aléatoire de la ligne 1 à une case -1 ou case +1 à la ligne d'en dessous, lorsque le "a" arrive à la dernière ligne, il devient un # et reste statique. Je suppose qu'à la fin toutes les cases du tableau doivent contenir des #, m'enfin.
    En clair si j'ai bien compris il veut un tableau de points comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ..........
    ..........
    ..........
    ..........
    ..........
    Ou il pourrait placer des # qui serait comme des jetons d'un puissance 4 c'est ça? Mais quelle utilité de jouer au puissance 4 sans adversaire pour contrecarrer tes plans ?

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 61
    Points : 24
    Points
    24
    Par défaut
    Exactement , le problème c'est qu'a chaque fois je change de tableau, et je voudrais rester dans le même, comme le montre le .exe.

    Aprés quelque recherche j'ai penser à utiliser une fonction du type system("cls"); pour rester dans le même, vous en pensez quoi?

    Cordialement.

  9. #9
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par moule
    Exactement , le problème c'est qu'a chaque fois je change de tableau, et je voudrais rester dans le même, comme le montre le .exe.

    Aprés quelque recherche j'ai penser à utiliser une fonction du type system("cls"); pour rester dans le même, vous en pensez quoi?

    Cordialement.
    Pourquoi ne pas demander directement comment effacer la console ? Parce qu'on dirait que c'est cela que tu veux faire ...

    Pour info, en quelques heures, tu pourrais faire une fenêtre graphique utilisant SDL pour faire ton puissance 4 bizarroïde...

    Jc

  10. #10
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par fearyourself
    Pour info, en quelques heures, tu pourrais faire une fenêtre graphique utilisant SDL pour faire ton puissance 4 bizarroïde...

    Jc
    Et pour faire le joueur en face tu utiliserais quoi? Pour faire "jouer" l'ordinateur comme on dit...
    /me n'a jamais programmé de jeux...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 52
    Points : 18
    Points
    18
    Par défaut
    Cn'est pas un puissance 4, et il n'y pas de joueurs. La seule chose qu'il veut, c'est pouvoir garder son tableau à chaque fois en ne modifiant que son "a" (le descendre d'une ligne) ou le change en dièse une fois arrivé en bas, et ne pas changer de tableau.
    Je crois que fearyourself a raison, il suffit d'effacer la console et de réafficher le tableau avec le 'a' descendu d'une ligne, ainsi de suite...

  12. #12
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Gnux
    Et pour faire le joueur en face tu utiliserais quoi? Pour faire "jouer" l'ordinateur comme on dit...
    Ben on programme une petite intelligence artificielle
    /me n'a jamais programmé de jeux...
    Faut commencer!

    Je crois que fearyourself a raison, il suffit d'effacer la console et de réafficher le tableau avec le 'a' descendu d'une ligne, ainsi de suite...
    Le problème c'est que ce n'est pas toujours possible et généralement pas très portable.

    Jc

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 61
    Points : 24
    Points
    24
    Par défaut
    J'ai bien avancer , en utilisant cls ca marche mais c'est un peu trop rapide.

    Ps : ce n'est pas un jeu , c'est juste un exo pour apprendre à utiliser des tableaux. ( tout en console pas de librairie graphique).

    Cordialement.

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 61
    Points : 24
    Points
    24
    Par défaut
    Re bonjour,

    J'ai bien avancé mais il y a quelque bug... et je suis totalement dans le flou.
    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
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>
     
    void aff(int a[15][20]){
      int i,j=0;
      for(i=0;i<=14;i++){
        for(j=0;j<=19;j++)
          printf("%c",a[i][j]);
        printf ("\n");
      }
      printf ("\n");
      sleep(50);
      system("cls");
    }
     
    void cube(int a[15][20]){
      int i,j;
      int flag=0;
        i=-1;
        j=10;
        while( (i<=14) && (a[i+1][j]=='.') ){
          i++;
          j+=(rand()%3)-1;
          if(a[i+1][j]=='#'){
    	a[i][j]='#';	
    	aff(a);
    	if(i!=14)
    	  a[i-1][j]='.';
          }
          else{
    	a[i][j]='#';  
    	aff(a);
    	if(i!=14)
    	  a[i][j]='.';
          }
        }
        for(j=0;j<=20;j++)
        {
        if (a[1][j]=='#'){                        
        flag=1;                                  
        break;
        }
    }
        if(flag==0){
        cube(a);
        system("cls");
        }
        aff(a);
     
    }
     
    int main(){
      int t[15][20],i,j;
        for(i=0;i<=14;i++){
          for(j=0;j<=19;j++){
    	t[i][j]='.';
        }
        }
      cube(t);
      system("pause");
      return 0;
    }
    Il marche pratiquement cependant, desfois il tue un cube ou le cube qui arrive disparaît, là je suis HS sur ce coup là.
    Si on peu me mettre sur une piste.

    Cordialement.

Discussions similaires

  1. aide pour un exercice sur les tableaux
    Par mimiif dans le forum Caml
    Réponses: 9
    Dernier message: 30/05/2008, 15h49
  2. [Tableaux] Aide pour un algorithme sur les tableaux
    Par sara21 dans le forum Langage
    Réponses: 7
    Dernier message: 20/05/2007, 10h28
  3. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  4. [MySQL] aide pour MyAdmin-relation entre les tables
    Par bucarest dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/04/2006, 13h35
  5. aide pour un programme a compiler
    Par letombeur dans le forum C++
    Réponses: 8
    Dernier message: 11/01/2006, 21h53

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