This commit is contained in:
2021-12-04 17:47:51 +01:00
parent 1d06c8c2f7
commit 584ee7021b
2 changed files with 120 additions and 0 deletions

60
04/02.sh Executable file
View File

@@ -0,0 +1,60 @@
#!/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