#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C display(0x27, 20, 4);
const int botonreinicio = 13;
int victor1[]={0,0,24,26,28,30,32,34,36,38,22}; // Declaración de victor1
int victor2[]={0,0,25,27,29,31,33,35,37,39,23}; // Declaración de victor2

void setup() 
{
  Serial.begin(9600);
  display.init();
  display.backlight();
  display.setCursor(5, 0);
  display.print("TIC TAC TOE");
  display.setCursor(7, 2);
  display.print("LEST GO!");
  
  for(int i = 22; i<40; i++){
    pinMode(i, OUTPUT);
  }
  
  for(int a = 2; a<11; a++){
    pinMode(a, INPUT_PULLUP);
  }
  
  pinMode(botonreinicio, INPUT_PULLUP);
}

int turno = 1;

void loop()
{
 for(int g = 2; g<11; g++)
 {
  int victor1[]={0,0,24,26,28,30,32,34,36,38,22};
  int victor2[]={0,0,25,27,29,31,33,35,37,39,23};

  if(digitalRead(botonreinicio) == LOW){
    digitalWrite(victor1[g], LOW);
    digitalWrite(victor2[g], LOW);
    display.setCursor(0,2);
    display.print("                    ");
    
  }


  if(digitalRead(g)==LOW && turno==1)
  { 
    turno=2;
    digitalWrite(victor1[g], HIGH);
    delay(300);
    
  }
    if(digitalRead(g)==LOW && turno==2)
  { 
    turno=1;
    digitalWrite(victor2[g], HIGH);
    delay(300);
  }
 if (digitalRead(victor1[10])==HIGH &&  digitalRead(victor1[2]) == HIGH && digitalRead(victor1[3])  == HIGH ) {
   display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
 } else if (digitalRead(victor2[10])==HIGH &&  digitalRead(victor2[2]) == HIGH && digitalRead(victor2[3])  == HIGH ) {
 display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 }
   if (digitalRead(victor1[4])==HIGH &&  digitalRead(victor1[5]) == HIGH && digitalRead(victor1[6])  == HIGH ) {
  display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
 } else if (digitalRead(victor2[4])==HIGH &&  digitalRead(victor2[5]) == HIGH && digitalRead(victor2[6])  == HIGH ) {
 display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 }
   if (digitalRead(victor1[7])==HIGH &&  digitalRead(victor1[8]) == HIGH && digitalRead(victor1[9])  == HIGH ) {
  display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
 } else if (digitalRead(victor2[7])==HIGH &&  digitalRead(victor2[8]) == HIGH && digitalRead(victor2[9])  == HIGH ) {
    display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 }
   if (digitalRead(victor1[10])==HIGH &&  digitalRead(victor1[4]) == HIGH && digitalRead(victor1[7])  == HIGH ) {
   display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
 } else if (digitalRead(victor2[10])==HIGH &&  digitalRead(victor2[4]) == HIGH && digitalRead(victor2[7])  == HIGH ) {
    display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 }
    if (digitalRead(victor1[2])==HIGH &&  digitalRead(victor1[5]) == HIGH && digitalRead(victor1[8])  == HIGH ) {
    display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
 } else if (digitalRead(victor2[2])==HIGH &&  digitalRead(victor2[5]) == HIGH && digitalRead(victor2[8])  == HIGH ) {
    display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 }
    if (digitalRead(victor1[3])==HIGH &&  digitalRead(victor1[6]) == HIGH && digitalRead(victor1[9])  == HIGH ) {
    display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
 } else if (digitalRead(victor2[3])==HIGH &&  digitalRead(victor2[6]) == HIGH && digitalRead(victor2[9])  == HIGH ) {
   display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 }
    if (digitalRead(victor1[9])==HIGH &&  digitalRead(victor1[5]) == HIGH && digitalRead(victor1[10])  == HIGH ) {
   display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
  
 } else if (digitalRead(victor2[9])==HIGH &&  digitalRead(victor2[5]) == HIGH && digitalRead(victor2[10])  == HIGH ) {
   display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 
 }
     if (digitalRead(victor1[3])==HIGH &&  digitalRead(victor1[5]) == HIGH && digitalRead(victor1[7])  == HIGH ) {
   display.setCursor(0,2);
 display.print("GANADOR: JUGADOR UNO");
  
 } else if (digitalRead(victor2[3])==HIGH &&  digitalRead(victor2[5]) == HIGH && digitalRead(victor2[7])  == HIGH ) {
  display.setCursor(0,2);
 display.print("GANADOR: JUGADOR DOS");
 } 

 
 }
 }