Day 4
This commit is contained in:
60
04/02.sh
Executable file
60
04/02.sh
Executable 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
|
||||
Reference in New Issue
Block a user