#! /bin/bash

trap 'rm $joueur.pipe; echo "Défaite :("; exit 0;' USR1

if [ $# -gt 2 ] || [ $# -lt 1 ] ; then
    echo "Paramètres incorrects" >&2
    exit 2
fi

joueur=$1

# Q1 - Initialisation de la partie
if [ $# -eq 1 ] ; then
    mkfifo $joueur.pipe
    exec 3<> $joueur.pipe
    
    read adversaire pid < $joueur.pipe
    echo $adversaire $pid joined

    echo $$ > $adversaire.pipe

else
    adversaire=$2
    
    if [ ! -e $adversaire.pipe ] ; then
				echo "Adversaire introuvable" >&2
				exit 3
    fi
    
    mkfifo $joueur.pipe
    exec 3<> $joueur.pipe
    
    echo $joueur $$ > $adversaire.pipe

    read pid < $joueur.pipe
fi
echo "$joueur($$) ready to play with $adversaire($pid)"


# Q2 - Partyyyy
victoire=11
score=0

if [ $# -eq 1 ] ; then
    echo "Ping" | tee $adversaire.pipe 
fi

while true ; do
    read x < $joueur.pipe

    if [ $x = "missed" ] ; then
				score=$(expr $score + 1)
				echo "Point gagné ! Mon score est de $score"
				
				if [ $score -eq $victoire ] ; then
						echo "Victoire !"
						kill -USR1 $pid
						rm $joueur.pipe
						exit 0
				else
						echo "Ping" | tee $adversaire.pipe 
				fi
    elif [ $(echo $RANDOM | cut -c1) -eq 3 ] ; then
				echo "missed" | tee $adversaire.pipe
		elif [ $x = "Ping" ] ; then
				echo "Pong" | tee $adversaire.pipe
		else
				echo "Ping" | tee $adversaire.pipe
		fi
done


