version: 1 name: Portal reorientation within a single subworld description: | Turning without turning attrs: - name: portal_in fg: "#ff9a00" bg: "#ff5d00" objectives: - goal: - | `place` the "flower" on the white cell. condition: | j <- robotnamed "judge"; as j {ishere "flower"} solution: | def doN = \n. \f. if (n > 0) {f; doN (n - 1) f} {}; end; doN 23 move; f <- grab; doN 23 move; place f; entities: - name: telepad entrance display: attr: portal_in char: "o" description: - Portal entrance properties: [known] robots: - name: base dir: [0, 1] devices: - branch predictor - calculator - comparator - dictionary - grabber - lambda - logger - strange loop - treads - name: judge dir: [1, 0] system: true display: char: 'J' invisible: true known: [flower] world: name: root default: [blank] palette: '.': [grass] 'f': [grass, flower] 'g': [ice, null, judge] 'B': [grass, null, base] '0': cell: [grass, telepad entrance] waypoint: name: wp0 '1': cell: [grass, telepad entrance] waypoint: name: wp1 '2': cell: [grass, telepad entrance] waypoint: name: wp2 '3': cell: [grass, telepad entrance] waypoint: name: wp3 upperleft: [-1, 1] portals: - entrance: wp0 exitInfo: exit: wp0 reorient: right - entrance: wp1 exitInfo: exit: wp1 reorient: right - entrance: wp2 exitInfo: exit: wp2 reorient: right - entrance: wp3 exitInfo: exit: wp3 reorient: right map: | ......... .1.....2. ......... .B....... .f....... .g....... ......... .0.....3. .........