On the Subject of Roshambo

No unnaturally long names. No overwhelming number of options. Just a simple game made complex by mind-readers and time-travelers.

  • This module contains three buttons showing the hand gestures for Rock-Paper-Scissors.
  • The buttons will be coloured red, yellow, or blue. They will also be in different positions on the module, constrained to a 3x3 grid.
  • To solve the module, you must win a 32-player Roshambo (Rock-Paper-Scissors) tournament by correctly predicting who your opponents will be, and what they will play.

Determining the Tournament Structure

The tournament has 32 total contestants, consisting of you (*), 3 special guests (-), 27 regular contestants (# or letter), and the long-time reigning champion, the Rock Paper Wizard (!).

The tournament has 5 rounds of 1v1s where half of the current contestants get eliminated each round. To determine which contestants will face each other off,

  • Take the serial number and convert each character to its word equivalent (0=ZERO, A=ALPHA). Use Appendix I: NATO Phonetic Alphabet Letters at the bottom of this manual.
  • Concatenate all of these words and append the alphabet.
  • Remove all duplicate letters, keeping the left-most to make a 26-letter key.
  • Concatenate all numbers in the serial number, and modulo 27. Insert a '#' after the letter at this position (0 means put it at the beginning)
  • Place a '*' at the beginning, and a '!' at the end.
  • Place a '-' at positions 15, 16, and 23 (0-indexed).
  • This will yield a 32-character string. Call this the tournament key. Each character represents a contestant in order from lowest seeded to highest seeded, left-to-right. (You are seeded 0, The Rock Paper Wizard is seeded 31)

Example:

Serial number: 2V5BQ9

TWOVICTORFIVEBRAVOQUEBECNINEABCDEFGHIJKLMNOPQRSTUVWXYZ

TWOVICRFEBAQUNDGHJKLMPSXYZ

259 % 27 = 16, TWOVICRFEBAQUNDG#HJKLMPSXYZ

*TWOVICRFEBAQUN--DG#HJK-LMPSXYZ!

Each round, split the tournament key into pairs. Each contestant will play against the other contestant in their pair. If a contestant loses, remove their character from the tournament key, as they are eliminated. If the contestant ties, the contestant with the lower seed is automatically eliminated (due to time constraints). At the end of each round, concatenate all of the winners to make a new tournament key. Repeat until you have a single winner.

Determining the Moves for Regular Contestants

Each regular contestant is represented by a letter (or #) and will pick their moves for the first 3 rounds based off of this letter.

  • Take the letter's alphabetical position (A1Z26, #=0).
  • Convert this number to ternary.
  • Prepend zeros until the number is 3 digits long.
  • Reverse the number.
  • Convert each digit to a move (0=Rock, 1=Paper, 2=Scissors).
  • These are the moves each contestant will pick each round left-to-right.

For round 4, the contestant will freeze up as they did not think they would make it this far. They will look to the module's surface to determine their next move.

  • If the contestant is seeded 0-15, they will pick the input furthest up, disregarding ties.
  • If the contestant is seeded 16-31, they will pick the input furthest left, disregarding ties.
  • If all three inputs are tied, they will pick RYB(lit indicators,-1, unlit indicators)*.

Regular contestants are unable to make it to round 5 under normal circumstances as it is a 1v1 between the Rock Paper Wizard and you. If this happens, you have bigger problems.


Determining the Moves for Special guests

Special guests are paid actors and will always pick the move that will get them to lose.


*See Appendix: RSB-FUNCT for clarification.

Determining the Moves for the Rock Paper Wizard

For the first 4 rounds, the Rock Paper Wizard will use their mind-reading powers to always pick the exact move required to beat their opponent.

Conveniently, their powers will be disabled on round 5 (due to something about moon phases), and you will have a chance to best them. But do not be fooled, as their decision making is extremely complex. The Rock Paper Wizard will create a list of 8 moves, and condense* this list to get their final move. To obtain each entry of that list,

  1. Condense* the Rock Paper Wizard's moves from rounds 1 to 4 in order.
  2. Pick RYB(AA batteries / 2, -1, D batteries).
  3. Pick RYB(number of inputs that lie on the corners of the module, dead-center times 5, cardinal edges).
  4. Pick RYB(number of serial number letters that match a letter in "ROCK", "PAER", "SIZX")
  5. Pick RYB(number of serial number digits that match a digit in "089", "135", "267")
  6. Without wrapping,
    • If all the inputs on the module are orthoganly adjacent to another input, take the red input.
    • Otherwise, if all the inputs on the module are orthoganly or diagonally adjacent to another input, take the blue input.
    • Otherwise, take the yellow input.
  7. Pick RYB(port plates containing any parallel or serial ports, -1, port plates containing any RJ, DVI, PS2, or RCA ports).
  8. Take the move that beats the condensed* list of your moves from rounds 1 to 4.

Determining Your Moves

To win the tournament, you must pick the move that will beat each of your opponents each round. After the previous calculations, you should have a list of 5 moves for each of the 5 rounds.


*See Appendix: RSB-FUNCT for clarification.

Competing in the Tournament

Due to the time constraints, the tournament will happen very quickly. Upon pressing a button on the module, the following fanfare will play.

For each of your moves, you must be holding down the associated button on the third beat of every "Dun-Dun-Dudun!". The first one is 3 seconds into the fanfare. To help you, all inputs will be white on the first beat, gray on the second, and your opponent's move will be lit up on the third. Again, you must be holding your desired move when this happens.

If you successfully defeat all of your opponents and dethrone the Rock Paper Wizard, you will immediately receive the grand prize of a solved Roshambo module, and all of the buttons will turn green.

If at any point you are eliminated, you will be immediately kicked out of the tourney and will receive a strike as a "loser's fee" and all of the buttons will turn red. However, since you are a time-traveler, you will immediately return to before the tournament starts shortly after receiving this fee.

Appendix: RSB-FUNCT

There are two reoccuring functions that appear in this specific Roshambo tournament.

Condense

The condense function is used on a list of moves, and will return one move. The length of this list will always be a power of two. To condense a list of moves...

  • Split the list into pairs.
  • For each pair, convert the two moves into one move.
    • If both moves are the same, take same move.
    • Otherwise, take the move that is neither of the moves in the pair.
  • Concatenate all of the new moves.
    • If there is exactly one move left, return this move.
    • Otherwise, condense this new list of moves.

Pick RYB(x,y,z)

A Pick RYB(x,y,z) function is always applied to three numbers (x, y, z) and returns a move. To figure out which move to return, compare the three numbers.

  • If all three are different values, look at the greatest number.
  • Otherwise, if two are the same, look at the number that is different from others.
  • Otherwise, look at y.
  • If the number being looked at is x/y/z use the move that is red/yellow/blue.