Skip to content

dpordomingo/Ant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ant rover

Playing with Go

Maps generated by direct std input:

Command: go run main.go -stdin

  • Will enable direct input for map generation

Maps generated reading a saved map from ./maps folder

Command: go run main.go --mapname=gen1

  • Will read a saved map (in the example: ./maps/gen1.map)

Maps generated randomly:

Command: go run main.go

  • Will generate a random 60x20 map, and will include a Rover and a Target
	░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░ ░░░░░░░░░░░░░░░░
	░░░░░░        ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  ░░░░░░░░░░  ░░░
	░░░░░░        ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  ░░░░░░░ ░░  ░░░
	░░░░░░                 ░░░░░░░░░░░░░░░░░ ░░  ░░░░        ░░░
	░░░░░░        ░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░░        ░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░         ░        ░░░░░░░ ░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░░        ░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░░        ░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░░  ░░░░░░░        ░░░░░░░░░░░░░░ ░░░░░░░░░░░        ░░░
	░░░░░░░░░░░░░░░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░  ░░░░░░░░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░  ░░░░░░░░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░  ░░░░░░░░        ░░░░░░░░░░░░░░░░░░ ░░░░░░░        ░░░
	░░░░░░░░░░░░░          ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░ ░░░░░░░░░          ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░░░🐜░░░░░          ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░
	░░░░░░░░░ ░░░          ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░ 
	░░░░░░░░░░░░░░░        ░░░░░░░░ ░⭙░░░░░░░░░░░░░░░        ░░░
	░░░░░░░░░░░ ░░░        ░░░░░░░░░░░░░░░░░░░░░░░░░░        ░░░

(WIP) Server Side Events (SSE) to render the world over HTTP:

Once the main.go is running with any kind of generation mode, you can navigate to localhost:8888 and access the HTTP engine interface

Random generation framework

Map generator

Example:

mapGenerator := generators.NewMapGenerator(geo.NewSize(60, 20))
mapGenerator.DefineObstacles(2, geo.NewSize(8, 17))
mapGenerator.DefineObstacles(1, geo.NewSize(8, 8))
worldMap := mapGenerator.Generate()

Points inside a map, generated randomly:

Example:

worldTaget := generators.GetPointInMap(worldMap)

Rover that will search a target in a map:

Example:

ant := actors.NewAnt(worldMap)
ant.Init(*antOrigin, *worldTaget)

(ALL TOGETHER) Map with target and rover, randomly generated:

Example:

mapGenerator := generators.NewMapGenerator(geo.NewSize(60, 20))
mapGenerator.DefineObstacles(2, geo.NewSize(8, 17))
mapGenerator.DefineObstacles(1, geo.NewSize(8, 8))
mapGenerator.DefineObstacles(1, geo.NewSize(4, 4))
mapGenerator.DefineObstacles(3, geo.NewSize(2, 3))
mapGenerator.DefineObstacles(20, geo.NewSize(1, 1))

worldMap :=	return mapGenerator.Generate()

worldTaget := generators.GetPointInMap(worldMap)

antOrigin := generators.GetPointInMap(worldMap)
ant := actors.NewAnt(worldMap)
ant.Init(*antOrigin, *worldTaget)

ui.PrintRepresentation(worldMap, worldTaget, ant)

Releases

No releases published

Packages

No packages published