func main() { params := getArgs() nodecnt := params.sheeplecnt + params.tvcnt pkt := lib.SimPacket{} pkt.Itermax = int(params.itermax) // TODO overflow check pkt.Torus.W = params.width pkt.Torus.H = params.height pkt.Beliefs = strings.Split(params.beliefs, ",") pkt.Nodes = make([]lib.UserNode, nodecnt) for i := uint(0); i < params.tvcnt; i++ { n := ext.NewTvNode(pkt.Torus) pkt.Nodes[i] = lib.SimNode2UserNode(n) } shmax := params.tvcnt + params.sheeplecnt for i := params.tvcnt; i < shmax; i++ { n := ext.NewSheepleNode(pkt.Torus) pkt.Nodes[i] = lib.SimNode2UserNode(n) } for i, n := range pkt.Nodes { n.Id = i } lib.WriteSimPkt(pkt, os.Stdout) }
func main() { input, inerr := lib.ReadSimPkt(os.Stdin) if inerr != nil { fatal(inerr) } extensions := ext.StdExtensions() outch, simerr := lib.Simulate(input, extensions) if simerr != nil { fatal(simerr) } for out := range outch { werr := lib.WriteSimPkt(out, os.Stdout) if werr != nil { break } } }