/* =============================================================================================
   Wilfredo Cruz Yarlequé                              wcruzy@gmail.com
   Piura, Perú, Enero 19 de 2025
   
   
   El programa inicialmente muestra una "ventana" con letras desde la K hasta la P
   
   Si ingresa 0, la "ventana" se desplaza a la izquierda y muestra desde la J hasta la O,
   o si ingresa 1, la "ventana" se desplaza a la derecha y muestra desde la L hasta la Q
   
   Hay un limite de desplazamientos tanto a la izquierda como a la derecha
   ============================================================================================= */
   
#include <stdio.h>

char LETRAS[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S',
                 'T','U','V','W','X','Y','Z'};
char VENTANA[6]={'K','L','M','N','O','P'};

void mostrar(void);
char * haceVentana(int);

int main()
{
    int entrada;
    int puntero = 10;
    int k = 0;
    int i, j;

    do
    {
        mostrar();
        printf("\nIngrese 0 si desplaza a la izquierda o ingrese 1 si desplaza a la derecha: ");
        scanf("%d", &entrada);

        if (entrada == 0)
        {
            k = k - 1;
            puntero = puntero - 1;
            haceVentana(puntero);
        }
        else
        {
            k = k + 1;
            puntero = puntero + 1;
            haceVentana(puntero);
        }

        if (k > 10 || k < -10)
        {
            printf("\nUsted llegó al limite permitido...\n\n");
            return 0;
        }
    } while (entrada == 0 || entrada == 1);

    return 0;
}

/* ================ F U N C I O N E S ================ */
void mostrar(void)
{
    int i;

    for (i = 0; i < 6; i++)
        printf("%c", VENTANA[i]);
    printf("\n");
}

char * haceVentana(int puntero)
{
    int i;
    int j = 0;

    for (i = puntero; i < puntero + 6; i++)
    {
        VENTANA[j] = LETRAS[i];
        j++;
    }

    return VENTANA;
}