#!/bin/bash

clear

RESETC="$(tput sgr0)"

#ROUGE
RED="$(tput setaf 1)"

#JAUNE
YELLOW="$(tput setaf 3)"

>> save.txt

colonne=0

tour=0

bloque=0

choix=0

alignement=0

verif=0

GRILLE0=('_' '_' '_' '_' '_' '_' '_')
TOUR0=('_' '_' '_' '_' '_' '_' '_')

GRILLE1=('_' '_' '_' '_' '_' '_' '_')
TOUR1=('_' '_' '_' '_' '_' '_' '_')

GRILLE2=('_' '_' '_' '_' '_' '_' '_')
TOUR2=('_' '_' '_' '_' '_' '_' '_')

GRILLE3=('_' '_' '_' '_' '_' '_' '_')
TOUR3=('_' '_' '_' '_' '_' '_' '_')

GRILLE4=('_' '_' '_' '_' '_' '_' '_')
TOUR4=('_' '_' '_' '_' '_' '_' '_')

GRILLE5=('_' '_' '_' '_' '_' '_' '_')
TOUR5=('_' '_' '_' '_' '_' '_' '_')

echo "---------------"
echo "| PUISSANCE 4 |"
echo "---------------"

echo ""
echo "1. Nouvelle Partie"
echo "2. Charger Partie"
echo "3. Quitter"

echo ""
echo "Que choisissez-vous ?"
read -r choix

if [ "$choix" -eq 3 ]; then

	exit

elif [ "$choix" -eq 1 ]; then

	> save.txt

elif [ "$choix" -eq 2 ]; then

#	cat save.txt | awk -f '{print $GRILLE5=$1 GRILLE4=$2 GRILLE3=$3 GRILLE2=$4 GRILLE1=$5 GRILLE0=$6 TOUR5=$7 TOUR4=$8 TOUR3=$9 TOUR2=$10 TOUR1=$11 TOUR0=$12 tour=$13}'>>save.txt
	while IFS='\n' read -a ligne
		do
		${GRILLE5}=${ligne[1]}
		${GRILLE4}=${ligne[2]}
		${GRILLE3}=${ligne[3]}
		${GRILLE2}=${ligne[4]}
        ${GRILLE1}=${ligne[5]}
        ${GRILLE0}=${ligne[6]}
		${TOUR5}=${ligne[7]}
        ${TOUR4}=${ligne[8]}
        ${TOUR3}=${ligne[9]}
        ${TOUR2}=${ligne[10]}
        ${TOUR1}=${ligne[11]}
        ${TOUR0}=${ligne[12]}
		$tour=${ligne[13]}
	done
fi

echo ${GRILLE5[*]}
echo ${GRILLE4[*]}
echo ${GRILLE3[*]}
echo ${GRILLE2[*]}
echo ${GRILLE1[*]}
echo ${GRILLE0[*]}

until [ "$colonne" -lt 0 ]; do
	echo "Dans quelle colonne voulez-vous jouer ?"
	echo "q pour quitter"
	read -r colonne

	if [ "$colonne" -ge 1 ]; then
		if [ "$colonne" -le 7 ]; then 
			echo "Vous avez joue a la colonne $colonne"
			
			if [ "$bloque" -eq 0 ]; then

				if [ "$tour" -eq 0 ]; then
					piece='O'
					tour=1
				elif [ "$tour" -eq 1 ]; then
					piece='X'
					tour=0
				fi
	
			fi
		
			bloque=0

			vide=${GRILLE0[$colonne - 1]}
	
			if [ "$vide" = "_" ]; then
			
				GRILLE0[$colonne - 1]=$piece
				if [ "$tour" = "0" ]; then
					TOUR0[$colonne - 1]="J"
				elif [ "$tour" = "1" ]; then
					TOUR0[$colonne - 1]="R"
				fi

			elif [ "$vide" != "_" ]; then
			
				vide=${GRILLE1[$colonne - 1]}

				if [ "$vide" = "_" ]; then			

					GRILLE1[$colonne - 1]=$piece
				
					if [ "$tour" = "0" ]; then
						TOUR1[$colonne - 1]="J"
					elif [ "$tour" = "1" ]; then
						TOUR1[$colonne - 1]="R"
					fi

				elif [ "$vide" != "_" ]; then
	
					vide=${GRILLE2[$colonne - 1]}

					if [ "$vide" = "_" ]; then			

						GRILLE2[$colonne - 1]=$piece

						if [ "$tour" = "0" ]; then
							TOUR2[$colonne - 1]="J"
						elif [ "$tour" = "1" ]; then
							TOUR2[$colonne - 1]="R"
						fi

					elif [ "$vide" != "_" ]; then
	
						vide=${GRILLE3[$colonne - 1]}
				
						if [ "$vide" = "_" ]; then			

							GRILLE3[$colonne - 1]=$piece

							if [ "$tour" = "0" ]; then
								TOUR3[$colonne - 1]="J"
							elif [ "$tour" = "1" ]; then
								TOUR3[$colonne - 1]="R"
							fi

						elif [ "$vide" != "_" ]; then
	
							vide=${GRILLE4[$colonne - 1]}				
					
							if [ "$vide" = "_" ]; then			

								GRILLE4[$colonne - 1]=$piece

								if [ "$tour" = "0" ]; then
									TOUR4[$colonne - 1]="J"
								elif [ "$tour" = "1" ]; then
									TOUR4[$colonne - 1]="R"
								fi

							elif [ "$vide" != "_" ]; then
	
								vide=${GRILLE5[$colonne - 1]}
		
								if [ "$vide" = "_" ]; then

									GRILLE5[$colonne - 1]=$piece

									if [ "$tour" = "0" ]; then
										TOUR5[$colonne - 1]="J"
									elif [ "$tour" = "1" ]; then
										TOUR5[$colonne - 1]="R"
									fi

								elif [ "$vide" != "_" ]; then

									echo "Mouvement Impossible !"
									sleep 1s
									bloque=1
								
								fi
							fi
						fi
					fi
				fi		
			fi
			clear

			echo ${GRILLE5[*]} > save.txt
					
			echo ${GRILLE4[*]} >> save.txt

			echo ${GRILLE3[*]} >> save.txt

			echo ${GRILLE2[*]} >> save.txt

			echo ${GRILLE1[*]} >> save.txt

			echo ${GRILLE0[*]} >> save.txt

			echo ${TOUR5[*]} >> save.txt

			echo ${TOUR4[*]} >> save.txt

			echo ${TOUR3[*]} >> save.txt

			echo ${TOUR2[*]} >> save.txt

			echo ${TOUR1[*]} >> save.txt

			echo ${TOUR0[*]} >> save.txt

			echo $tour >> save.txt

			for index in "${!TOUR5[@]}"; do
				couleur=${TOUR5[$index]}
			
				if [ "$couleur" = "R" ]; then
					printf '\033[1,31,40m'
					echo -n "${RED}"${GRILLE5[$index]}
					printf '\033[0m'
					echo -n " "

				elif [ "$couleur" = "J" ]; then
					printf '\033[1,33,40m'
					echo -n "${YELLOW}"${GRILLE5[$index]}
					printf '\033[0m'
					echo -n " "					

				elif [ "$couleur" = "_" ]; then
					echo -n ${GRILLE5[$index]}
					echo -n " "

				fi
			done
			echo ""

			for index in "${!TOUR4[@]}"; do
				couleur=${TOUR4[$index]}
				if [ "$couleur" = "R" ]; then
					printf '\033[1,31,40m'
					echo -n "${RED}"${GRILLE4[$index]}
					printf '\033[0m'
					echo -n " "	

				elif [ "$couleur" = "J" ]; then
					printf '\033[1,33,40m'
					echo -n "${YELLOW}"${GRILLE4[$index]}
					printf '\033[0m'
					echo -n " "					

				elif [ "$couleur" = "_" ]; then
					echo -n ${GRILLE4[$index]}
					echo -n " "

				fi
			done
			echo ""	

			for index in "${!TOUR3[@]}"; do
				couleur=${TOUR3[$index]}
				if [ "$couleur" = "R" ]; then
					printf '\033[1,31,40m'
					echo -n "${RED}"${GRILLE3[$index]}
					printf '\033[0m'
					echo -n " "

				elif [ "$couleur" = "J" ]; then
					printf '\033[1,33,40m'
					echo -n "${YELLOW}"${GRILLE3[$index]}
					printf '\033[0m'
					echo -n " "					

				elif [ "$couleur" = "_" ]; then
					echo -n ${GRILLE3[$index]}
					echo -n " "

				fi
			done
			echo ""

			for index in "${!TOUR2[@]}"; do
				couleur=${TOUR2[$index]}
				if [ "$couleur" = "R" ]; then
					printf '\033[1,31,40m'
					echo -n "${RED}"${GRILLE2[$index]}
					printf '\033[0m'
					echo -n " "

				elif [ "$couleur" = "J" ]; then
					printf '\033[1,33,40m'
					echo -n "${YELLOW}"${GRILLE2[$index]}
					printf '\033[0m'
					echo -n " "					

				elif [ "$couleur" = "_" ]; then
					echo -n ${GRILLE2[$index]}
					echo -n " "

				fi
			done
			echo ""

			for index in "${!TOUR1[@]}"; do
				couleur=${TOUR1[$index]}
				if [ "$couleur" = "R" ]; then
					printf '\033[1,31,40m'
					echo -n "${RED}"${GRILLE1[$index]}
					printf '\033[0m'
					echo -n " "

				elif [ "$couleur" = "J" ]; then
					printf '\033[1,33,40m'
					echo -n "${YELLOW}"${GRILLE1[$index]}
					printf '\033[0m'
					echo -n " "
				
				elif [ "$couleur" = "_" ]; then
					echo -n ${GRILLE1[$index]}
					echo -n " "

				fi
			done
			echo ""

			for index in "${!TOUR0[@]}"; do
				couleur=${TOUR0[$index]}
				if [ "$couleur" = "R" ]; then
					printf '\033[1,31,40m'
					echo -n "${RED}"${GRILLE0[$index]}
					printf '\033[0m'
					echo -n " "

				elif [ "$couleur" = "J" ]; then
					printf '\033[1,33,40m'
					echo -n "${YELLOW}"${GRILLE0[$index]}
					printf '\033[0m'
					echo -n " "
				elif [ "$couleur" = "_" ]; then
					echo -n ${GRILLE0[$index]}
					echo -n " "
				fi
			done
			echo  ""
		
			for k in {0..6}; do

				if [ ${GRILLE5[$k]} != "_" ] && [ ${GRILLE4[$k]} != "_" ] && [ ${GRILLE3[$k]} != "_" ] && [ ${GRILLE2[$k]} != "_" ] && [ ${GRILLE5[$k]} = ${GRILLE4[$k]} ] && [ ${GRILLE3[$k]} = ${GRILLE2[$k]} ] && [ ${GRILLE5[$k]} = ${GRILLE3[$k]} ]; then

					alignement=1
					echo "1"
			
				elif [ ${GRILLE4[$k]} != "_" ] && [ ${GRILLE3[$k]} != "_" ] && [ ${GRILLE2[$k]} != "_" ] && [ ${GRILLE1[$k]} != "_" ] && [ ${GRILLE4[$k]} = ${GRILLE3[$k]} ] && [ ${GRILLE2[$k]} = ${GRILLE1[$k]} ] && [ ${GRILLE4[$k]} = ${GRILLE2[$k]} ]; then

					alignement=1
					echo "2"
			
				elif [ ${GRILLE3[$k]} != "_" ] && [ ${GRILLE2[$k]} != "_" ] && [ ${GRILLE1[$k]} != "_" ] && [ ${GRILLE0[$k]} != "_" ] && [ ${GRILLE3[$k]} = ${GRILLE2[$k]} ] && [ ${GRILLE1[$k]} = ${GRILLE0[$k]} ] && [ ${GRILLE3[$k]} = ${GRILLE1[$k]} ]; then

					alignement=1
					echo "3"
			
				fi
			
			done

			for k in {0..3}; do
		
				if [ ${GRILLE0[$k]} != "_" ] && [ ${GRILLE0[$k+1]} != "_" ] && [ ${GRILLE0[$k+2]} != "_" ] && [ ${GRILLE0[$k+3]} != "_" ] && [ ${GRILLE0[$k]} = ${GRILLE0[k+1]} ] && [ ${GRILLE0[k+2]} = ${GRILLE0[k+3]} ] && [ ${GRILLE0[$k]} = ${GRILLE0[k+2]} ]; then
			 
					alignement=1
					echo"4"

				elif [ ${GRILLE1[$k]} != "_" ] && [ ${GRILLE1[$k+1]} != "_" ] && [ ${GRILLE1[$k+2]} != "_" ] && [ ${GRILLE1[$k+3]} != "_" ] && [ ${GRILLE1[$k]} = ${GRILLE1[$k+1]} ] && [ ${GRILLE1[$k+2]} = ${GRILLE1[$k+3]} ] && [ ${GRILLE1[$k]} = ${GRILLE1[$k+2]} ]; then
		
					alignement=1
					echo"5"
							  
				elif [ ${GRILLE2[$k]} != "_" ] && [ ${GRILLE2[$k+1]} != "_" ] && [ ${GRILLE2[$k+2]} != "_" ] && [ ${GRILLE2[$k+3]} != "_" ] && [ ${GRILLE2[$k]} = ${GRILLE2[$k+1]} ] && [ ${GRILLE2[$k+2]} = ${GRILLE2[$k+3]} ] && [ ${GRILLE3[$k]} = ${GRILLE2[$k+2]} ]; then
		
					alignement=1
					echo "6"
							   
				elif [ ${GRILLE3[$k]} != "_" ] && [ ${GRILLE3[$k+1]} != "_" ] && [ ${GRILLE3[$k+2]} != "_" ] && [ ${GRILLE3[$k+3]} != "_" ] && [ ${GRILLE3[$k]} = ${GRILLE3[$k+1]} ] && [ ${GRILLE3[$k+2]} = ${GRILLE3[$k+3]} ] && [ ${GRILLE3[$k]} = ${GRILLE3[$k+2]} ]; then
		
					alignement=1
					echo "7"

				elif [ ${GRILLE4[$k]} != "_" ] && [ ${GRILLE4[$k+1]} != "_" ] && [ ${GRILLE4[$k+2]} != "_" ] && [ ${GRILLE4[$k+3]} != "_" ] && [ ${GRILLE4[$k]} = ${GRILLE4[$k+1]} ] && [ ${GRILLE4[$k+2]} = ${GRILLE4[$k+3]} ] && [ ${GRILLE4[$k]} = ${GRILLE4[$k+2]} ]; then
		
					alignement=1
					echo "8"
				
				elif [ ${GRILLE5[$k]} != "_" ] && [ ${GRILLE5[$k+1]} != "_" ] && [ ${GRILLE5[$k+2]} != "_" ] && [ ${GRILLE5[$k+3]} != "_" ] && [ ${GRILLE5[$k]} = ${GRILLE5[$k+1]} ] && [ ${GRILLE5[$k+2]} = ${GRILLE5[$k+3]} ] && [ ${GRILLE5[$k]} = ${GRILLE5[$k+2]} ]; then
		
					alignement=1
					echo "9" 	

				fi
				
				for k in {0..3}; do

					if [ ${GRILLE5[$k]} != "_" ] && [ ${GRILLE4[$k + 1]} != "_" ] && [ ${GRILLE3[$k + 2]} != "_" ]  && [ ${GRILLE2[$k + 3]} != "_" ] && [ ${GRILLE5[$k]} = ${GRILLE4[$k + 1]} ] &&  [ ${GRILLE3[$k + 2]} = ${GRILLE2[$k + 3]} ] && [ ${GRILLE5[$k]} = ${GRILLE3[$k + 2]} ]; then
						alignement=1

					elif [ ${GRILLE4[$k]} != "_" ] && [ ${GRILLE3[$k + 1]} != "_" ] && [ ${GRILLE2[$k + 2]} != "_" ]  && [ ${GRILLE1[$k + 3]} != "_" ] && [ ${GRILLE4[$k]} = ${GRILLE3[$k + 1]} ] &&  [ ${GRILLE2[$k + 2]} = ${GRILLE1[$k + 3]} ] && [ ${GRILLE4[$k]} = ${GRILLE2[$k + 2]} ]; then
						alignement=1
					
					elif [ ${GRILLE3[$k]} != "_" ] && [ ${GRILLE2[$k + 1]} != "_" ] && [ ${GRILLE1[$k + 2]} != "_" ]  && [ ${GRILLE0[$k + 3]} != "_" ] && [ ${GRILLE3[$k]} = ${GRILLE2[$k + 1]} ] &&  [ ${GRILLE1[$k + 2]} = ${GRILLE0[$k + 3]} ] && [ ${GRILLE3[$k]} = ${GRILLE1[$k + 2]} ]; then
						alignement=1

					elif [ ${GRILLE0[$k]} != "_" ] && [ ${GRILLE1[$k + 1]} != "_" ] && [ ${GRILLE2[$k + 2]} != "_" ]  && [ ${GRILLE3[$k + 3]} != "_" ] && [ ${GRILLE0[$k]} = ${GRILLE1[$k + 1]} ] &&  [ ${GRILLE2[$k + 2]} = ${GRILLE3[$k + 3]} ] && [ ${GRILLE0[$k]} = ${GRILLE2[$k + 2]} ]; then
						alignement=1

					elif [ ${GRILLE1[$k]} != "_" ] && [ ${GRILLE2[$k + 1]} != "_" ] && [ ${GRILLE3[$k + 2]} != "_" ]  && [ ${GRILLE4[$k + 3]} != "_" ] && [ ${GRILLE1[$k]} = ${GRILLE2[$k + 1]} ] &&  [ ${GRILLE3[$k + 2]} = ${GRILLE4[$k + 3]} ] && [ ${GRILLE1[$k]} = ${GRILLE3[$k + 2]} ]; then
						alignement=1

					elif [ ${GRILLE2[$k]} != "_" ] && [ ${GRILLE3[$k + 1]} != "_" ] && [ ${GRILLE4[$k + 2]} != "_" ]  && [ ${GRILLE5[$k + 3]} != "_" ] && [ ${GRILLE2[$k]} = ${GRILLE3[$k + 1]} ] &&  [ ${GRILLE4[$k + 2]} = ${GRILLE5[$k + 3]} ] && [ ${GRILLE2[$k]} = ${GRILLE4[$k + 2]} ]; then
						alignement=1
					fi
				done


				if [ "$alignement" -eq 1 ]; then
					colonne="q"
					echo "WIIIIIIIIIIIIIIIIIIIIIIIIIIIIN"
					sleep 1s

				fi

			done
			
			if [ "$colonne" = "q" ]; then
				colonne=-1
				echo "See you later !"
			fi
		fi
	fi
done

