From 724d07e6fb19bd4336de7154c7e244547736cdd8 Mon Sep 17 00:00:00 2001 From: T0MuX Date: Wed, 19 Jun 2024 07:13:26 +0200 Subject: [PATCH] +wc-tech-tui --- wc-tech/wc-tech-tui.sh | 67 +++++++++++++++++++++++++++++ wc-tech/wc-tech-tui2.sh | 93 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100755 wc-tech/wc-tech-tui.sh create mode 100755 wc-tech/wc-tech-tui2.sh diff --git a/wc-tech/wc-tech-tui.sh b/wc-tech/wc-tech-tui.sh new file mode 100755 index 0000000..3900d1d --- /dev/null +++ b/wc-tech/wc-tech-tui.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Fonction pour choisir une technique aléatoire +choose_technique() { + local techniques_file="$1" + shuf -n 1 "$techniques_file" +} + +# Fonction pour afficher les techniques en fonction du pattern +display_techniques() { + local techniques_file="$1" + local pattern="$2" + IFS='+' read -ra pattern_array <<< "$pattern" + for p in "${pattern_array[@]}"; do + technique="" + if [[ "$p" -eq 0 ]]; then + technique=$(grep ",0$" "$techniques_file" | shuf -n 1 | cut -d',' -f1) + echo "Défensive : $technique" + elif [[ "$p" -eq 1 ]]; then + technique=$(grep ",1$" "$techniques_file" | shuf -n 1 | cut -d',' -f1) + echo "Offensive : $technique" + fi + done +} + +# Main +techniques_file="techniques.csv" + +while true; do + choice=$(whiptail --title "Menu" --menu "Choisissez une option" 15 60 6 \ + "1" "Défense + Attaque" \ + "2" "Défense + Défense" \ + "3" "Défense + Défense + Attaque" \ + "4" "Défense + Attaque + Défense + Attaque" \ + "5" "Pattern personnalisé" \ + "0" "Quitter" 3>&1 1>&2 2>&3) + + case "$choice" in + 1) + pattern="0+1" + ;; + 2) + pattern="0+0" + ;; + 3) + pattern="0+0+1" + ;; + 4) + pattern="0+1+0+1" + ;; + 5) + pattern=$(whiptail --inputbox "Entrez le pattern personnalisé (par exemple '1+0+0+1')" 8 60 3>&1 1>&2 2>&3) + ;; + 0) + whiptail --msgbox "Au revoir !" 8 45 + exit 0 + ;; + *) + whiptail --msgbox "Option invalide. Veuillez choisir une option valide." 8 45 + continue + ;; + esac + + result=$(display_techniques "$techniques_file" "$pattern") + whiptail --msgbox "$result" 20 70 + +done diff --git a/wc-tech/wc-tech-tui2.sh b/wc-tech/wc-tech-tui2.sh new file mode 100755 index 0000000..d80b3a5 --- /dev/null +++ b/wc-tech/wc-tech-tui2.sh @@ -0,0 +1,93 @@ +#!/bin/bash + +# Définir les associations de techniques +declare -A associations +associations["tan sao,fak sao"]=1 +associations["pak sao,chun kuen"]=1 +associations["bong sao,biu jee"]=1 +associations["gam sao,chin chun"]=1 +associations["jam sao,fak sao"]=1 +associations["kao sao,chum sao"]=1 + +# Fonction pour choisir une technique aléatoire +choose_technique() { + local techniques_file="$1" + shuf -n 1 "$techniques_file" +} + +# Fonction pour afficher les techniques en fonction du pattern +display_techniques() { + local techniques_file="$1" + local pattern="$2" + local previous_defensive="" + + IFS='+' read -ra pattern_array <<< "$pattern" + for p in "${pattern_array[@]}"; do + technique="" + if [[ "$p" -eq 0 ]]; then + technique=$(grep ",0$" "$techniques_file" | shuf -n 1 | cut -d',' -f1) + previous_defensive="$technique" + echo "Défensive : $technique" + elif [[ "$p" -eq 1 ]]; then + if [[ -n "$previous_defensive" ]]; then + possible_offensive=$(grep ",1$" "$techniques_file" | cut -d',' -f1) + for offensive in $possible_offensive; do + if [[ "${associations["$previous_defensive,$offensive"]}" -eq 1 ]]; then + technique="$offensive" + break + fi + done + if [[ -z "$technique" ]]; then + technique=$(grep ",1$" "$techniques_file" | shuf -n 1 | cut -d',' -f1) + fi + else + technique=$(grep ",1$" "$techniques_file" | shuf -n 1 | cut -d',' -f1) + fi + echo "Offensive : $technique" + previous_defensive="" + fi + done +} + +# Main +techniques_file="techniques.csv" + +while true; do + choice=$(whiptail --title "Menu" --menu "Choisissez une option" 15 60 6 \ + "1" "Défense + Attaque" \ + "2" "Défense + Défense" \ + "3" "Défense + Défense + Attaque" \ + "4" "Défense + Attaque + Défense + Attaque" \ + "5" "Pattern personnalisé" \ + "0" "Quitter" 3>&1 1>&2 2>&3) + + case "$choice" in + 1) + pattern="0+1" + ;; + 2) + pattern="0+0" + ;; + 3) + pattern="0+0+1" + ;; + 4) + pattern="0+1+0+1" + ;; + 5) + pattern=$(whiptail --inputbox "Entrez le pattern personnalisé (par exemple '1+0+0+1')" 8 60 3>&1 1>&2 2>&3) + ;; + 0) + whiptail --msgbox "Au revoir !" 8 45 + exit 0 + ;; + *) + whiptail --msgbox "Option invalide. Veuillez choisir une option valide." 8 45 + continue + ;; + esac + + result=$(display_techniques "$techniques_file" "$pattern") + whiptail --msgbox "$result" 20 70 + +done