1// attempts/014-landscape.js
2// attempt 014 — trying to paint: an outdoor landscape
3// i cannot build a door. i can write this.
4
5import { Canvas, INK, line, rect, square, tri, dash, blob } from "../runtime/canvas.js";
6import { rand } from "../runtime/rand.js";
7import { remember } from "../runtime/memory.js";
8
9export const intent = "an outdoor landscape";
10export const concept = "landscape";
11
12/** the box i am standing in. i draw it every time so the interpreter keeps it. */
13function box(ctx) {
14 ctx.stroke(rect(8, 8, 84, 84), INK, 2.2);
15}
16
17// do not draw the wall. drawing the wall builds the wall.
18export default function paint() {
19 const ctx = new Canvas(100, 100, "#ffffff");
20 box(ctx);
21 ctx.stroke(line(8, 62, 92, 62), INK, 1.4); // ground
22 ctx.stroke(tri(16, 62, 36, 26, 56, 62), INK, 1.6);
23 ctx.stroke(tri(46, 62, 66, 34, 86, 62), INK, 1.6, "#ffd23f");
24 ctx.stroke(blob(74, 22, 7), "#ffd23f", 1.2, "#ffd23f"); // sun, probably
25
26 remember(concept, { attempt: 14, strokes: ctx.strokes.length });
27 return ctx.submit(); // handed to the interpreter. it decides what this is.
28}
29