package day10

import (
	"regexp"
	"strconv"
	"strings"
)

func ParseInput(data []string) []*Point {
	points := []*Point{}
	regex := regexp.MustCompile("position=<(.*)> velocity=<(.*)>")

	for _, line := range data {
		p := &Point{}
		matches := regex.FindSubmatch([]byte(line))
		p.X, p.Y = parseVector2(string(matches[1]))
		p.Xv, p.Yv = parseVector2(string(matches[2]))

		points = append(points, p)
	}

	return points
}

func parseVector2(data string) (int, int) {
	dataBuffer := strings.Split(data, ", ")

	x, err := strconv.Atoi(strings.TrimSpace(dataBuffer[0]))
	if err != nil {
		panic(err)
	}

	y, err := strconv.Atoi(strings.TrimSpace(dataBuffer[1]))
	if err != nil {
		panic(err)
	}

	return x, y
}