61 lines
1.4 KiB
Bash
Executable File
61 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
read line
|
|
inputs=( ${line//,/ } )
|
|
read line
|
|
grid_size=5
|
|
i=0
|
|
conditions=''
|
|
columns=()
|
|
last_win=0
|
|
last_score=0
|
|
victory_condition=()
|
|
for j in $(seq $grid_size); do
|
|
columns+=''
|
|
victory_condition+=('X')
|
|
done
|
|
victory_condition=${victory_condition[@]}
|
|
|
|
while read line; do
|
|
if [[ ! -z "$line" ]] && [ $i -lt $grid_size ]; then
|
|
conditions=${conditions}$line' ; '
|
|
current=($line)
|
|
for j in $(seq $grid_size); do
|
|
columns[$((j-1))]=${columns[$((j-1))]}${current[$((j-1))]}' '
|
|
done
|
|
i=$((i+1))
|
|
fi
|
|
if [ $i -eq $grid_size ]; then
|
|
i=0
|
|
for j in $(seq $grid_size); do
|
|
conditions=${conditions}${columns[$((j-1))]}'; '
|
|
done
|
|
|
|
conditions='; '$conditions
|
|
for j in $(seq ${#inputs[@]}); do
|
|
conditions=${conditions// ${inputs[$((j-1))]} / X }
|
|
if [[ "$conditions" == *"$victory_condition"* ]]; then
|
|
current_score=$(sed 's/;[^;]*;[^;]*;[^;]*;[^;]*;[^;]*; $//' <<< $conditions)
|
|
current_score=$(sed 's/[X; ]/+/g' <<< $current_score)
|
|
current_score=$(sed 's/\+\++/+/g' <<< $current_score)
|
|
current_score=$(sed 's/\+*$//' <<< $current_score)
|
|
current_score=$((current_score))
|
|
current_score=$((current_score*inputs[j-1]))
|
|
if [ $last_win -eq 0 ] || [ $j -gt $last_win ]; then
|
|
last_win=$j
|
|
last_score=$current_score
|
|
fi
|
|
break
|
|
fi
|
|
done
|
|
|
|
conditions=''
|
|
columns=()
|
|
for j in $(seq $grid_size); do
|
|
columns+=''
|
|
done
|
|
fi
|
|
done
|
|
|
|
echo $last_score
|