#include <Wire.h>
#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>
#include <HTTPClient.h>
#include <stdio.h>

WiFiMulti wifiMulti;


void setup(){
  //sets up the board 
  Serial.begin(115200);
  Wire.begin(33, 32, 400000);   
  Wire.beginTransmission(0x68);
  Wire.write(0x6B); 
  Wire.write(0);    
  Wire.endTransmission(true);
  
  pinMode(14, INPUT); //1 red
  pinMode(27, INPUT); //2 green
  pinMode(26, INPUT); //3 blue
  pinMode(25, INPUT); //4 yellow


  for(int t = 4; t > 0; t--){
    Serial.printf("[SETUP] WAIT %d...\n", t);
    Serial.flush();
    delay(1000);
  }
  wifiMulti.addAP("OSU_Access", "");
}



  

  
void loop(){
  int number = 1;
  unsigned long long currentTime = millis();
  int combo[4] = {1,2,3,4};
  int input[4];


      for(int i = 0; i < 4; i++){
        while(digitalRead(27)+digitalRead(26)+digitalRead(25)+digitalRead(14) != 0){
            Serial.println(i);
        }
        currentTime = millis();
        while(digitalRead(27)+digitalRead(26)+digitalRead(25)+digitalRead(14) == 0){
          if(currentTime+2000 < millis())
            i = 0;
            Serial.println(i);
        }
        
        if(digitalRead(14) == 1){
          input[i] = 1;}
        if(digitalRead(27) == 1){
          input[i] = 2;}
        if(digitalRead(26) == 1){
          input[i] = 3;}
        if(digitalRead(25) == 1){
          input[i] = 4;}     
      }  


           
    int iscorrect = 0;
    for(int i; i < 4; i++){
      if(input[i] == combo[i])
        iscorrect++;
    }   
      if(iscorrect == 4){
        Serial.print("correct");
        number = 1;
      }else{
        Serial.print("incorrect");
        number = 2;
      }
    
  
    String snumber = String(number);
          
  for(int i = 0; i < 2; i++){
    Serial.println(i);
    if((wifiMulti.run() == WL_CONNECTED)) {
        HTTPClient http;
        http.begin("https://web.engr.oregonstate.edu/~kirkcar/Final%20Project.php");
        http.addHeader("Content-Type", "application/x-www-form-urlencoded");
        String httpRequestData = snumber;
        
        Serial.println(httpRequestData);
       
        int httpCode = http.POST(httpRequestData);
        if(httpCode > 0) {
          if(httpCode == HTTP_CODE_OK){
            String payload = http.getString();
            Serial.println(payload);
          } else {
            Serial.printf("[HTTP] GET... code: %d\n", httpCode);
          }      
        }
        http.end(); 
    }
    snumber = "3";
  }
}
