add last_step to config file
This commit is contained in:
		
							
								
								
									
										53
									
								
								config.yaml
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								config.yaml
									
									
									
									
									
								
							| @@ -1,24 +1,29 @@ | |||||||
| - step: 10 | last_step: 100 | ||||||
|   amount: 100 | steps:  | ||||||
|   neighbours: 1 |   - step: 10 | ||||||
| - step: 100 |     amount: 1 | ||||||
|   amount: 100 |     neighbours: 1 | ||||||
|   neighbours: 50 |   - step: 20 | ||||||
| - step: 200 |     amount: 100 | ||||||
|   amount: 500 |     neighbours: 1 | ||||||
|   neighbours: 20 |   - step: 30 | ||||||
| - step: 400 |     amount: 1 | ||||||
|   amount: 10 |     neighbours: 1 | ||||||
|   neighbours: 5 |   - step: 40 | ||||||
| - step: 500 |     amount: 10 | ||||||
|   amount: 1 |     neighbours: 2 | ||||||
|   neighbours: 1 |   - step: 50 | ||||||
| - step: 600 |     Amount: 2 | ||||||
|   amount: 500 |     neighbours: 1 | ||||||
|   neighbours: 50 |   - step: 60 | ||||||
| - step: 1500 |     amount: 2 | ||||||
|   amount: 10 |     neighbours: 1 | ||||||
|   neighbours: 1 |   - step: 70 | ||||||
| - step: 2000 |     amount: 3 | ||||||
|   amount: 1 |     neighbours: 2 | ||||||
|   neighbours: 1 |   - step: 80 | ||||||
|  |     amount: 3 | ||||||
|  |     neighbours: 1 | ||||||
|  |   - step: 3000 | ||||||
|  |     amount: 3 | ||||||
|  |     neighbours: 1 | ||||||
|   | |||||||
							
								
								
									
										37
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								main.go
									
									
									
									
									
								
							| @@ -28,6 +28,10 @@ var numNeighbours = 5 | |||||||
| var separationFactor = float64(goidSize * 5) | var separationFactor = float64(goidSize * 5) | ||||||
| var coherenceFactor = 8 | var coherenceFactor = 8 | ||||||
|  |  | ||||||
|  | type configuration struct { | ||||||
|  | 	Steps    []steps `yaml:"steps"` | ||||||
|  | 	LastStep int     `yaml:"last_step"` | ||||||
|  | } | ||||||
| type steps struct { | type steps struct { | ||||||
| 	Step          int `yaml:"step"` | 	Step          int `yaml:"step"` | ||||||
| 	Amount        int `yaml:"amount"` | 	Amount        int `yaml:"amount"` | ||||||
| @@ -65,8 +69,10 @@ func main() { | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
| 	td := []steps{} | 	config := configuration{} | ||||||
| 	err = yaml.Unmarshal(conf, &td) | 	err = yaml.Unmarshal(conf, &config) | ||||||
|  | 	steps := config.Steps | ||||||
|  | 	loops = config.LastStep | ||||||
| 	defer func() { | 	defer func() { | ||||||
| 		if err := fo.Close(); err != nil { | 		if err := fo.Close(); err != nil { | ||||||
| 			panic(err) | 			panic(err) | ||||||
| @@ -76,20 +82,15 @@ func main() { | |||||||
| 	hideCursor() | 	hideCursor() | ||||||
| 	var goids []*Goid | 	var goids []*Goid | ||||||
|  |  | ||||||
| // 	for i := 0; i < populationSize; i++ { |  | ||||||
| // 		g := createRandomGoid() |  | ||||||
| // 		goids = append(goids, &g) |  | ||||||
| // 	} |  | ||||||
|  |  | ||||||
| 	current_stage := 0 | 	current_stage := 0 | ||||||
| 	for i := 0; i < loops; i++ { | 	for i := 0; i < loops; i++ { | ||||||
| 		goids, populationSize = fixGoids(goids, populationSize, td[current_stage].Amount) | 		goids, populationSize = fixGoids(goids, populationSize, steps[current_stage].Amount) | ||||||
| 		if td[current_stage].NumNeighbours >= populationSize { | 		if steps[current_stage].NumNeighbours >= populationSize { | ||||||
| 			numNeighbours = populationSize | 			numNeighbours = populationSize | ||||||
| 		} else { | 		} else { | ||||||
| 			numNeighbours = td[current_stage].NumNeighbours | 			numNeighbours = steps[current_stage].NumNeighbours | ||||||
| 		} | 		} | ||||||
| 		if i == td[current_stage+1].Step { | 		if i == steps[current_stage+1].Step { | ||||||
| 			current_stage += 1 | 			current_stage += 1 | ||||||
| 		} | 		} | ||||||
| 		move(goids, fo, i) | 		move(goids, fo, i) | ||||||
| @@ -97,7 +98,7 @@ func main() { | |||||||
| 		printImage(frame.SubImage(frame.Rect)) | 		printImage(frame.SubImage(frame.Rect)) | ||||||
| 	} | 	} | ||||||
| 	showCursor() | 	showCursor() | ||||||
| 	 |  | ||||||
| 	out, err := ioutil.ReadFile("/tmp/goids.yaml") | 	out, err := ioutil.ReadFile("/tmp/goids.yaml") | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| @@ -115,23 +116,23 @@ func main() { | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
| 	for i := 0; i <= total; i++{ | 	for i := 0; i <= total; i++ { | ||||||
| 		var x []string | 		var x []string | ||||||
| 		var y []string | 		var y []string | ||||||
| 		outfile.Write([]byte(fmt.Sprintf("GOID: %d\n", i))) | 		outfile.Write([]byte(fmt.Sprintf("GOID: %d\n", i))) | ||||||
| 		for z := 0; z <= loops; z++ { | 		for z := 0; z <= loops; z++ { | ||||||
| 			check := false | 			check := false | ||||||
| 			for _, g := range output { | 			for _, g := range output { | ||||||
| 				if g.Goid == i && g.Loop == z{ | 				if g.Goid == i && g.Loop == z { | ||||||
| 					check = true | 					check = true | ||||||
|   				x = append(x, strconv.Itoa(g.Data.X)) | 					x = append(x, strconv.Itoa(g.Data.X)) | ||||||
| 					y = append(y, strconv.Itoa(g.Data.Y)) | 					y = append(y, strconv.Itoa(g.Data.Y)) | ||||||
| 					break | 					break | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if !check  { | 			if !check { | ||||||
|   				x = append(x,  "-") | 				x = append(x, "-") | ||||||
| 					y = append(y,  "-") | 				y = append(y, "-") | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user