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