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 :

Langage C - automate cellulaire


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Par défaut Langage C - automate cellulaire
    Bonjour à tous je cherche désespérément à améliorer mon jeu de la vie, j'aimerais qu'il vérifie les cases de la colonne 0 lorsqu'il sort du tableau, je sais que c'est une histoire de modulo % mais je ne trouve pas voici mon code :


    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
    void generer_etat(int c[NB_LIGNES][NB_COLONNES], int s[NB_LIGNES][NB_COLONNES]) {
        int i, j, k;
        for (i = 0; i < NB_LIGNES; i++) {
            for (j = 0; j < NB_COLONNES; j++) {
     
                k = 0;
                if (i > 0 && j > 0)                           if (c[i - 1][j - 1] == 1) k++;
                if (i > 0)                                    if (c[i - 1][j]     == 1) k++;
                if (i > 0 && j < NB_COLONNES - 1)             if (c[i - 1][j + 1] == 1) k++;
                if (j < NB_COLONNES - 1)                      if (c[i][j + 1]     == 1) k++;
                if (i < NB_LIGNES - 1 && j < NB_COLONNES - 1) if (c[i + 1][j + 1] == 1) k++;
                if (i < NB_LIGNES - 1)                        if (c[i + 1][j]     == 1) k++;
                if (i < NB_LIGNES - 1 && j > 0)               if (c[i + 1][j - 1] == 1) k++;
                if (j > 0)                                    if (c[i][j - 1]     == 1) k++;
     
                if (c[i][j] == 0) {
                    if (k == 3) s[i][j] = 1;
                    else s[i][j] = 0;
                } else {
                    if (k == 2 || k == 3) s[i][j] = 1;
                    else s[i][j] = 0;
                }
            }
        }
    }
    Merci à tous

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Je ne suis pas certain d'avoir bien compris cette histoire de 0. Moi je comprends que tu souhaiterais avoir un espace circulaire. C'est à dire que si tes cases vont de 0 à 8 alors celle située juste après la case [8] est alors la case [0].

    Si c'est ça alors c'est effectivement une histoire de modulo. Si t'es sur une case c[x] alors celle située juste à droite sera la case c[(x+1) % N] et celle située juste à gauche sera la case c[(x + N - 1) % N] (N étant le nombre de cases)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Par défaut
    Merci c'est exactement ça !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/02/2010, 23h03
  2. [Turbo Pascal] Jeu de la vie (automate cellulaire)
    Par whatelse dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 25/10/2009, 01h52
  3. les automates cellulaire pour traitement d'image
    Par hanou88 dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 27/04/2009, 13h30
  4. Les automates cellulaires
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 10/08/2006, 17h35

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