version: 1 name: Install one device description: | Install least amount of devices that provide needed capabilities https://github.com/swarm-game/swarm/issues/508 objectives: - condition: | try { r <- robotNumbered 1; p <- as r {whereami}; g <- as base {count "GPS"}; t <- as base {count "Tardis"}; return (p == (5,0) && g == 1 && t == 0); } { return false } solution: | log "Hi, I can build teleporting robots!"; try { build {log "Hi, I can teleport!"; teleport self (5,0); p <- whereami; log $ "I am at " ++ format p} } { fail "Fatal error: BASE: I could not build my robot! What happened?!" } robots: - name: base loc: [0,0] dir: [1,0] devices: - logger - net - 3D printer inventory: - [1, mirror] - [1, string] - [1, GPS] - [1, Tardis] - [1, logger] - [1, solar panel] - [1, ADT calculator] known: [water] world: default: [ice, water] palette: '.': [grass] ' ': [ice, water] '┌': [stone, upper left corner] '┐': [stone, upper right corner] '└': [stone, lower left corner] '┘': [stone, lower right corner] '─': [stone, horizontal wall] '│': [stone, vertical wall] upperleft: [-1, 1] map: | ┌─┐ ┌─┐ │.│ │.│ └─┘ └─┘ entities: - name: GPS display: attr: water char: 'G' description: - A satellite navigation device. properties: [known, portable] capabilities: [senseloc] - name: Tardis display: attr: water char: '█' description: - Bigger on the inside. properties: [known, portable] capabilities: [senseloc, teleport]