71 lines
2.3 KiB
Bash
71 lines
2.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Lire les techniques à partir du fichier CSV
|
||
|
IFS=$'\n' read -d '' -r -a techniques < techniques.csv
|
||
|
|
||
|
# Fonction pour choisir une technique aléatoire d'un certain type
|
||
|
function choose_random_technique() {
|
||
|
local technique_type=$1
|
||
|
local filtered_techniques=()
|
||
|
|
||
|
for technique in "${techniques[@]}"; do
|
||
|
local name=$(echo "$technique" | cut -d ',' -f 1)
|
||
|
local type=$(echo "$technique" | cut -d ',' -f 2)
|
||
|
|
||
|
if [ "$type" == "$technique_type" ]; then
|
||
|
filtered_techniques+=("$name")
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
# Choisir une technique aléatoire parmi les techniques filtrées
|
||
|
local random_index=$(( RANDOM % ${#filtered_techniques[@]} ))
|
||
|
echo "${filtered_techniques[random_index]}"
|
||
|
}
|
||
|
|
||
|
# Demander le choix du pattern à l'utilisateur
|
||
|
echo "Quel pattern souhaitez-vous choisir ?"
|
||
|
echo "1) Défense + attaque"
|
||
|
echo "2) Défense + défense + attaque"
|
||
|
echo "3) Défense + attaque + défense + attaque"
|
||
|
echo "4) Défense + défense + attaque + attaque"
|
||
|
echo "5) Personnaliser"
|
||
|
read -p "Entrez le numéro de votre choix : " pattern_choice
|
||
|
|
||
|
# Générer l'enchaînement de techniques en fonction du pattern choisi
|
||
|
case $pattern_choice in
|
||
|
1)
|
||
|
defense_technique=$(choose_random_technique 0)
|
||
|
attack_technique=$(choose_random_technique 1)
|
||
|
echo "$defense_technique & $attack_technique"
|
||
|
;;
|
||
|
2)
|
||
|
defense_technique=$(choose_random_technique 0)
|
||
|
echo "$defense_technique & $defense_technique & $(choose_random_technique 1)"
|
||
|
;;
|
||
|
3)
|
||
|
defense_technique=$(choose_random_technique 0)
|
||
|
attack_technique=$(choose_random_technique 1)
|
||
|
echo "$defense_technique & $attack_technique & $defense_technique & $attack_technique"
|
||
|
;;
|
||
|
4)
|
||
|
defense_technique=$(choose_random_technique 0)
|
||
|
echo "$defense_technique & $defense_technique & $(choose_random_technique 1) & $(choose_random_technique 1)"
|
||
|
;;
|
||
|
5)
|
||
|
read -p "Entrez votre propre pattern en utilisant 0 pour la défense et 1 pour l'attaque (par exemple, 0101) : " custom_pattern
|
||
|
pattern_output=""
|
||
|
for c in $(echo $custom_pattern | grep -o .); do
|
||
|
if [ "$c" == "0" ]; then
|
||
|
pattern_output+="$(choose_random_technique 0) & "
|
||
|
else
|
||
|
pattern_output+="$(choose_random_technique 1) & "
|
||
|
fi
|
||
|
done
|
||
|
echo "${pattern_output::-3}" # Supprimer le dernier "&" et l'espace
|
||
|
;;
|
||
|
*)
|
||
|
echo "Choix invalide."
|
||
|
;;
|
||
|
esac
|
||
|
|