From StrategyWiki, the video game walkthrough and strategy guide wiki
Jump to navigation Jump to search

Instructions[edit]

Vowel Incinerator
Send everything from the INBOX to the OUTBOX, except for vowels.

Strategy[edit]

Before you get started, you will notice that all of the vowels have been laid out for you on the floor. In order to complete these stage, you will grab each letter off the INBOX, and check it against all of the vowels to make sure it isn't one, before putting it in the OUTBOX. If it happens to be a vowel, you'll ignore it and move on to the next letter.

To perform the comparisons, you will need to start at box 0 and move down the line through box 4. Box 5 contains a 0, and that will serve two purposes. That 0 will signify that we're done checking vowels, and if we've reached that box, we're safe to send the letter to the OUTBOX. It will also be your initializer for a counter that will keep track of what box you're going to check next. You will reference that value indirectly, and then bump the number up every time you don't have a match.

The resulting code should look like this:

   JUMP     b   -- next search
a:    
   COPYFROM 6   -- get char which is valid by this point
   OUTBOX       -- output
b: 
c:
   -- init next search
   INBOX        -- copy next search char
   COPYTO   6   -- needle
   COPYFROM 5   -- zero
   COPYTO   7   -- idx
d:
   -- search loop
   COPYFROM [7] -- get vowel at idx
   JUMPZ    a   -- if 0, end of vowels
   SUB      6   -- compare with needle
   JUMPZ    c   -- if eq, char is vowel, skip it
   BUMPUP   7   -- inc idx
   JUMP     d   -- check next vowel

-- size 13/13
-- speed 323/316

Optimizing[edit]

The above code meets the size requirements and exceeds the speed requirements, but you might reorder the vowel list, placing most common occurrences first, at the cost of larger size.