• [^] # 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