adds too many functions
refactors horizontal, vertical calculations
adds diagonal checks
solves problem 11