#!/bin/bash read line inputs=( ${line//,/ } ) read line grid_size=5 i=0 conditions='' columns=() first_win=0 first_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 [ $first_win -eq 0 ] || [ $j -lt $first_win ]; then first_win=$j first_score=$current_score fi break fi done conditions='' columns=() for j in $(seq $grid_size); do columns+='' done fi done echo $first_score