N-PN White-Hat Project
Morpion en bash - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Informatique (https://dev.n-pn.fr/forum/forumdisplay.php?fid=12)
+--- Forum : GNU/Linux | Unix (https://dev.n-pn.fr/forum/forumdisplay.php?fid=31)
+--- Sujet : Morpion en bash (/showthread.php?tid=2475)



Morpion en bash - notfound - 05-12-2012

Bonsoir,

Cet après midi je me faisais drôlement chié en cours, mais par chance j'avais mon PC. Donc pour m'occuper, je me suis dis que j'allais faire un morpion en bash ( ok, j'aurais pu trouvé mieux mais voila ... bref)

Pour l'instant le code n'est pas fini mais voici un avant-goût :

Clique donc la jeune voyou

Cordialement,
Notfound!


RE: Morpion en bash - InstinctHack - 06-12-2012

c'est sympa comme truc Big Grin
mais pour faire un mode IA, en bash, j'ai peur pour toi :p


RE: Morpion en bash - notfound - 06-12-2012

Merci khaled ! Mais comme tu dis :

Citation :mais pour faire un mode IA, en bash, j'ai peur pour toi


Moi aussi :p


RE: Morpion en bash - InstinctHack - 06-12-2012

Je te conseille d'apprendre le python, c'est génial pour faire ce genre de chose, bash est... universel (à GNU/Linux et Mac j'entend..) et c'est sûrement son seul avantage :')


RE: Morpion en bash - xtiz0 - 05-12-2013

Pas mal Wink


RE: Morpion en bash - Loup - 05-12-2013

Premier message,GG mec.
prochain record à battre les gars:

1 an jour pour jour (enfin presque)


RE: Morpion en bash - Hypnoze57 - 05-12-2013

Je m'ennuyais alors je l'ai fais en C x')

Code :
#include <stdio.h>
#include <stdlib.h>

/*
/!\ Tableau /!\
    |   |
  0 | 1 | 2
----+---+----
  3 | 4 | 5
----+---+----
  6 | 7 | 8
    |   |
*/
int verifWin(char tab[]){
    // Ligne haut 0 1 2
    if((tab[0] == 'X' && tab[1] == 'X' && tab[2] == 'X') || (tab[0] == 'O' && tab[1] == 'O' && tab[2] == 'O')){
        return 1;
    }
    // Diagonal gauche droite 0 4 8
    else if((tab[0] == 'X' && tab[4] == 'X' && tab[8] == 'X') || (tab[0] == 'O' && tab[4] == 'O' && tab[8] == 'O')){
        return 1;
    }
    // Diagonal droite gauche 2 4 6
    else if((tab[2] == 'X' &&  tab[4] == 'X' && tab[6] == 'X') || (tab[2] == 'O' &&  tab[4] == 'O' && tab[6] == 'O')){
        return 1;
    }
    // Ligne milieu 3 4 5
    else if((tab[3] == 'X' && tab[4] == 'X' && tab[5] == 'X') || (tab[3] == 'O' && tab[4] == 'O' && tab[5] == 'O')){
        return 1;
    }
    // Ligne bas 6 7 8
    else if((tab[6] == 'X' && tab[7] == 'X' && tab[8] == 'X') || (tab[6] == 'O' && tab[7] == 'O' && tab[8] == 'O')){
        return 1;
    }
    // Colonne gauche 0 3 6
    else if((tab[0] == 'X' && tab[3] == 'X' && tab[6] == 'X') || (tab[0] == 'O' && tab[3] == 'O' && tab[6] == 'O')){
        return 1;
    }
    // Colonne milieu 1 4 7
    else if((tab[1] == 'X' && tab[4] == 'X' && tab[7] == 'X') || (tab[1] == 'O' && tab[4] == 'O' && tab[7] == 'O')){
        return 1;
    }
    // Colonne gauche 2 5 8
    else if((tab[2] == 'X' && tab[5] == 'X' && tab[8] == 'X') || (tab[2] == 'O' && tab[5] == 'O' && tab[8] == 'O')){
        return 1;
    } else if(tab[0] != '1' && tab[1] != '2' && tab[2] != '3' && tab[3] != '4' && tab[4] != '5' && tab[5] != '6' && tab[6] != '7' && tab[7] != '8' && tab[8] != '9'){
        return 2;
    } else {
        return 0;
    }
}

int verifErase(char tab[], int pos){
    if(tab[pos-1] == 'X' || tab[pos-1] == 'O'){
        // Retourne faux.
        return 0;
    } else {
        // Retourne vrai.
        return 1;
    }
}
void demander(char tab[], int joueur){
    int pos, erreur, win;
    win = verifWin(tab);
    if(win == 1){
        if(joueur == 1){
            joueur = 2;
        } else {
            joueur = 1;
        }
        printf("Le joueur %d a gagner !", joueur);
        system("pause>nul");
        exit(0);
    } else if(win == 2){
        printf("Match nul !\n");
        system("pause>nul");
        exit(0);
    }
    printf("Vous etes le joueur %d\n", joueur);
    printf("Position de votre coup :\n>");
    scanf("%d", &pos);
    scanf("*[^\n]");
    fflush(stdin);
    erreur = verifErase(tab, pos);
    if(erreur == 0) {
        system("cls");
        printf("Case deja utilise. \n");
        croix(tab, joueur);
    }
    if(joueur == 1) {
        tab[pos-1] = 'X';
        joueur = 2;
    } else if(joueur == 2){
        tab[pos-1] = 'O';
        joueur = 1;
    }
    system("cls");
    croix(tab, joueur);
}

void croix(char tab[], int joueur){
    printf("    |   |\n");
    printf("  %c | %c | %c\n", tab[0], tab[1], tab[2]);
    printf("----+---+----\n");
    printf("  %c | %c | %c\n", tab[3], tab[4], tab[5]);
    printf("----+---+----\n");
    printf("  %c | %c | %c\n", tab[6], tab[7], tab[8]);
    printf("    |   |\n");
    demander(tab, joueur);
}

int main(int argc, char *argv[])
{
    char tab[9] = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
    int joueur = 1;
    croix(tab, joueur);
    return 0;
}



RE: Morpion en bash - gruik - 05-12-2013

merci à toi ça fera au moins un post utile/technique sur ce déterrage de topic Wink


RE: Morpion en bash - notfound - 05-12-2013

J'avoue j'aurai pu partager le code, mais je le retrouve plus Big Grin

(encore un post inutile à la liste)