#include <stdio.h>

#include "truco.h"
#include "truco_interfaz.h"

int main(){

    uint8_t jugadores = 2;

    printf("\nInserte número de jugadores: ");
    scanf("%u", &jugadores);

    EstadoPartida partida;

    if(!iniciar_partida(&partida, jugadores, 30)){
        printf("Número inválido de jugadores.\n");
        return 1;
    }

    while(1){
        uint8_t jugador = partida.ronda_estado == RONDA_ESTADO_JUGANDO_BAZA ? partida.jugador_turno_actual : partida.jugador_turno_canto;
        uint8_t equipo_jugador = jugador % 2;
        uint8_t numero_jugador = jugador + 1;
        
        printf("\nTurno de jugador %d \n", numero_jugador);
        // printf("\nDEBUG: Jugador %d tiene %d de envido \n", numero_jugador, calcular_envido(&partida, jugador));

        uint8_t truco_disponible = CANTO_INVALIDO;

        mostrar_controles_segun_estado(partida.ronda_estado, partida.flags_ronda, 
        partida.jugadores_cartas[jugador], calcular_envido(&partida, jugador), 
        partida.mayor_envido, partida.canto_ofrecido, &truco_disponible, equipo_jugador);

        printf("\nAcción: ");
        uint8_t accion = 0;
        scanf("%u", &accion);

        ResultadoJugada resultado_jugada = manejar_accion_turno_offline(accion, &partida, jugador, truco_disponible);

    }

    return 0;
}

ResultadoJugada jugar_baza_offline(EstadoPartida *partida, uint8_t jugador, uint8_t carta_i){
    return jugar_baza(partida, jugador, carta_i);
}

ResultadoJugada cantar_offline(EstadoPartida *partida, uint8_t jugador, uint8_t canto_i){
    return cantar(partida, jugador, canto_i);
}

ResultadoJugada cantar_tanto_offline(EstadoPartida *partida, uint8_t jugador){
    return cantar_tanto(partida, jugador, calcular_envido(partida, jugador));
}

void jugar_baza_online(uint8_t carta_i){};
void cantar_online(uint8_t canto){};
void cantar_tanto_online(){};
