On the Subject of Beanboozled Again

When a joke goes too far...

The module shows a display with 8 encrypted characters 8 there are also octagonal bean buttons also containing encrypted characters. In order to solve the module press 5 beans in the right order and at the right times.

Section 1: Decrypting the display

The display is encrypted in beanzleglyphs. Look up their corresponding base-36 character in the lookup table below.

Beanzleglyph Lookup Table

The message given is still encrypted. It is one of the words on page 2, however random letters were removed until the word length is 8, then it has been shifted randomly and then it has been encrypted using Spinsquare Cipher with a random coefficient array C, consisting of three coefficients ranging from 0 to 3. These values will be labeled C1, C2 and C3 respectively.

Section 1.1: Spinsquare Cipher

Look up your character to encrypt in the cipher grid (page 2) and call its position the pivot. Rotate your pivot clockwise 90 degrees around the center of the 6x6 grid an amount of times equal to C1. Split the 6x6 grid up into four 3x3 grids. Rotate your pivot clockwise 90 degrees around the center of the 3x3 grid your pivot is in an amount of times equal to C2. Split the 6x6 grid into nine 2x2 grids and rotate the pivot around the center of the 2x2 grid it is in by 90 degrees an amount of times equal to C3. Your new position is the encrypted letter.

Cipher Grid

Once you finish decrypting the display, take the value in the table below, corresponding to the encrypted word. This value will be labeled D.


Section 2: Calculating your bean values

Use the Beanzleglyph Lookup Table to give every bean two base-36 values. One for each orientation. Convert to base-10, add the values together and modulo 36 to get your In value where n is the bean in reading order. Now use BeanF--- on this array. Start at the position matching the last digit of your D value. Always modulo 36 after applying an action. The BeanF--- commands are given by the display colours in reading order in two rows, catenated with all the beans' base colours. Then look up the character corresponding in the BeanF--- table. Use the colours position in the sequence, where necessary subtracted 8 from until within range of 1-8, for the row. Disregard any blacks in the sequence.

Section 2.1: BeanF---

  • <, >: Moves left/right 1 in the array, looping around.
  • +, -: Adds/Subtracts 1 at the current position.
  • [, ]: Start/End of a loop. Runs the loop code five times.
  • ,, .: Retrieves the value at the current position and puts it in memory/Sets current position to the stored value (doesn't if there is none).
  • , , , : Converts the current value to base-36, moves left/right/up/down on the cipher grid and converts the new value back to base-10, looping around.
  • *: Stores position and swaps with the new position as soon as it appears again, then resets memory.
  • , : Encrypts/decrypts the current value using C.

Remove any loop characters that don't have a pair, prioritising small loops. Call the n'th value of the array, which is your bean value, Bn.

Section 2.2: Calculating total

Take the n'th character of the display and take its set numbers using the row for the top half and the column for the bottom bean half. Catenate them as top||bottom. Then append the sum of all four possible set numbers of the n'th bean. Modulo this by (Bn + 1) to get Sn.

Multiply Sn by all values of C concatenated interpreted as base-10 and add Bn to get your total Tn.

Section 3: Calculating bean presses

Take the three colours of each bean and find their column index in the BeanF--- table where Bk = 0 and then from left to right, Ol = 1, Bn = 2, etc.. Multiply the value for the central colour by 241 and add the product of the other two colours to get a beans colour value Vn.

Press the bean with the sixth highest T value, up to the bean with the second highest T value, ordering ties with the latter in reading order being higher, when the following condition matches:

DigitalRoot([The bomb time in seconds] % (Sn + D)) = DigitalRoot(Vn)

Once the module is solved you can eat all the beans. You deserved it.

Appendix Beancolours