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

Shell et commandes GNU Discussion :

Jeu de la vie en bash


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 9
    Par défaut Jeu de la vie en bash
    bonjour à tous !

    je me retourne vers vous car j'ai un problème dans mon script. actuellement en BTS SIO et debutant en bash mon tuteur pour m'apprendre à script me fait faire un jeu de la vie.

    ou j'en suis actuellement :
    - jarrive à afficher mes tableau
    - mes déclaration de variables sont faites
    - je peux entrer les coordonnées des cellules ou je veux
    - les règles pour les calculs sont fait

    mon probleme :

    - lorsque je lance mon script j'ai bien l'affichage de mon tableau, la demande de coordonnée est valide et s'affiche bien dans mon tableau sauf que une fois que je lance le script aucun changement ce fais ...

    est-ce que parmi vous quelqu'un pourrait m'aider ?



    masterpeon vous remercie d'avance pour l'aide et l'avancement apporté à ce script

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Déjà, as-tu lu cette discussion (clic) pour avoir des idées ?

    sauf que une fois que je lance le script aucun changement ce fais

    Un petit bout de code à montrer ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 9
    Par défaut game of life in bash
    oui oui c'est un ami a moi, mais meme en regardant en detail je ne trouve point de solution ....


    tenez c'est noel je balance le script

    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    #!/bin/bash
    #//déclaration des cellules
     
    #//déclarer le tableau 
     
    echo -e "\033[96mgame of life"
     
    declare -A tab
    declare -A tabfutur
     
     
    echo "choisir la cellule"
    read CELL
     
    echo "combien de ligne" 
    read line
     
    echo "combien de colonne"
    read colonne
     
    ######## FONCTION D'INITIALISATION TABLEAU #######
     
    fonction_init()
    {
     
            for((x=1;x<=line;x++)); do
                    for((y=1;y<=colonne;y++)); do
                            tab[$x,$y]="."
                    done
            done
    }
     
    tabfutur_function()
    {
            for ((x=1;x<=line;x++)); do
                    for ((y=1;y<=colonne;y++)); do
                            tabfutur[$x,$y]=" ";
                    done
            done
    }
     
     
    ######## FONCTION D'AFFICHER TABLEAU #########
     
    fonction_afficher()
    {
     
    clear
    echo ""
    echo -e "\033[96mgame of life"
     
    f1="%$((${#line}+1))s"
    f2="%3s"
     
    for((x=1;x<=line;x++)); do
        printf "$f2"
    done
            echo " "
     
            for((y=1;y<=colonne;y++)); do
                    printf "$f1"
     
                    for((x=1;x<=line;x++)); do
                    printf "$f2" ${tab[$x,$y]}
                    done
            echo " "
            done
    }
     
     
    ############### DEMANDE COORDONNEE #############
     
    fonction_demande()
    {
    fonction_init
    echo ""
    echo ""
     
    while :
    do
     
            echo -n " Entre les coordonnées ex: [1,1] : "
            echo ">"
            read -r coord
            if [ "$coord" == "n" ]; then
                fonction_calcul
                fonction_afficher
            else
                    if [[ "$coord" =~ ^[0-9]+,[0-9]+$ ]] ; then  x=${coord%, *} ;  y=${coord#*, } ;
                            tab[$coord]="${CELL}"
                            fonction_afficher
                            echo ""
                    else
                            fonction_demande
     
                    fi
            fi
    done
    }
    fonction_afficher
     
    ############## START ########################
     
    start_function()
     
    {
    fonciton_calcul
    }
     
    ############ CALCUL CELLULE ###############
     
    fonction_calcul()
     
    {
     
    while true; do
     
     
            for((x=1;x<=line;x++)); do
                    for((y=1;y<=colonne;y++)); do
     
     
                    Compt=0
     
                    # Voisine (x-1,y-1)
                    [[ "${tab[$(($x-1)),$(($y-1))]}" == $CELL ]] && ((Compt++))
     
                    # Voisine (x,y-1)
                    [[ "${tab[$(($x)),$(($y-1))]}" == $CELL ]] && ((Compt++))
     
                    # Voisine (x+1,y-1)
                    [[ "${tab[$(($x+1)),$(($y-1))]}" == $CELL ]] && ((Compt++))
     
                    # Voisine (x-1,y)
                    [[ "${tab[$(($x-1)),$(($y))]}" == $CELL ]] && ((Compt++))
     
                    # Voisine (x+1,y)
                    [[ "${tab[$(($x+1)),$(($y))]}" == $CELL ]] && ((Compt++))
     
                    # Voisine (x-1,y+1)
                    [[ "${tab[$(($x-1)),$(($y+1))]}" == $CELL ]] && ((Compt++))
     
                    # Voisine (x, y+1)
                    [[ "${tab[$(($x));$(($y+1))]}" == $CELL ]] && ((Compt++))
     
                    # Voisine (x+1,y+1)
                    [[ "${tab[$(($x+1)),$(($y+1))]}" == $CELL ]] && ((Compt++))
     
                # Si vivante et deux voisines, elle survit
                [[ ${tab[$(($x)),$(($y))]} == $CELL ]] && [[ ${Compt} -eq 2 ]] && tab[{x},${y}]=$CELL
     
                # Si 3 voisines, soit survie, soit naissance 
                [[ ${Compt} -eq 3 ]] && tab[${x},${y}]=$CELL
     
                # Si entre 4 et 8, mort par surpopulation
                [[ ${Compt} -ge 4 ]] && [[ ${Compt} -le 8 ]] && tab[${x},${y}]="."
     
       done
            done
     
                     for((x=1;x<=line;x++)); do
                            for((y=1;y<=colonne;y++)); do
                                    tab[x,y]=tabfutur[x,y]
                                    fonction_afficher
                            done
                     done
    done
    }
     
    ############################# EXIT ################################
     
    fonction_exit()
    {
    exit_fonction
    }
     
     
     
    #####################################################################
     
    fonction_init
    fonction_afficher
    fonction_demande

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    fonciton_calcul ?

    préfixer le nom des fonctions par fonction n'est pas nécessaire.
    tu ne préfixes par tes variables variable !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 9
    Par défaut jeu de la vie
    or ce probleme ici corrigé, mon probleme est que rien ne bouge ...

    c'est à dire, que rien ne bouge dans le tableau tout reste en place

  6. #6
    Membre averti
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Par défaut
    Si je ne dis pas de betise, tu as un fonction_afficher qui se balade tout seul ligne 100 et les fonctions fonction_exit et start_function ne sont utilisees nulle part.

    De plus, je connais pas ce jeu mais j ai copie ton code et ... ca fait des trucs. Je ne sais pas si ca fait ce que tu attends, mais il se passe qq chose. Tu entends quoi par 'rien ne bouge'?

Discussions similaires

  1. Jeu de la vie en bash
    Par Ezzmazz dans le forum Shell et commandes GNU
    Réponses: 34
    Dernier message: 03/02/2019, 11h10
  2. algorithme d'évolution du "jeu de la vie" en caml
    Par nono88 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 13/12/2006, 00h56
  3. Conway's life (jeu de la vie) pour images
    Par O( N ) dans le forum C
    Réponses: 1
    Dernier message: 26/09/2006, 02h13
  4. [Conception] Jeu de la vie
    Par deuscapser dans le forum Général Java
    Réponses: 16
    Dernier message: 09/03/2006, 12h47
  5. [VB] projet à réaliser: Jeu de la vie
    Par mauriiice dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/12/2005, 20h06

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