Astroport.ONE/adventure/games/tuuake.jessop@ynov.com/rooms/fonction.sh

82 lines
2.7 KiB
Bash
Executable File

# fonctions.sh
source Config.sh
initialiser_plateau() {
for ((i = 0; i < ROWS * COLS; i++)); do
board[i]=" "
done
}
afficher_plateau() {
for ((i = 0; i < ROWS; i++)); do
for ((j = 0; j < COLS; j++)); do
echo -n "${board[i * COLS + j]} "
done
echo
done
}
placer_jeton() {
local colonne=$1
local token=$2
for ((i = ROWS - 1; i >= 0; i--)); do
if [ "${board[i * COLS + colonne - 1]}" == " " ]; then
board[i * COLS + colonne - 1]=$token
break
fi
done
}
verifier_victoire() {
# Vérification des alignements horizontaux
for ((i = 0; i < ROWS; i++)); do
for ((j = 0; j < COLS - 3; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[i * COLS + j + 3]}" ]; then
return 0 # Victoire
fi
done
done
# Vérification des alignements verticaux
for ((j = 0; j < COLS; j++)); do
for ((i = 0; i < ROWS - 3; i++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j]}" ]; then
return 0 # Victoire
fi
enddone
done
# Vérification des alignements diagonaux (de gauche à droite)
for ((i = 0; i < ROWS - 3; i++)); do
for ((j = 0; j < COLS - 3; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j + 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j + 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j + 3]}" ]; then
return 0 # Victoire
fi
done
done
# Vérification des alignements diagonaux (de droite à gauche)
for ((i = 0; i < ROWS - 3; i++)); do
for ((j = 3; j < COLS; j++)); do
if [ "${board[i * COLS + j]}" != " " ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 1) * COLS + j - 1]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 2) * COLS + j - 2]}" ] && \
[ "${board[i * COLS + j]}" == "${board[(i + 3) * COLS + j - 3]}" ]; then
return 0 # Victoire
fi
done
done
return 1 # Pas de victoire
}