package main import ( "fmt" h "git.bullercodeworks.com/brian/adventofcode/helpers" ) func main() { pt := h.GetArgNumber(1) if pt != "2" { part1() } else { part2() } } func part1() { devices, queue := NewNetwork() for { //fmt.Print(h.CLEAR_SCREEN) for i, dev := range devices { var packet h.Coordinate if len(queue[i]) > 0 { packet = queue[i][0] } else { packet = h.Coordinate{X: -1, Y: -1} } select { case dest := <-dev.Channel: x := <-dev.Channel y := <-dev.Channel //fmt.Printf("%s: [%d] -> [%d]: {%d, %d}\n", time.Now().Format(time.Stamp), i, dest, x, y) if dest == 255 { fmt.Println(y) return } queue[dest] = append(queue[dest], h.Coordinate{X: x, Y: y}) case dev.Channel <- packet.X: //if packet.X != -1 && packet.Y != -1 { // fmt.Printf("%s: [%d] <-: {%d, %d}\n", time.Now().Format(time.Stamp), i, packet.X, packet.Y) //} if packet.X != -1 { dev.Channel <- packet.Y queue[i] = queue[i][1:] } } //fmt.Println(dev) } } } func part2() { }