From 5c28ec18e8870f8fb942bf42f4596f40b9acd633 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Fri, 12 Dec 2025 08:39:35 -0800 Subject: [PATCH] pen up/pen down --- README.md | 4 ++-- bun.lock | 1 + src/app.ts | 9 +++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cf1c281..4211d7f 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,8 @@ You can serve the `dist/` folder with any static file server, or even open `inde - `right n` - Turn right n degrees ### Pen Control -- `penup` - Lift pen (don't draw) -- `pendown` - Lower pen (draw) +- `pen up` - Lift pen (don't draw) +- `pen down` - Lower pen (draw) - `setcolor n` - Set pen color (0-15) - `setwidth n` - Set pen width - `clearscreen` - Clear the canvas diff --git a/bun.lock b/bun.lock index 48aefc7..e3171fe 100644 --- a/bun.lock +++ b/bun.lock @@ -1,5 +1,6 @@ { "lockfileVersion": 1, + "configVersion": 0, "workspaces": { "": { "name": "fin", diff --git a/src/app.ts b/src/app.ts index fb12abd..3e8c829 100644 --- a/src/app.ts +++ b/src/app.ts @@ -196,6 +196,14 @@ class Turtle { turtleCtx.restore() } + pen(dir: string) { + switch (dir) { + case 'up': this.penup(); break + case 'down': this.pendown(); break + default: throw "pen only accepts up or down" + } + } + penup() { this.penDown = false } @@ -254,6 +262,7 @@ const globals = { back: async (n: number) => await turtle.back(n), left: async (n: number) => await turtle.left(n), right: async (n: number) => await turtle.right(n), + pen: (dir) => turtle.pen(dir), penup: () => turtle.penup(), pendown: () => turtle.pendown(), setcolor: (n: number) => turtle.setcolor(n),