Bop it Arduino Circuit Playground

I'm trying to create a bop it game with 2 players where:
Green LED – Gyro Sensor (Z-axis)
Red LED – Temperature sensor
Blue LED – Sound sensor
Yellow LED – Light Sensor
However when I press the left button to start the game, only the yellow light above GND goes on and doesn't respond to anything, what can be wrong with my code?

long randNumber;
int temp;
int val;
int number;
int score;
boolean state;
int light;
uint8_t pixeln = 0;
int sound;
int shake;
unsigned long lastmillis = 0;
boolean game;
const byte numPins = 7;
byte pins[] = {0, 1, 2, 3, 4, 5, 6, 7};


int player1 = 0;
int player2 = 0;
#include "Adafruit_CircuitPlayground.h"

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
CircuitPlayground.begin();
CircuitPlayground.clearPixels();
//timer();

}

void loop() {
  if (digitalRead(4) == HIGH && digitalRead(19) == LOW){
    Serial.println("Button Pressed");  
    lastmillis = millis();
  
    for (int i=0; i < 10; i  ){
      randNumber = random(4);
      //Serial.println("Loop");
 

      switch (randNumber){
        //Serial.println("Switch");
        case 0:
          while (pixeln < 10){
            CircuitPlayground.setPixelColor(pixeln  , 255,0,0);
            CircuitPlayground.strip.show();
          }
          pixeln = 0;
          state = true;
          temp = analogRead(A0);
      //Serial.println(temp);
          while (state == true) {
            val = analogRead(A0);
            

number = val - temp;
            if (number > 10){
              score  ;
              state = false;
          //Serial.println("Temperature");
              delay(500);
            }
        
          }
          break;
        case 1:
          while (pixeln < 10){
            CircuitPlayground.setPixelColor(pixeln  , 127,127,0);
            CircuitPlayground.strip.show();
           }
          pixeln = 0;
          state = true;
          light = analogRead(A5);
        //Serial.println(light);
          while (state == true) {
            val = analogRead(A5);
            number = light - val;
            if (number > 20){
              score  ;
              state = false;
              //Serial.println(number);
              delay(500);
            }
     
          }
          break;
        case 2:
          while (pixeln < 10){
            CircuitPlayground.setPixelColor(pixeln  , 0,0,255);
            CircuitPlayground.strip.show();
          }
          pixeln = 0;
          state = true;
          sound = analogRead(A4);
          //Serial.println(sound);
          while (state == true) {
            val = analogRead(A4);
            number = val - sound;
            if (number > 50){
              score  ;
              state = false;
              //Serial.println(number);
              delay(500);
          }
        
        }
          break;
        case 3:
          while (pixeln < 10){
          CircuitPlayground.setPixelColor(pixeln  , 0,255,0);
          CircuitPlayground.strip.show();
        
          }
          pixeln = 0;
        
          val = CircuitPlayground.motionZ();
          //Serial.println(val);
          state = true;
          while (state == true) {
            shake = CircuitPlayground.motionZ();
            number = val - shake;
          //Serial.println(number);
            if (number > 15 or number < -15){
              score  ;
              state = false;
            //Serial.println("shake");
              delay(500);
            }
        
          }
          break;
         case 4:
             CircuitPlayground.clearPixels();
             CircuitPlayground.setPixelColor(0, 0,255,0);
             CircuitPlayground.setPixelColor(1, 0,255,0);
             CircuitPlayground.strip.show();
             delay(3000);
      
          break;       
         case 5:
             CircuitPlayground.clearPixels();
             CircuitPlayground.setPixelColor(3, 255,0,0);
             CircuitPlayground.setPixelColor(4, 255,0,0);
             CircuitPlayground.strip.show();
             delay(3000);
          break;       
         case 6:
             CircuitPlayground.clearPixels();
             CircuitPlayground.setPixelColor(5, 127,0,255);
             CircuitPlayground.setPixelColor(6, 127,0,255);
             CircuitPlayground.strip.show();
             delay(3000);
          break;       
         case 7:
             CircuitPlayground.clearPixels();
             CircuitPlayground.setPixelColor(8, 255,128,0);
             CircuitPlayground.setPixelColor(9, 255,128,0);
             CircuitPlayground.strip.show();
             delay(3000);
      
      }
    }
  if (CircuitPlayground.slideSwitch()) {
    player1 = (millis() - lastmillis) / 1000;
    Serial.println(player1);
    CircuitPlayground.clearPixels();
    byte num = player1;
    for (byte i=0; i < numPins; i  ){
      byte state = bitRead(num, i);
      if (state == 1){
        CircuitPlayground.setPixelColor(pins[i], 255,255,255);
        CircuitPlayground.strip.show(); 
      }
     
    }
  } else {
    player2 = (millis() - lastmillis) /1000;
    
    Serial.println(player2);
    CircuitPlayground.clearPixels();
    byte num = player2;
    for (byte i=0; i < numPins; i  ){
      byte state = bitRead(num, i);
      if (state == 1){
        CircuitPlayground.setPixelColor(pins[i], 255,255,255);
        CircuitPlayground.strip.show(); 
      }
    }}
CircuitPlayground.playTone(330, 500);
  }
while (digitalRead(19) == HIGH && digitalRead(4) == LOW){  
        if (player1 < player2){
          CircuitPlayground.clearPixels(); 
          delay(250);
          for (int i =0; i < 5; i  ){
          CircuitPlayground.setPixelColor(i, 255,255,255);
          CircuitPlayground.strip.show();
          }
          delay(250);
          CircuitPlayground.clearPixels();
        }
        else if (player1 > player2){
          CircuitPlayground.clearPixels(); 
          delay(250);
          for (int i =5; i < 10; i  ){
          CircuitPlayground.setPixelColor(i, 255,255,255);
          CircuitPlayground.strip.show();
          }
          delay(250);
          CircuitPlayground.clearPixels();
        }
        else {
          CircuitPlayground.clearPixels(); 
          delay(250);
          for (int i =0; i < 10; i  ){
          CircuitPlayground.setPixelColor(i, 255,255,255);
          CircuitPlayground.strip.show();
          }
          delay(250);
          CircuitPlayground.clearPixels();
        }
  }
if (digitalRead(19) == HIGH && digitalRead(4) == HIGH){
  player1 = 0;
  player2 = 0;
  for (int a =0; a < 10; a  ){
    CircuitPlayground.clearPixels(); 
     delay(100);
     for (int i =0; i < 10; i  ){
       CircuitPlayground.setPixelColor(i, CircuitPlayground.colorWheel(25 * i));
       CircuitPlayground.strip.show();
     }
     delay(100);
     CircuitPlayground.clearPixels();
  }
  
}
  

}

You don't increment 'i' so the loop sits at i=0 forever. Is that a problem? You probably meant:
for (int i = 0; i < 10; i++) {

Similar in a BUNCH of other loops.

1 Like

What board are you using? What version of the IDE? I'm trying to use Arduino 1.8.13 but the built-in Adafruit_CircuitPlayground library doesn't compile!

I'm using the Arduino Circuit Playground Express and running the same IDE

OK. Now that I know which board to pick I can get it to compile. The compiler points out the four places where you use "score. ;" as a statement that does nothing. Perhaps you meant "score++;"?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.