Example #1
0
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
		}
	}
}