#!/bin/bash

set -u
set -e

basedir=$(dirname $(readlink -f ${BASH_SOURCE}))

. $basedir/common.sh

filename=${1:-$basedir/3_4_8.txt}

read_file $filename

declare -A cansee
declare -A cantsee

debug_line=true # default to not actually outputting any debug info

if [ ${DEBUG:-0} -gt 0 ]; then
    debug_line=debug_line
fi

debug_line() {
    line="$@"
    echo "$line" >&2
}

# lets be silly and use the stuff from zap to build the lists instead
best_count=0
best_ast=
cur_ast_num=0
total_asts=${#asteroids[@]}
for asteroid in ${!asteroids[@]}; do
    percent=$((100*$cur_ast_num / $total_asts))
    printf '\r%02d%% complete' $percent

    # get a full list of angles for each other asteroid
    declare -A asteroid_angles
    for asteroid2 in ${!asteroids[@]}; do
        if [ $asteroid == $asteroid2 ]; then
            continue
        fi

        angle=$(get_angle $asteroid $asteroid2)
        asteroid_angles[$angle]=1
    done
    count=${#asteroid_angles[@]}
    if [ $count -gt $best_count ]; then
        best_count=$count
        best_ast=$asteroid
    fi
    asteroid[$asteroid]=${#asteroid_angles[@]}
    unset asteroid_angles
    cur_ast_num=$((cur_ast_num+1))
done
printf '\r                              \r'

echo "Found $best_ast with $best_count asteroids"
exit 0
