10000 im Terminal spielen

Mit diesem Script kann man das Würfeln bei 10000 auch ohne echte Würfel erledigen lassen. Als nächstes wird dann wohl ein Webinterface kommen und vielleicht, nur vielleicht auch ein komplettes Spiel.

#!/bin/bash

# Funktion zum Würfeln von 6 Würfeln
wuerfeln() {
    local n=6
    local wurf=""
    for i in $(seq 1 $n); do
        wurf="$wurf $((RANDOM % 6 + 1))"
    done
    echo $wurf
}

# Punkteberechnung für die geworfenen Würfel
berechne_punkte() {
    local wurf=$1
    local punkte=0
    declare -A wuerfel_count
    for w in $wurf; do
        ((wuerfel_count[$w]++))
    done
    
    # Punkte für einzelne "1" und "5"
    punkte=$((punkte + wuerfel_count[1] * 100))
    punkte=$((punkte + wuerfel_count[5] * 50))
    
    # Punkte für dreifache Kombinationen
    for i in {2..6}; do
        if [[ ${wuerfel_count[$i]} -ge 3 ]]; then
            punkte=$((punkte + i * 100))
        fi
    done
    
    echo $punkte
}

# Funktion für den Spielablauf
spiel() {
    local punkte=0
    local wurf=""
    local spielen=true

    while $spielen; do
        wurf=$(wuerfeln)  # Würfeln von 6 Würfeln
        echo "Geworfene Würfel: $wurf"

        # Berechne die Punkte für den Wurf
        wurf_punkte=$(berechne_punkte "$wurf")
        echo "Punkte für diesen Wurf: $wurf_punkte"

        if [[ $wurf_punkte -eq 0 ]]; then
            echo "Keine gültigen Punkte erzielt. Dein Zug endet hier!"
            spielen=false
        else
            punkte=$((punkte + wurf_punkte))
            echo "Aktuelle Punktzahl: $punkte"
            
            # Überprüfen, ob der Spieler 10.000 Punkte erreicht hat
            if [[ $punkte -ge 10000 ]]; then
                echo "Herzlichen Glückwunsch! Du hast 10.000 Punkte erreicht!"
                spielen=false
            else
                # Abfragen, ob der Spieler weitermachen möchte
                echo "Möchtest du weitermachen (w) oder den Zug beenden (e)?"
                read -r weiter
                if [[ $weiter == "e" ]]; then
                    echo "Du hast deinen Zug beendet. Deine Endpunktzahl: $punkte"
                    spielen=false
                fi
            fi
        fi
    done
}

# Start des Spiels
spiel