Thursday, October 1, 2015

rock paper led game

Led rock paper scissors game. I had to use a hardware reset because it worked and I couldn't figure out how to reset the states without having a mess saved in my variables. 



void setup() {
  Serial1.begin(9600);
  pinMode(3, LOW);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(9, LOW);
  pinMode(10, LOW);
  pinMode(11, LOW);
  Serial1.println('z');
}

int gamestate = 0;
char play = ' ';
int led ;
int x = 0;
char user;
char op;
int player;
char oh;
int i = 0;


void loop() {

  int buttonState = digitalRead(22);
  int value = analogRead(A7);

  if (Serial1.available() > 0 ) {
    op = Serial1.read();
  }




  if (gamestate == 0 && player == 0) {
    int knob = value * (255 / 1024.0);
    int player = 0;
    led = 0;
    int buttonState = digitalRead(22);
    Serial1.println("z");
    if (buttonState == HIGH) {
      gamestate = 2;
      player = knob;
      oh = 'o';
      if (player <= 85) {
        play = 'r';
      }
      if (player > 85 && player <= 170) {
        play = 'b';
      }
      if (player > 170 && player <= 255) {
        play = 'g';
      }
    }
  }

  if (gamestate == 2) {
    led = 2;
    i = 1;
    Serial1.println(oh);
    if ( led == 2) {
      pinMode(5, LOW);
      pinMode(6, HIGH);
      pinMode(7, HIGH);
    }

    if (op == 'o' && oh == 'o') {
      gamestate = 3;
      Serial1.println(play);
      op = Serial1.read();
      op = Serial1.read();

      if (play == 'r') {
        pinMode(9, HIGH);
        pinMode(10, LOW);
        pinMode(11, LOW);
        Serial1.println(play);
      }
      if (play == 'b') {
        pinMode(9, LOW);
        pinMode(10, LOW);
        pinMode(11, HIGH);
        Serial1.println(play);
      }
      if (play == 'g') {
        pinMode(9, LOW);
        pinMode(10, HIGH);
        pinMode(11, LOW);
        Serial1.println(play);
      }
    }
  }

  if (op == 'r') {
    if (play == 'g') {
      led = 6;
    }
  }
  if (op == 'g') {
    if (play == 'b') {
      led = 6;
    }
  }
  if (op == 'b') {
    if (play == 'r') {
      led = 6;
    }
  }
  if (play == 'r') {
    if (op == 'g') {
      led = 7;
    }
  }
  if (play == 'g') {
    if (op == 'b') {
      led = 7;
    }
  }
  if (play == 'b') {
    if (op == 'r') {
      led = 7;
    }
  }
  if (play == op) {
    led = 8;
  }


  if (led == 7 ) {
    Serial1.println(play);
    Serial1.println(play);
    Serial1.println(play);

    if (play == 'r') {
      pinMode(9, HIGH);
      pinMode(10, LOW);
      pinMode(11, LOW);
    }
    if (play == 'b') {
      pinMode(9, LOW);
      pinMode(10, LOW);
      pinMode(11, HIGH);
    }
    if (play == 'g') {
      pinMode(9, LOW);
      pinMode(10, HIGH);
      pinMode(11, LOW);
    }
  }
  if (led == 8) {
    Serial1.println(play);
    Serial1.println(play);
    Serial1.println(play);
    if (play == 'r') {
      pinMode(9, HIGH);
      pinMode(10, LOW);
      pinMode(11, LOW);
    }
    if (play == 'b') {
      pinMode(9, LOW);
      pinMode(10, LOW);
      pinMode(11, HIGH);
    }
    if (play == 'g') {
      pinMode(9, LOW);
      pinMode(10, HIGH);
      pinMode(11, LOW);
    }
  }

  if (led == 6) {
    Serial1.println(play);
    Serial1.println(play);
    Serial1.println(play);
    if (play == 'r') {
      pinMode(9, HIGH);
      pinMode(10, LOW);
      pinMode(11, LOW);
    }
    if (play == 'b') {
      pinMode(9, LOW);
      pinMode(10, LOW);
      pinMode(11, HIGH);
    }
    if (play == 'g') {
      pinMode(9, LOW);
      pinMode(10, HIGH);
      pinMode(11, LOW);
    }
  }



  // yellow

  if ( led == 0) {
    pinMode(5, HIGH);
    pinMode(6, HIGH);
    pinMode(7, LOW);
  }


  // magenta led

  if ( led == 1) {
    pinMode(5, HIGH);
    pinMode(6, LOW);
    pinMode(7, HIGH);
  }
  // cyan led

  if ( led == 2) {
    pinMode(5, LOW);
    pinMode(6, HIGH);
    pinMode(7, HIGH);
  }

  // flash BLUE
  if ( led == 8 ) {
    x = 0;
    Serial1.println(play);
    Serial1.println(play);
    Serial1.println(play);
    if ( x < 4) {
      pinMode(5, LOW);
      pinMode(6, LOW);
      pinMode(7, HIGH);
      Serial1.println(play);
      Serial1.println(play);
      Serial1.println(play);
      delay(1000);
      pinMode(5, LOW);
      pinMode(6, LOW);
      pinMode(7, LOW);
      Serial1.println(play);
      Serial1.println(play);
      Serial1.println(play);
      delay(1000);
      x++;
    }
    op = 'z';
  }

  // flash WHITE lose

  if (led == 6) {
    Serial1.println(play);
    Serial1.println(play);
    Serial1.println(play);
    x = 0;
    while ( x < 4) {
      pinMode(5, HIGH);
      pinMode(6, HIGH);
      pinMode(7, HIGH);
      Serial1.println(play);
      Serial1.println(play);
      Serial1.println(play);
      delay(1000);
      pinMode(5, LOW);
      pinMode(6, LOW);
      pinMode(7, LOW);
      delay(1000);
      Serial1.println(play);
      Serial1.println(play);
      Serial1.println(play);
      x++;
    }
    op = 'z';
  }

  // flash colors win

  if (led == 7) {
    x = 0;
    Serial1.println(play);
    Serial1.println(play);
    Serial1.println(play);
    while ( x < 3) {
      pinMode(5, LOW);
      pinMode(6, HIGH);
      pinMode(7, HIGH);
      Serial1.println(play);
      Serial1.println(play);
      Serial1.println(play);
      delay(1000);
      pinMode(5, HIGH);
      pinMode(6, LOW);
      pinMode(7, HIGH);
      Serial1.println(play);
      Serial1.println(play);
      Serial1.println(play);
      delay(1000);
      pinMode(5, HIGH);
      pinMode(6, HIGH);
      pinMode(7, LOW);
      delay(1000);
      x++;
    }
    op = 'z';
  }



  // reset
  if (op == 'z' && gamestate == 3) {
    x = 0;
    while (x < 3) {
      pinMode(5, LOW);
      pinMode(6, HIGH);
      pinMode(7, LOW);
      delay(400);
      pinMode(5, LOW);
      pinMode(6, LOW);
      pinMode(7, LOW);
      delay(400);
      x++;
      pinMode(3, HIGH);
    }
  }

}





No comments:

Post a Comment