Watch Out… Again, Sticky Katamari!

1. Circuit Diagram

circuitdiagram

 

 

 

 

 

 

2. Description and Game Rules

“Watch Out, Sticky Katamari!”

You and your partner have been put in charge by the prince to search together and find the right pieces in order to increase the size of your sticky Katamari before the other team does! Pay close attention and play carefully - not only do you and your teammate have to guide each other to victory, you all better watch out for those gum wads and land mines too! YowZAA! 

OBJECTIVE:

To acquire a complete “KATAMARI SET” before the other team does

OPERATIONAL RULES:

1. 64 wooden game chips are mixed and placed face down on the 8-unit by 8-unit grid.

2. Higher die roll determines starting team.

3. Player 1 from team 1 flips a chip over - if the chip is a ‘person’, player 2 proceeds (A), if the chip is not a ‘person’, it is placed back face down in same spot and team 1’s turn is over (B).

(A) Player 2 from team 1 flips a chip over and tries to match Player 1’s chip.

(B) Player 1 from team 2 flips a chip over - if the chip is a ‘person’, player 2 proceeds (C), if chip is not a ‘person’, chip is placed back face down in same spot and team 2’s turn is over.

(C) Player 2 from team 2 flips a chip over and tries to match Player 1’s chip.

4. If player 2 turns a chip over and successfully matches the same chip type, the team keeps the ’set’, their team button is pushed to establish progress, and player 1 continues to try and find all set types in the correct size order.

IMPORTANT: Sets can only be collected in the following order: Person, Bench, Car, Tree, Building, and Giant Octopus! (as shown on the board)

5. The game ends when a team has acquired a complete “KATAMARI SET

6. If turned over successfully, multiple pairs of a same set can be collected once that level has been reached.

ROLLING THE DICE:

- Before each team plays, the die is rolled to determine how much VERBAL HELP players can give each other finding the right cards.

1 = one word i.e. “up”

2 = two words i.e. “bottom right”

3 = three words i.e. “three from mine” etc…

There is absolutely NO POINTING/GESTURING allowed throughout the game.

SPECIAL CARDS:

Bubble Gum” chip - your KATAMARI is stuck, lose a turn! IMPORTANT: Keep card turned up after it has been landed on.

Land Mine” chip - your KATAMARI blew up! Take off ALL sets and place them back face down randomly into empty grid spaces without looking/showing others. IMPORTANT: Keep card turned up after it has been landed on.

3. 

 

/*

Watch Out, Sticky Katamari!

Final Boardgame

I would like to thank the following people for their help throughout this project: George Brower, 

Gleb Denisov, David Elliott, and Eddo Stern. My game would not have been possible without their  

assistance. Thanks, guys!

*/

 

int playerOnePins[] = { 2, 3, 4, 5, 6, 7};

int playerTwoPins[] = { 8, 9, 10, 11, 12, 13};

 

int numPins = 6;

 

int val1, val2;

int prevVal1, prevVal2;

 

int playerOneScore = -1;

int playerTwoScore = -1;

 

int buttonOne = 14;

int buttonTwo = 15;

 

int winLoop = 0;

 

void setup() {

//Serial.begin(9600);

  for (int i = 0; i < numPins; i++) {

    pinMode(playerOnePins[i], OUTPUT);

    pinMode(playerTwoPins[i], OUTPUT);

  }

}

 

boolean wasPushedOne() {

  prevVal1 = val1;

  val1 = digitalRead(buttonOne);

  return val1 == HIGH && prevVal1 == LOW;

}

 

boolean wasPushedTwo() {

 

  prevVal2 = val2;

  val2 = digitalRead(buttonTwo);

  return val2 == HIGH && prevVal2 == LOW;

}

 

void loop() {

  if (playerTwoScore == 6 || playerOneScore == 6) {

    if(winLoop < 4) {

      win();

    } else {

      reset();

    }

  } 

  else {

  //Serial.print(playerOneScore);

  //Serial.print(” : “);

  //Serial.println(playerTwoScore);

    if (wasPushedOne()) {

      playerOneScore++;

    }

 

    if (wasPushedTwo()) {

      playerTwoScore++;

    }

 

    for (int i = 0; i < numPins; i++) {

      digitalWrite(playerOnePins[i], LOW);

      digitalWrite(playerTwoPins[i], LOW);

    }

 

    for (int i = 0; i < playerOneScore; i++) {

      digitalWrite(playerOnePins[i], HIGH);

    }

 

    for (int i = 0; i < playerTwoScore; i++) {

      digitalWrite(playerTwoPins[i], HIGH);

    }

  }

}

 

void win() {

 

  int i;

 

  for (i = 0; i < numPins; i++) {

    digitalWrite(playerOnePins[i], HIGH);   // turning it on,

    delay(40);                  // pausing,

    digitalWrite(playerOnePins[i], LOW);    // and turning it off.

    delay(40);

  }

 

  for (i = numPins - 1; i >= 0; i–) { 

    digitalWrite(playerTwoPins[i], HIGH);

    delay(40);

    digitalWrite(playerTwoPins[i], LOW);

    delay(40);

  }

 

  winLoop++;

}

 

void reset() {

  int i;

 

  for (i = 0; i < numPins; i++) {

    digitalWrite(playerOnePins[i], LOW);

    digitalWrite(playerTwoPins[i], LOW);

  }

 

  winLoop = 0;

  playerOneScore = 0;

  playerTwoScore = 0;

}

 

One Comment

  1. Error: Unable to create directory /data/classes/web/Winter09/157A/wp-content/uploads/2019/03. Is its parent directory writable by the server? NGO
    Posted March 18, 2009 at 6:52 pm | Permalink

    I didn’t get to play this but the flashy LEDs were brilliant!!