2018 day 10 done

This commit is contained in:
Brian Buller 2018-12-10 08:37:20 -06:00
parent 93676db103
commit e1d46e7b90
4 changed files with 555 additions and 0 deletions

173
2018/day10/day10.go Normal file
View File

@ -0,0 +1,173 @@
package main
import (
"bufio"
"fmt"
"log"
"os"
"strconv"
"strings"
)
const (
MaxInt = int(^uint(0) >> 1)
MinInt = -MaxInt - 1
ClearScreen = "\033[H\033[2J"
)
var sky *Sky
func main() {
inp := StdinToStringSlice()
buildSky(inp)
part1()
}
func buildSky(inp []string) {
sky = &Sky{
minPos: Pos{x: MaxInt, y: MaxInt},
maxPos: Pos{x: MinInt, y: MinInt},
}
for _, v := range inp {
sky.addStar(v)
}
}
func part1() {
for i := 1; i < 100000; i++ {
sky.tick()
if sky.maxPos.y-sky.minPos.y <= 10 {
sky.printSky()
fmt.Println("Seconds:", i)
break
}
}
}
type Sky struct {
stars []*Star
minPos, maxPos Pos
}
func (s *Sky) tick() {
s.setMinPosX(MaxInt)
s.setMinPosY(MaxInt)
s.setMaxPosX(MinInt)
s.setMaxPosY(MinInt)
for _, v := range s.stars {
v.tick()
s.considerStar(v)
}
}
func (s *Sky) considerStar(v *Star) {
if v.position.x < s.minPos.x {
s.setMinPosX(v.position.x)
}
if v.position.y < s.minPos.y {
s.setMinPosY(v.position.y)
}
if v.position.x > s.maxPos.x {
s.setMaxPosX(v.position.x)
}
if v.position.y > s.maxPos.y {
s.setMaxPosY(v.position.y)
}
}
func (s *Sky) starAt(p *Pos) bool {
for _, v := range s.stars {
if p.equals(v.position) {
return true
}
}
return false
}
func (s *Sky) printSky() {
for i := s.minPos.y; i <= s.maxPos.y; i++ {
for j := s.minPos.x; j <= s.maxPos.x; j++ {
if s.starAt(&Pos{x: j, y: i}) {
fmt.Print("*")
} else {
fmt.Print(" ")
}
}
fmt.Println("")
}
}
func (s *Sky) addStar(inp string) {
v := NewStar(inp)
s.stars = append(s.stars, v)
s.considerStar(v)
}
func (s *Sky) setMinPosX(x int) {
s.minPos.x = x
}
func (s *Sky) setMinPosY(y int) {
s.minPos.y = y
}
func (s *Sky) setMaxPosX(x int) {
s.maxPos.x = x
}
func (s *Sky) setMaxPosY(y int) {
s.maxPos.y = y
}
type Star struct {
position *Pos
velocity *Pos
}
func NewStar(inp string) *Star {
inp = inp[10:]
pts := strings.Split(inp, ">")
posStr := pts[0]
velStr := pts[1][11:len(pts[1])]
return &Star{
position: NewPos(posStr),
velocity: NewPos(velStr),
}
}
func (s *Star) tick() {
s.position.x += s.velocity.x
s.position.y += s.velocity.y
}
type Pos struct {
x, y int
}
func NewPos(inp string) *Pos {
pts := strings.Split(inp, ", ")
return &Pos{
x: Atoi(strings.TrimSpace(pts[0])),
y: Atoi(strings.TrimSpace(pts[1])),
}
}
func (p *Pos) equals(o *Pos) bool {
return p.x == o.x && p.y == o.y
}
func StdinToStringSlice() []string {
var input []string
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
input = append(input, scanner.Text())
}
return input
}
func Atoi(i string) int {
var ret int
var err error
if ret, err = strconv.Atoi(i); err != nil {
fmt.Println(err.Error())
log.Fatal("Invalid Atoi" + i)
}
return ret
}

1
2018/day10/go.mod Normal file
View File

@ -0,0 +1 @@
module day10

350
2018/day10/input Normal file
View File

@ -0,0 +1,350 @@
position=< 20168, 40187> velocity=<-2, -4>
position=<-39906, -49878> velocity=< 4, 5>
position=< 30186, 10170> velocity=<-3, -1>
position=< 30150, 50195> velocity=<-3, -5>
position=< 50184, 40190> velocity=<-5, -4>
position=< 40154, 30186> velocity=<-4, -3>
position=<-39879, 40188> velocity=< 4, -4>
position=<-49865, -49878> velocity=< 5, 5>
position=< 50184, 30183> velocity=<-5, -3>
position=<-19872, 40193> velocity=< 2, -4>
position=< 10148, 10166> velocity=<-1, -1>
position=< 30143, -19855> velocity=<-3, 2>
position=<-29901, -49875> velocity=< 3, 5>
position=< 30183, -29857> velocity=<-3, 3>
position=< 50211, 30181> velocity=<-5, -3>
position=< 50203, 50195> velocity=<-5, -5>
position=< 20175, 30184> velocity=<-2, -3>
position=<-29851, 50191> velocity=< 3, -5>
position=< -9838, -29865> velocity=< 1, 3>
position=< 20133, -49879> velocity=<-2, 5>
position=< 30190, -19849> velocity=<-3, 2>
position=< 50205, 30186> velocity=<-5, -3>
position=< 30162, 10171> velocity=<-3, -1>
position=<-49859, -29861> velocity=< 5, 3>
position=<-19840, 50191> velocity=< 2, -5>
position=<-49918, 10164> velocity=< 5, -1>
position=< 50160, -39870> velocity=<-5, 4>
position=< -9866, -29859> velocity=< 1, 3>
position=< 40148, -9846> velocity=<-4, 1>
position=<-29867, 20179> velocity=< 3, -2>
position=<-29862, -9847> velocity=< 3, 1>
position=< 50208, -29861> velocity=<-5, 3>
position=< 50176, 40191> velocity=<-5, -4>
position=<-49890, -9842> velocity=< 5, 1>
position=<-19860, -19856> velocity=< 2, 2>
position=< 10134, 20179> velocity=<-1, -2>
position=< 30138, 50196> velocity=<-3, -5>
position=< 10148, 50193> velocity=<-1, -5>
position=< 20184, -29863> velocity=<-2, 3>
position=< 30178, -49876> velocity=<-3, 5>
position=< -9881, -49879> velocity=< 1, 5>
position=< 40162, -29865> velocity=<-4, 3>
position=<-29851, -9851> velocity=< 3, 1>
position=< -9833, -49870> velocity=< 1, 5>
position=<-39867, -49871> velocity=< 4, 5>
position=<-19897, 40184> velocity=< 2, -4>
position=< 10164, 10165> velocity=<-1, -1>
position=< 40182, 40192> velocity=<-4, -4>
position=<-39910, 10163> velocity=< 4, -1>
position=<-39851, 40193> velocity=< 4, -4>
position=<-39882, 20179> velocity=< 4, -2>
position=< 20155, -29861> velocity=<-2, 3>
position=<-49902, 20173> velocity=< 5, -2>
position=<-29853, 50191> velocity=< 3, -5>
position=<-29856, -19849> velocity=< 3, 2>
position=<-29843, 20170> velocity=< 3, -2>
position=<-19892, 10165> velocity=< 2, -1>
position=<-19857, 30182> velocity=< 2, -3>
position=< -9850, 30178> velocity=< 1, -3>
position=< -9848, -29862> velocity=< 1, 3>
position=< 40153, 20173> velocity=<-4, -2>
position=<-49894, 20179> velocity=< 5, -2>
position=<-29848, -9843> velocity=< 3, 1>
position=<-29859, 50195> velocity=< 3, -5>
position=<-19847, -39872> velocity=< 2, 4>
position=< -9830, 40184> velocity=< 1, -4>
position=<-19887, -9847> velocity=< 2, 1>
position=< 30138, 10164> velocity=<-3, -1>
position=< 20155, -9843> velocity=<-2, 1>
position=<-39911, 20172> velocity=< 4, -2>
position=< 50173, -19850> velocity=<-5, 2>
position=<-19846, 20174> velocity=< 2, -2>
position=< 40181, 30177> velocity=<-4, -3>
position=< 10126, 40188> velocity=<-1, -4>
position=< 40205, -49875> velocity=<-4, 5>
position=<-29867, 10165> velocity=< 3, -1>
position=<-49873, 30179> velocity=< 5, -3>
position=< 50208, -49870> velocity=<-5, 5>
position=< 30143, 50193> velocity=<-3, -5>
position=< 20171, 10166> velocity=<-2, -1>
position=< 40197, 20170> velocity=<-4, -2>
position=< 20166, -9847> velocity=<-2, 1>
position=<-49890, -49870> velocity=< 5, 5>
position=< 10177, 40185> velocity=<-1, -4>
position=< 10124, 30186> velocity=<-1, -3>
position=<-39907, 40188> velocity=< 4, -4>
position=< 50163, -9842> velocity=<-5, 1>
position=<-19881, 10168> velocity=< 2, -1>
position=< 20179, -39872> velocity=<-2, 4>
position=< 20171, -29864> velocity=<-2, 3>
position=<-49899, 30177> velocity=< 5, -3>
position=< 30154, 10170> velocity=<-3, -1>
position=<-49902, 20175> velocity=< 5, -2>
position=< 50176, 10164> velocity=<-5, -1>
position=<-29871, -19858> velocity=< 3, 2>
position=<-49860, 20179> velocity=< 5, -2>
position=< -9866, 50196> velocity=< 1, -5>
position=<-49910, -29857> velocity=< 5, 3>
position=< 40203, -39872> velocity=<-4, 4>
position=< 20144, 40193> velocity=<-2, -4>
position=<-29859, 20173> velocity=< 3, -2>
position=<-19839, -39868> velocity=< 2, 4>
position=<-19868, -29856> velocity=< 2, 3>
position=<-19848, 10163> velocity=< 2, -1>
position=< 10167, -49873> velocity=<-1, 5>
position=< 10132, 10169> velocity=<-1, -1>
position=< 20190, 40188> velocity=<-2, -4>
position=< 40177, -19849> velocity=<-4, 2>
position=<-49883, 20170> velocity=< 5, -2>
position=< 40177, 50194> velocity=<-4, -5>
position=<-39899, 10163> velocity=< 4, -1>
position=<-19865, 20178> velocity=< 2, -2>
position=< 40188, 40189> velocity=<-4, -4>
position=< -9866, 20175> velocity=< 1, -2>
position=<-49885, -49879> velocity=< 5, 5>
position=<-39850, -49870> velocity=< 4, 5>
position=<-39879, 50192> velocity=< 4, -5>
position=< 30148, 30186> velocity=<-3, -3>
position=< -9845, 30178> velocity=< 1, -3>
position=< -9850, 50197> velocity=< 1, -5>
position=< 50187, 40188> velocity=<-5, -4>
position=< 10156, 40188> velocity=<-1, -4>
position=< 50197, 50193> velocity=<-5, -5>
position=<-29859, -49870> velocity=< 3, 5>
position=<-49862, 20179> velocity=< 5, -2>
position=< 40190, 20170> velocity=<-4, -2>
position=< 30162, -29862> velocity=<-3, 3>
position=< 10184, 30177> velocity=<-1, -3>
position=< 10180, -39866> velocity=<-1, 4>
position=<-39854, 10167> velocity=< 4, -1>
position=< -9890, -39869> velocity=< 1, 4>
position=<-29888, 40187> velocity=< 3, -4>
position=< 10148, -49870> velocity=<-1, 5>
position=<-39866, 40187> velocity=< 4, -4>
position=< 10164, 20174> velocity=<-1, -2>
position=<-29888, -49875> velocity=< 3, 5>
position=< 20155, -9849> velocity=<-2, 1>
position=< 50154, -19858> velocity=<-5, 2>
position=<-49900, -29856> velocity=< 5, 3>
position=< 30183, -39866> velocity=<-3, 4>
position=< 30183, 40186> velocity=<-3, -4>
position=<-39862, -9842> velocity=< 4, 1>
position=<-49907, -19858> velocity=< 5, 2>
position=< 10136, -29865> velocity=<-1, 3>
position=<-29872, -9843> velocity=< 3, 1>
position=<-29864, 20179> velocity=< 3, -2>
position=<-39895, -49878> velocity=< 4, 5>
position=< 20147, 30179> velocity=<-2, -3>
position=< 10175, -39868> velocity=<-1, 4>
position=< 10125, -19858> velocity=<-1, 2>
position=< 30186, -49872> velocity=<-3, 5>
position=<-29880, -29864> velocity=< 3, 3>
position=<-29903, -19854> velocity=< 3, 2>
position=< -9839, -39863> velocity=< 1, 4>
position=< 50173, -19857> velocity=<-5, 2>
position=< -9842, -9842> velocity=< 1, 1>
position=<-19852, -39865> velocity=< 2, 4>
position=< 10124, -9842> velocity=<-1, 1>
position=< 10180, 10170> velocity=<-1, -1>
position=< 40201, 20174> velocity=<-4, -2>
position=< 10156, 10163> velocity=<-1, -1>
position=<-19888, -29856> velocity=< 2, 3>
position=< 50197, -9848> velocity=<-5, 1>
position=< -9882, -9844> velocity=< 1, 1>
position=< 20158, -19849> velocity=<-2, 2>
position=<-29878, 20179> velocity=< 3, -2>
position=<-19881, -19851> velocity=< 2, 2>
position=<-29896, 10171> velocity=< 3, -1>
position=< 20164, 10167> velocity=<-2, -1>
position=<-19889, 40184> velocity=< 2, -4>
position=< 30146, -49875> velocity=<-3, 5>
position=< 20155, -29859> velocity=<-2, 3>
position=<-19885, 40184> velocity=< 2, -4>
position=< 10156, -9849> velocity=<-1, 1>
position=< 40145, -19852> velocity=<-4, 2>
position=< 20139, 10170> velocity=<-2, -1>
position=< 20143, 20179> velocity=<-2, -2>
position=<-39903, -49871> velocity=< 4, 5>
position=<-49918, 30179> velocity=< 5, -3>
position=<-39908, 30177> velocity=< 4, -3>
position=<-29899, -29864> velocity=< 3, 3>
position=< -9853, -19855> velocity=< 1, 2>
position=< 30175, -49871> velocity=<-3, 5>
position=< 50197, -29860> velocity=<-5, 3>
position=< 40186, -19856> velocity=<-4, 2>
position=< 20139, -9846> velocity=<-2, 1>
position=< 20156, -49870> velocity=<-2, 5>
position=< 50208, -39870> velocity=<-5, 4>
position=< -9856, 20174> velocity=< 1, -2>
position=<-19865, 10172> velocity=< 2, -1>
position=< 50160, -19855> velocity=<-5, 2>
position=< 40155, 30181> velocity=<-4, -3>
position=< 40162, -9842> velocity=<-4, 1>
position=< 20172, -49877> velocity=<-2, 5>
position=< 20166, -19853> velocity=<-2, 2>
position=<-49859, 50191> velocity=< 5, -5>
position=<-49894, -9851> velocity=< 5, 1>
position=<-19881, -49873> velocity=< 2, 5>
position=<-49873, 10168> velocity=< 5, -1>
position=<-29864, 50195> velocity=< 3, -5>
position=< 20143, 10167> velocity=<-2, -1>
position=<-29900, -29858> velocity=< 3, 3>
position=<-19878, -49879> velocity=< 2, 5>
position=<-49866, 30186> velocity=< 5, -3>
position=< 10177, -9842> velocity=<-1, 1>
position=<-49868, -29856> velocity=< 5, 3>
position=< 20148, 10163> velocity=<-2, -1>
position=< 30194, -49879> velocity=<-3, 5>
position=< 10160, 40190> velocity=<-1, -4>
position=<-39859, 50194> velocity=< 4, -5>
position=<-39901, 30181> velocity=< 4, -3>
position=< 40198, -19858> velocity=<-4, 2>
position=< 30179, 20171> velocity=<-3, -2>
position=<-49905, 40184> velocity=< 5, -4>
position=< 50204, 40187> velocity=<-5, -4>
position=< 20139, -49878> velocity=<-2, 5>
position=< 40149, 20176> velocity=<-4, -2>
position=< -9845, 10168> velocity=< 1, -1>
position=<-29900, -9851> velocity=< 3, 1>
position=< 40145, -49878> velocity=<-4, 5>
position=<-39871, -19850> velocity=< 4, 2>
position=<-29904, -9844> velocity=< 3, 1>
position=< 10165, 50192> velocity=<-1, -5>
position=< 50184, 40186> velocity=<-5, -4>
position=< 10125, 30177> velocity=<-1, -3>
position=<-49878, -49877> velocity=< 5, 5>
position=< 40201, -9842> velocity=<-4, 1>
position=<-39876, 50191> velocity=< 4, -5>
position=<-29904, 30180> velocity=< 3, -3>
position=< 10169, 50195> velocity=<-1, -5>
position=< 30146, -29856> velocity=<-3, 3>
position=<-39877, -49875> velocity=< 4, 5>
position=< 10166, -9848> velocity=<-1, 1>
position=< 30154, 40186> velocity=<-3, -4>
position=< 20148, -19849> velocity=<-2, 2>
position=<-19849, -19849> velocity=< 2, 2>
position=<-29862, -29861> velocity=< 3, 3>
position=< 20166, -19853> velocity=<-2, 2>
position=<-39853, -19854> velocity=< 4, 2>
position=< 20151, 50191> velocity=<-2, -5>
position=< -9830, -49870> velocity=< 1, 5>
position=< 30189, 40184> velocity=<-3, -4>
position=< 20139, 20174> velocity=<-2, -2>
position=< 10169, -19857> velocity=<-1, 2>
position=< 40186, -19857> velocity=<-4, 2>
position=< 30183, -29857> velocity=<-3, 3>
position=< 20163, 40189> velocity=<-2, -4>
position=<-19897, 20175> velocity=< 2, -2>
position=<-19892, -9848> velocity=< 2, 1>
position=< 50197, -19857> velocity=<-5, 2>
position=< 20150, -9842> velocity=<-2, 1>
position=<-29900, -49879> velocity=< 3, 5>
position=< 20136, -19850> velocity=<-2, 2>
position=<-49873, -39872> velocity=< 5, 4>
position=< 50154, -29861> velocity=<-5, 3>
position=<-49892, 30186> velocity=< 5, -3>
position=<-49873, 10170> velocity=< 5, -1>
position=< 40186, -49877> velocity=<-4, 5>
position=<-39901, 20170> velocity=< 4, -2>
position=<-39887, 30185> velocity=< 4, -3>
position=<-29859, -49871> velocity=< 3, 5>
position=< 50189, 10164> velocity=<-5, -1>
position=< 30178, 30186> velocity=<-3, -3>
position=< 50192, -49878> velocity=<-5, 5>
position=< 30178, 40184> velocity=<-3, -4>
position=<-39902, 40188> velocity=< 4, -4>
position=< 30178, -39868> velocity=<-3, 4>
position=<-39861, 20175> velocity=< 4, -2>
position=< 10132, -9844> velocity=<-1, 1>
position=< 30165, 20179> velocity=<-3, -2>
position=<-19879, -29856> velocity=< 2, 3>
position=<-49890, 30186> velocity=< 5, -3>
position=<-19838, 30186> velocity=< 2, -3>
position=< 30155, 40184> velocity=<-3, -4>
position=<-49884, -9847> velocity=< 5, 1>
position=<-29868, 10167> velocity=< 3, -1>
position=< 50187, 30182> velocity=<-5, -3>
position=< 30191, 20171> velocity=<-3, -2>
position=< -9856, -19858> velocity=< 1, 2>
position=<-19889, -29859> velocity=< 2, 3>
position=< 10134, 50191> velocity=<-1, -5>
position=<-29893, 10167> velocity=< 3, -1>
position=< -9834, 10169> velocity=< 1, -1>
position=< 50184, 30184> velocity=<-5, -3>
position=< 30146, 50192> velocity=<-3, -5>
position=<-29856, -39864> velocity=< 3, 4>
position=< 20167, 20174> velocity=<-2, -2>
position=< 50168, 40185> velocity=<-5, -4>
position=<-39854, 50200> velocity=< 4, -5>
position=<-19857, 20170> velocity=< 2, -2>
position=<-39851, -9851> velocity=< 4, 1>
position=< 10160, -49873> velocity=<-1, 5>
position=< 20173, 20173> velocity=<-2, -2>
position=<-39901, 50191> velocity=< 4, -5>
position=<-29856, -29858> velocity=< 3, 3>
position=<-39911, 50196> velocity=< 4, -5>
position=<-29864, 10172> velocity=< 3, -1>
position=<-39911, 20174> velocity=< 4, -2>
position=<-49894, -29861> velocity=< 5, 3>
position=< 30174, -9851> velocity=<-3, 1>
position=<-39855, -9850> velocity=< 4, 1>
position=<-19848, -39866> velocity=< 2, 4>
position=<-19865, 10165> velocity=< 2, -1>
position=< -9885, 30186> velocity=< 1, -3>
position=<-49861, 40184> velocity=< 5, -4>
position=< -9850, 50198> velocity=< 1, -5>
position=< 30154, 10167> velocity=<-3, -1>
position=< 20187, 20173> velocity=<-2, -2>
position=< 30197, -9851> velocity=<-3, 1>
position=<-49902, 50199> velocity=< 5, -5>
position=<-19888, -19858> velocity=< 2, 2>
position=<-39900, -49875> velocity=< 4, 5>
position=<-19865, 10170> velocity=< 2, -1>
position=<-49862, -9845> velocity=< 5, 1>
position=< -9871, -9851> velocity=< 1, 1>
position=<-19845, -19858> velocity=< 2, 2>
position=< 20133, 40188> velocity=<-2, -4>
position=< -9832, 10167> velocity=< 1, -1>
position=< 50165, -19849> velocity=<-5, 2>
position=<-49862, 40189> velocity=< 5, -4>
position=< -9854, -19854> velocity=< 1, 2>
position=< -9853, -29862> velocity=< 1, 3>
position=<-19878, -29856> velocity=< 2, 3>
position=< 40145, -9843> velocity=<-4, 1>
position=< 30143, -29864> velocity=<-3, 3>
position=<-29880, 20175> velocity=< 3, -2>
position=< 10136, -39868> velocity=<-1, 4>
position=< 10133, -19858> velocity=<-1, 2>
position=< 20139, -29864> velocity=<-2, 3>
position=<-39899, 50200> velocity=< 4, -5>
position=< 20155, -9847> velocity=<-2, 1>
position=<-29880, -49876> velocity=< 3, 5>
position=<-29856, -29857> velocity=< 3, 3>
position=<-39903, 40189> velocity=< 4, -4>
position=< 50184, 20179> velocity=<-5, -2>
position=< 10144, 30186> velocity=<-1, -3>
position=< 10142, -19858> velocity=<-1, 2>
position=<-29879, 30186> velocity=< 3, -3>
position=< -9866, -9842> velocity=< 1, 1>
position=<-19836, -9851> velocity=< 2, 1>
position=<-39875, 20177> velocity=< 4, -2>
position=<-39866, 30181> velocity=< 4, -3>
position=< 40147, 20170> velocity=<-4, -2>
position=< 10181, -39868> velocity=<-1, 4>
position=<-29880, 50198> velocity=< 3, -5>
position=< -9890, -49877> velocity=< 1, 5>
position=< -9866, -9850> velocity=< 1, 1>
position=< 30162, -39866> velocity=<-3, 4>
position=< 20171, 50193> velocity=<-2, -5>
position=<-39855, -49876> velocity=< 4, 5>

31
2018/day10/testinput Normal file
View File

@ -0,0 +1,31 @@
position=< 9, 1> velocity=< 0, 2>
position=< 7, 0> velocity=<-1, 0>
position=< 3, -2> velocity=<-1, 1>
position=< 6, 10> velocity=<-2, -1>
position=< 2, -4> velocity=< 2, 2>
position=<-6, 10> velocity=< 2, -2>
position=< 1, 8> velocity=< 1, -1>
position=< 1, 7> velocity=< 1, 0>
position=<-3, 11> velocity=< 1, -2>
position=< 7, 6> velocity=<-1, -1>
position=<-2, 3> velocity=< 1, 0>
position=<-4, 3> velocity=< 2, 0>
position=<10, -3> velocity=<-1, 1>
position=< 5, 11> velocity=< 1, -2>
position=< 4, 7> velocity=< 0, -1>
position=< 8, -2> velocity=< 0, 1>
position=<15, 0> velocity=<-2, 0>
position=< 1, 6> velocity=< 1, 0>
position=< 8, 9> velocity=< 0, -1>
position=< 3, 3> velocity=<-1, 1>
position=< 0, 5> velocity=< 0, -1>
position=<-2, 2> velocity=< 2, 0>
position=< 5, -2> velocity=< 1, 2>
position=< 1, 4> velocity=< 2, 1>
position=<-2, 7> velocity=< 2, -2>
position=< 3, 6> velocity=<-1, -1>
position=< 5, 0> velocity=< 1, 0>
position=<-6, 0> velocity=< 2, 0>
position=< 5, 9> velocity=< 1, -2>
position=<14, 7> velocity=<-2, 0>
position=<-3, 6> velocity=< 2, -1>