deumdeum a écrit 6 commentaires

  • [^] # Re: Le script, il sent fort de la bouche ?

    Posté par  . En réponse au message Multi utilisateurs d'un script. Évalué à 1.

    Pour ceux que ca interresse
    Le code entier qui fonctionne (presqe)
    il faut lancer le script dans 2 sessions pour qu'il fonctionne

    #!/bin/bash
    # Othello 2005
    #
    # ordre du script:
    #
    # attente
    # suite
    # tir
    # tableau
    # joue
    # convertisseur
    # convere
    # suite
    # .
    # .
    # .
    #
    #
    #

    echo "**************************************"
    echo "** **"
    echo "** O T H E L L O **"
    echo "** **"
    echo "**************************************"
    echo ""
    echo ""
    echo "Appuyez sur pour continuer"
    read startttt
    echo ""
    echo ""
    # placement de "." dans les variables du "tableau"
    echo "." >A1;echo "." >A2;echo "." >A3;echo "." >A4;echo "." >A5;echo "." >A6;echo "." >A7;echo "." >A8;echo "." >B1;echo "." >B2;echo "." >B3;echo "." >B4;echo "." >B5;echo "." >B6;echo "." >B7;echo "." >B8;echo "." >C1;echo "." >C2;echo "." >C3;echo "." >C4;echo "." >C5;echo "." >C6;echo "." >C7;echo "." >C8;echo "." >D1;echo "." >D2;echo "." >D3;echo "." >D4;echo "." >D5;echo "." >D6;echo "." >D7;echo "." >D8;echo "." >E1;echo "." >E2;echo "." >E3;echo "." >E4;echo "." >E5;echo "." >E6;echo "." >E7;echo "." >E8;echo "." >F1;echo "." >F2;echo "." >F3;echo "." >F4;echo "." >F5;echo "." >F6;echo "." >F7;echo "." >F8;echo "." >G1;echo "." >G2;echo "." >G3;echo "." >G4;echo "." >G5;echo "." >G6;echo "." >G7;echo "." >G8;echo "." >H1;echo "." >H2;echo "." >H3;echo "." >H4;echo "." >H5;echo "." >H6;echo "." >H7;echo "." >H8


    tableau() # fonction qui trace le tableau
    { # on lit dans chaque fichier Xn sa valeur pour la placer dans le tableau
    read A1 <A1;read B1 <B1;read C1 <C1;read D1 <D1;read E1 <E1;read F1 <F1;read G1 <G1;read H1 <H1;read A2 <A2;read B2 <B2;read C2 <C2;read D2 <D2;read E2 <E2;read F2 <F2;read G2 <G2;read H2 <H2;read A3 <A3;read B3 <B3;read C3 <C3;read D3 <D3;read E3 <E3;read F3 <F3;read G3 <G3;read H3 <H3;read A4 <A4;read B4 <B4;read C4 <C4;read D4 <D4;read E4 <E4;read F4 <F4;read G4 <G4;read H4 <H4;read A5 <A5;read B5 <B5;read C5 <C5;read D5 <D5;read E5 <E5;read F5 <F5;read G5 <G5;read H5 <H5;read A6 <A6;read B6 <B6;read C6 <C6;read D6 <D6;read E6 <E6;read F6 <F6;read G6 <G6;read H6 <H6;read A7 <A7;read B7 <B7;read C7 <C7;read D7 <D7;read E7 <E7;read F7 <F7;read G7 <G7;read H7 <H7;read A8 <A8;read B8 <B8;read C8 <C8;read D8 <D8;read E8 <E8;read F8 <F8;read G8 <G8;read H8 <H8;

    # tableau a base d echo
    echo "-------------------------------------"
    echo "| | A | B | C | D | E | F | G | H |"
    echo "-------------------------------------"
    echo "| 1 | $A1 | $B1 | $C1 | $D1 | $E1 | $F1 | $G1 | $H1 |"
    echo "-------------------------------------"
    echo "| 2 | $A2 | $B2 | $C2 | $D2 | $E2 | $F2 | $G2 | $H2 |"
    echo "-------------------------------------"
    echo "| 3 | $A3 | $B3 | $C3 | $D3 | $E3 | $F3 | $G3 | $H3 |"
    echo "-------------------------------------"
    echo "| 4 | $A4 | $B4 | $C4 | $D4 | $E4 | $F4 | $G4 | $H4 |"
    echo "-------------------------------------"
    echo "| 5 | $A5 | $B5 | $C5 | $D5 | $E5 | $F5 | $G5 | $H5 |"
    echo "-------------------------------------"
    echo "| 6 | $A6 | $B6 | $C6 | $D6 | $E6 | $F6 | $G6 | $H6 |"
    echo "-------------------------------------"
    echo "| 7 | $A7 | $B7 | $C7 | $D7 | $E7 | $F7 | $G7 | $H7 |"
    echo "-------------------------------------"
    echo "| 8 | $A8 | $B8 | $C8 | $D8 | $E8 | $F8 | $G8 | $H8 |"
    echo "-------------------------------------"

    }
    convertisseur() # fonction qui convertit les Xn en nn, ex: B3 -> 32
    {
    case $shoot in
    A1) shoot=11 ;;
    A2) shoot=21 ;;
    A3) shoot=31 ;;
    A4) shoot=41 ;;
    A5) shoot=51 ;;
    A6) shoot=61 ;;
    A7) shoot=71 ;;
    A8) shoot=81 ;;
    B1) shoot=12 ;;
    B2) shoot=22 ;;
    B3) shoot=32 ;;
    B4) shoot=42 ;;
    B5) shoot=52 ;;
    B6) shoot=62 ;;
    B7) shoot=72 ;;
    B8) shoot=82 ;;
    C1) shoot=13 ;;
    C2) shoot=23 ;;
    C3) shoot=33 ;;
    C4) shoot=43 ;;
    C5) shoot=53 ;;
    C6) shoot=63 ;;
    C7) shoot=73 ;;
    C8) shoot=83 ;;
    D1) shoot=14 ;;
    D2) shoot=24 ;;
    D3) shoot=34 ;;
    D4) shoot=44 ;;
    D5) shoot=54 ;;
    D6) shoot=64 ;;
    D7) shoot=74 ;;
    D8) shoot=84 ;;
    E1) shoot=15 ;;
    E2) shoot=25 ;;
    E3) shoot=35 ;;
    E4) shoot=45 ;;
    E5) shoot=55 ;;
    E6) shoot=65 ;;
    E7) shoot=75 ;;
    E8) shoot=85 ;;
    F1) shoot=16 ;;
    F2) shoot=26 ;;
    F3) shoot=36 ;;
    F4) shoot=46 ;;
    F5) shoot=56 ;;
    F6) shoot=66 ;;
    F7) shoot=76 ;;
    F8) shoot=86 ;;
    G1) shoot=17 ;;
    G2) shoot=27 ;;
    G3) shoot=37 ;;
    G4) shoot=47 ;;
    G5) shoot=57 ;;
    G6) shoot=67 ;;
    G7) shoot=77 ;;
    G8) shoot=87 ;;
    H1) shoot=18 ;;
    H2) shoot=28 ;;
    H3) shoot=38 ;;
    H4) shoot=48 ;;
    H5) shoot=58 ;;
    H6) shoot=68 ;;
    H7) shoot=78 ;;
    H8) shoot=88 ;;
    esac
    }
    converse()
    { # idem fonction précédente à l envers
    case $conv in
    11) conv=A1 ;;
    12) conv=B1 ;;
    13) conv=C1 ;;
    14) conv=D1 ;;
    15) conv=E1 ;;
    16) conv=F1 ;;
    17) conv=G1 ;;
    18) conv=H1 ;;
    21) conv=A2 ;;
    22) conv=B2 ;;
    23) conv=C2 ;;
    24) conv=D2 ;;
    25) conv=E2 ;;
    26) conv=F2 ;;
    27) conv=G2 ;;
    28) conv=H2 ;;
    31) conv=A3 ;;
    32) conv=B3 ;;
    33) conv=C3 ;;
    34) conv=D3 ;;
    35) conv=E3 ;;
    36) conv=F3 ;;
    37) conv=G3 ;;
    38) conv=H3 ;;
    41) conv=A4 ;;
    42) conv=B4 ;;
    43) conv=C4 ;;
    44) conv=D4 ;;
    45) conv=E4 ;;
    46) conv=F4 ;;
    47) conv=G4 ;;
    48) conv=H4 ;;
    51) conv=A5 ;;
    52) conv=B5 ;;
    53) conv=C5 ;;
    54) conv=D5 ;;
    55) conv=E5 ;;
    56) conv=F5 ;;
    57) conv=F5 ;;
    58) conv=G5 ;;
    61) conv=A6 ;;
    62) conv=B6 ;;
    63) conv=C6 ;;
    64) conv=D6 ;;
    65) conv=E6 ;;
    66) conv=F6 ;;
    67) conv=G6 ;;
    68) conv=H6 ;;
    71) conv=A7 ;;
    72) conv=B7 ;;
    73) conv=C7 ;;
    74) conv=D7 ;;
    75) conv=E7 ;;
    76) conv=F7 ;;
    77) conv=G7 ;;
    78) conv=H7 ;;
    81) conv=A8 ;;
    82) conv=B8 ;;
    83) conv=C8 ;;
    84) conv=D8 ;;
    85) conv=E8 ;;
    86) conv=F8 ;;
    87) conv=G8 ;;
    88) conv=H8 ;;
    esac
    }

    joue()
    { # fonction qui vérifie dans les 8 directions et retourne les pions
    read coul < couleur # importe la couleur du joueur
    if [ "$coul" = "n" ]
    then
    aff="x" # assigne l affichage x ou O en fonction de la couleur
    paff="O"
    else
    aff="O"
    paff="x"
    fi
    convertisseur # converti la case choisie en chiffre
    line=`expr $shoot / 10`
    row=`expr $shoot % 10`
    cased=`expr 8 - $row`
    caseg=`expr $row - 1`
    caseh=`expr $line - 1`
    caseb=`expr 8 - $line`
    if [ $cased -ge $caseh ]
    then casehd=$caseh
    else casehd=$cased
    fi
    if [ $cased -ge $caseb ]
    then casebd=$caseb
    else casebd=$cased
    fi
    if [ $caseg -ge $caseb ]
    then casebg=$caseb
    else casebg=$caseg
    fi
    if [ $caseg -ge $caseh ]
    then casehg=$caseh
    else casehg=$caseg
    fi
    flag=0
    i=1
    shoot3=$shoot
    hyperflag=0
    while [ $i -le $caseb ]
    do
    k=`expr $i \* 10`
    point=`expr $shoot + $k`
    conv=$point
    converse
    read evalu < $conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    echo $flag
    echo $evalu
    if [ $flag -ge 1 ]
    then
    j=1
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    shoot3=`expr $shoot3 + 10`
    j=`expr $j + 1`
    conv=$shoot3
    converse
    echo $aff >$conv
    done

    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done


    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $caseh ]
    do
    k=`expr $i \* 10`
    point=`expr $shoot - $k`
    conv=$point
    converse
    read evalu <$conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    if [ $flag -ge 1 ]
    then
    j=1
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    shoot3=`expr $shoot3 - 10`
    conv=$shoot3
    converse
    j=`expr $j + 1`
    echo $aff >$conv
    done
    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done

    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $casebd ]
    do
    k=`expr $i \* 10`
    ad=`expr $i \* 1`
    bd=`expr $k + $ad`
    point=`expr $shoot + $bd`
    conv=$point
    converse
    read evalu <$conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    if [ $flag -ge 1 ]
    then
    j=1
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    shoot3=`expr $shoot3 + 11`
    conv=$shoot3
    j=`expr $j + 1`
    converse
    echo $aff >$conv
    done
    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done

    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $casehg ]
    do
    k=`expr $i \* 10`
    ad=`expr $i \* 1`
    bd=`expr $k + $ad`
    point=`expr $shoot - $bd`
    conv=$point
    converse
    read evalu <$conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    if [ $flag -ge 1 ]
    then
    j=1
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    shoot3=`expr $shoot3 - 11`
    j=`expr $j + 1`
    conv=$shoot3
    converse
    echo $aff >$conv
    done
    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done

    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $casehd ]
    do
    k=`expr $i \* 10`
    ad=`expr $i \* 1`
    bd=`expr $k - $ad`
    point=`expr $shoot - $bd`
    conv=$point
    converse
    read evalu <$conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    if [ $flag -ge 1 ]
    then
    j=1
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    shoot3=`expr $shoot3 - 9`
    j=`expr $j + 1`
    conv=$shoot3
    converse
    echo $aff >$conv
    done
    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done

    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $casebg ]
    do
    k=`expr $i \* 10`
    ad=`expr $i \* 1`
    bd=`expr $k - $ad`
    point=`expr $shoot + $bd`
    conv=$point
    converse
    read evalu <$conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    if [ $flag -ge 1 ]
    then
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    shoot3=`expr $shoot3 + 9`
    j=`expr $j + 1`
    conv=$shoot3
    converse
    echo $aff >$conv
    done
    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done

    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $cased ]
    do
    point=`expr $shoot + $i`
    conv=$point
    converse
    read evalu <$conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    if [ $flag -ge 1 ]
    then
    j=1
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    j=`expr $j + 1`
    shoot3=`expr $shoot3 + 1`
    conv=$shoot3
    converse
    echo $aff >$conv
    done
    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done

    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $caseg ]
    do
    point=`expr $shoot - $i`
    conv=$point
    converse
    read evalu <$conv
    if [ "$evalu" = "$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ "$evalu" = "." ]
    then
    break
    else
    if [ "$evalu" = "$aff" ]
    then
    if [ $flag -ge 1 ]
    then
    j=1
    hyperflag=`expr $hyperflag + 1`
    while [ $j -le $flag ]
    do
    shoot3=`expr $shoot3 - 1`
    j=`expr $j + 1`
    conv=$shoot3
    converse
    echo $aff >$conv
    done
    fi
    fi
    fi
    fi
    i=`expr $i + 1`
    done






    if [ "$hyperflag" = "0" ]
    then
    read ultra<ultraflag
    if [ "$ultra" = "1" ]
    then
    finpartie
    else
    echo "0">ultraflag
    fi
    echo "1">ultraflag
    echo ".">$shoot5
    echo "Coup impossible, réessayez"
    echo "Appuyez pour continuer"
    read lasparticho
    tir
    else
    echo $aff >$shoot5

    fi


    clear
    tableau
    sleep 3
    echo l>who
    sleep 2
    change
    }
    change()
    {

    read coul < couleur
    if [ "$coul" = "n" ]
    then
    echo b > couleur
    else
    echo n > couleur
    fi


    suite
    }
    finpartie()
    {
    echo "La Partie est finie"
    xcomp=0
    Ocomp=0
    for i in A B C D E F G H
    do
    for j in 1 2 3 4 5 6 7 8
    do
    read temp< $i$j
    if [ "$temp" = "x" ]
    then
    xcomp=`expr $xcomp + 1`
    fi
    if [ "$temp" = "O" ]
    then
    Ocomp=`expr $Ocomp + 1`
    fi
    done
    done
    echo "Le Joueur noir [x] a marqué $xcomp points"
    echo "Le Joueur blanc [O] a marqué $Ocomp points"
    echo "Appuyez sur pour recommencer ou sur une touche pour quitter"
    read touche
    if [ "$touche" = "r" ]
    then
    attente
    else
    exit 0
    fi


    }
    attente()
    {
    echo "x" >E4
    echo "O" >E5
    echo "O" >D4
    echo "x" >D5
    aff="O"
    clear
    echo "Attente de l'autre joueur"
    i=0
    read var2 < file

    if [ "$var2" = "r" ]
    then
    echo b>who
    echo rg > file
    coul="b"
    echo b > couleur
    pascoul="n"
    echo "vous etes blanc - vos pions sont [OO]"
    sleep 2
    suite
    else
    echo r > file
    while i=0
    do
    sleep 3
    read joueur < file
    if [ "$joueur" = "rg" ]
    then
    echo "vous etes noir - vos pions sont [xx]"
    break
    fi
    done
    suite
    fi
    }



    tir()
    {
    clear
    tableau
    echo w>who
    read color<couleur
    if [ "$color" = "n" ]
    then
    affi="x"
    else
    affi="O"
    fi
    echo "Votre couleur est [$affi]"
    echo "Où voulez vous jouer? Ecrivez en majuscule (exemple: X4)"
    read shoot
    if [ "$shoot" = "q" ]
    then
    exit 0
    else
    shoot2=$shoot
    shoot5=$shoot
    read testa <$shoot
    echo $testa
    echo $shoot
    if [ "$testa" = "." ]
    then
    echo $shoot >$shoot
    eval "$shoot=$shoot2"
    joue
    else

    echo "Coup impossible, réessayez"
    echo "Appuyez sur pour continuer"
    read sertawait
    tir
    fi
    fi
    }

    suite ()
    {
    read var1<who
    if [ "$var1" = "$coul" ]
    then
    echo w >who
    tir
    else

    echo "Attendez que l'autre joueur finisse"
    i=0
    while i=0
    do
    sleep 1
    read attent<who
    if [ "$attent" = "l" ]
    then
    echo good
    tir
    fi
    done
    fi
    }
    attente
  • [^] # Re: Le script, il sent fort de la bouche ?

    Posté par  . En réponse au message Multi utilisateurs d'un script. Évalué à 1.

    ouais mais ca c pour y acceder a partir du shell, moi le truc qu il me faudrait c'est que le shell principal "othello" ecrive un fichier "variables" dans lequel il cherche les variables dont il a besoin.

    si "othello" veut ecrire dans la variable "A1" il ecrit "A1=23" > dans le fichier "variables" et qu ensuite quand il a besoin de savoir ce qu il y a dans la variable "A1", il execute le fichier "variables" pour la lire.

    ainsi au début de l execution du script:

    A1=".";A2=".";.........;H8="."
    puis au fur et a mesure que les joueurs jouent on passe à Xn="O" ou Xn="x" selon qui joue.

    Je pense que le fait d ecrire les variables dans un fichier séparé et lire ce fichier a chaque besoin d acces aux variables est le seul moyen pour que chacun des joueurs puisse disposer des memes variables en meme temps.
  • [^] # Re: Le script, il sent fort de la bouche ?

    Posté par  . En réponse au message Multi utilisateurs d'un script. Évalué à 1.

    En fait le truc c est qu il faut l'écrire en bash mais il doit être lançable a partir de deux machines, par ssh par exemple, connectées sur le même compte distant.

    Le problème est donc que lorsque l'un des deux joueurs exécute ce script, les variables qu'il utilise sont locales à sa session. Donc l'autre joueur n'y a pas accès et vu que j'ai eu le malheur de ne pas y penser dès le début, j'ai mis dans des variables les cases du tableau dans lesquelles les joueurs jouent. Du coup quand l'un joue il ne voit pas les coups de l'adversaire.
    C'est pour ça que j'espere trouver un moyen de transformer le script, par exemple en mettant dans un fichier la liste de variable utilisées, mais je ne sais pas comment faire pour que le script principal y accede et considere le contenu de ce fichier comme ses propres variables..
  • [^] # Re: Le script, il sent fort de la bouche ?

    Posté par  . En réponse au message Multi utilisateurs d'un script. Évalué à 1.

    le hic c'est pas que je veux faire ce script en shell mais que je dois le faire ;-)

    Je suis completement d accord que c'est un peu ridicule de demander de faire ca mais c est un projet de cours !!!
    le shell script c est tres cool pour faire de l administration mais c est sur que quand il s agit de faire un jeu, c est une autre histoire, enfin....

    si toutefois quelqu un pouvait m aider !!!!!
    merci tonton
  • [^] # Re: Le script, il sent fort de la bouche ?

    Posté par  . En réponse au message Multi utilisateurs d'un script. Évalué à 1.

    bon il est un peu long c'est pour ca que j hésitait ;-)
    j explique un peu.

    C'est un programme d'othello (le jeu, appellé aussi reversi) que j'aimerais etre jouable sur 2 machines à la fois
    il commence à la fonction attente.

    #!/bin/bash
    A1=".";A2=".";A3=".";A4=".";A5="." # etc........... -> H8="."
    tableau()
    {
    echo "-------------------------------------"
    echo "| | A | B | C | D | E | F | G | H |"
    echo "-------------------------------------"
    echo "| 1 | $A1 | $B1 | $C1 | $D1 | $E1 | $F1 | $G1 | $H1 |"
    echo "-------------------------------------"
    echo "| 2 | $A2 | $B2 | $C2 | $D2 | $E2 | $F2 | $G2 | $H2 |"
    echo "-------------------------------------"
    echo "| 3 | $A3 | $B3 | $C3 | $D3 | $E3 | $F3 | $G3 | $H3 |"
    echo "-------------------------------------"
    echo "| 4 | $A4 | $B4 | $C4 | $D4 | $E4 | $F4 | $G4 | $H4 |"
    echo "-------------------------------------"
    echo "| 5 | $A5 | $B5 | $C5 | $D5 | $E5 | $F5 | $G5 | $H5 |"
    echo "-------------------------------------"
    echo "| 6 | $A6 | $B6 | $C6 | $D6 | $E6 | $F6 | $G6 | $H6 |"
    echo "-------------------------------------"
    echo "| 7 | $A7 | $B7 | $C7 | $D7 | $E7 | $F7 | $G7 | $H7 |"
    echo "-------------------------------------"
    echo "| 8 | $A8 | $B8 | $C8 | $D8 | $E8 | $F8 | $G8 | $H8 |"
    echo "-------------------------------------"
    }
    convertisseur()
    {
    # convertit les A1 en 11,...
    }
    converse()
    {
    # converti les 11 en A1
    }
    joue()
    {
    read coul < couleur
    if [ "$coul" = "n" ]
    then
    aff="x"
    paff="O"
    echo b > couleur
    else
    echo n > couleur
    aff="O"
    paff="x"
    fi
    convertisseur
    line=`expr $shoot / 10`
    row=`expr $shoot % 10`
    cased=`expr 8 - $row`
    caseg=`expr $row - 1`
    caseh=`expr $line - 1`
    caseb=`expr 8 - $line`
    if [ $cased -ge $caseh ]
    then casehd=$caseh
    else casehd=$cased
    fi
    if [ $cased -ge $caseb ]
    then casebd=$caseb
    else casebd=$cased
    fi
    if [ $caseg -ge $caseb ]
    then casebg=$caseb
    else casebg=$caseg
    fi
    if [ $caseg -ge $caseh ]
    then casehg=$caseh
    else casehg=$caseg
    fi
    echo $cased #débug
    echo $paff #débug
    flag=0
    i=1
    shoot3=$shoot
    while [ $i -le $cased ] #retourne les cases à droite
    do
    point=`expr $shoot + $i`
    conv=$point
    converse
    if [ "$( eval echo $conv )"=="$paff" ]
    then
    flag=`expr $flag + 1`
    else
    if [ $( eval echo $conv )==. ]
    then
    break
    else
    if [ $( eval echo $conv )==$aff && $flag -ge 1 ]
    then
    j=1
    while [ $j -lt $flag ]
    do
    shoot3=`expr $shoot3 + 1`
    conv=$shoot3
    converse
    eval "$conv=$aff"
    done
    fi
    fi
    fi
    i=`expr $i + 1`
    done
    eval "$shoot2=$aff"
    clear
    tableau
    sleep 3
    echo l>who
    sleep 2
    suite
    }

    attente()
    {
    E4=x
    E5=O
    D4=O
    D5=x
    clear
    echo "Attente de l'autre joueur"
    i=0
    read var2 < file
    if [ "$var2" = "r" ]
    then
    echo b>who
    echo rg > file
    coul="b"
    echo b > couleur
    pascoul="n"
    echo "vous etes blanc - vos pions sont [O]"
    sleep 2
    suite
    else
    echo r > file
    while i=0
    do
    sleep 3
    echo "attente"
    read joueur < file
    if [ "$joueur" = "rg" ]
    then
    echo "vous etes noir - vos pions sont [x]"
    break
    fi
    done
    suite
    fi
    }



    tir()
    {
    clear
    tableau
    echo w > who
    echo "Où voulez vous jouer? Ecrivez en majuscule (exemple: X4)"
    read shoot
    if [ "$shoot" = "q" ]
    then
    exit 0
    else
    shoot2=$shoot
    eval "$shoot=$shoot2"
    joue
    fi
    }

    suite ()
    {
    read var1<who
    if [ "$var1" = "$coul" ]
    then
    echo w >who
    tir
    else

    echo "Attendez que l'autre joueur finisse"
    i=0
    while i=0
    do
    sleep 1
    read attent<who
    echo $attent
    if [ "$attent" = "l" ]
    then
    echo good
    tir
    fi
    done
    fi
    }
    attente
  • [^] # Re: eval

    Posté par  . En réponse au message Variables. Évalué à 1.

    merci beaucoup a vous tous pour cette célérité

    impressionnant
    :-)