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: Le script, il sent fort de la bouche ?
Posté par deumdeum . En réponse au message Multi utilisateurs d'un script. Évalué à 1.
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