   p1Win = false;
   p2Win = false;
   gameOver = 0;
-}
-
-
-
+  numServes = 0;
+}
+
+
+

#define P1PIN           8
#define P1LIGHTPIN     12
#define P2PIN           9
#define P2LIGHTPIN     13
#define SPEAKERPIN      6
#define LONGPRESS_TIME 25
#define LATCH 4
#define CLK   3
#define DATA  2
#define INACTIVEMILLIS 1200000 // 20 minutes

// Seven Segment Display Handling
byte DigitBytes[10]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x67};

// Button handling
enum { BUTTON_NONE=0, BUTTON_SHORT, BUTTON_LONG};

class Button {
  public:
    Button(int pin, int longpress_time=LONGPRESS_TIME);
    void init();
    int handle();
  
  protected:
    boolean pressed;
    int counter;
    const int pin;
    const int longpress_time;
};

Button::Button(int p, int t) : pin(p), longpress_time(t)
{
}

void Button::init()
{
  pinMode(pin, INPUT);
  digitalWrite(pin, HIGH);
  pressed = false;
  counter = 0;
}

int Button::handle()
{
  int event;
  int now_pressed = !digitalRead(pin);
  
  if (!now_pressed && pressed) {
    if (counter < longpress_time)
      event = BUTTON_SHORT;
    else
      event = BUTTON_LONG;
  } else {
    event = BUTTON_NONE;
  }
  
  if (now_pressed) {
    ++counter;
  } else {
    counter = 0;
  }
    
  pressed = now_pressed;
  return event;
}

// Victory Song
class VictorySong {

      blinkToggle = !blinkToggle;
    }
  }

  // Reset the game when requested
  if (gameOver && requestReset) {
    resetGame();
  }
  
  delay(20);
}

