Asher Sorensen

This is a place where I put my javascript projects. Feel free to look around. If you find anything interesting and want to chat, contact me at ashersor@gmail.com.

Blackjack

Practice card counting with a playable blackjack game, basic strategy charts, and a recognition trainer to test what you've learned.

A custom Shoe/Deck/Hand model drives the game state in React. The recognition trainer quizzes basic-strategy decisions against random hands, while the full game runs a real dealer/player turn loop with betting.

Beauty of Plants

An exploration of the Algorithmic Beauty of Plants paper - a DOL system, turtle graphics, and an L-system turtle for generating plant-like patterns.

Implements Lindenmayer (L-)systems: a string-rewriting ruleset is applied to an axiom over several iterations, then a turtle-graphics interpreter walks the resulting string, translating each symbol into a move or turn drawn to a canvas.

Hangman

There's a little more to this hangman than you might expect - your first guess is always right, but later guesses might not be so lucky.

The hidden word isn't fixed up front - each guess re-picks whichever remaining word is most adversarial given what you've revealed so far (a nod to Knuth's "absurdist" hangman), so the word can appear to shift under you.

Sudoku

A simple sudoku board and solver.

The solver is a constraint-propagation backtracking search: it tracks used digits per row, column, and 3x3 box as sets, then depth-first searches the empty cells, backtracking whenever a placement violates a constraint.

Etch A Sketch

A troll UX signing form and an exportable etch-a-sketch. No undo button, so be careful - shake the pad to erase.

A canvas etch-a-sketch driven by two "knob" inputs mapped to horizontal/vertical cursor movement, plus a device-motion shake gesture that clears the canvas since there's no undo.

Dividend Calculator

Find out how much stock you'd need to own in a public company to offset your spending habits.

A straightforward formula: after-tax annual spending divided by a stock's after-tax annual dividend per share gives the share count needed, recalculated live as you adjust tax rate, spend, and company.

Solar System

A small canvas-based simulation of the solar system.

A canvas simulation of orbital bodies using simplified Keplerian orbital elements - eccentricity, orbit radius, and orbit speed - to animate each body's position frame by frame.