Untitled

 avatar
unknown
plain_text
19 days ago
1.9 kB
3
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void lerJogo(int *l, int *c, char matriz[*l][*c]) {
    FILE *ficheiro = fopen("jogo.txt", "r");
    if (ficheiro == NULL) {
        return;
    }

    if (fscanf(ficheiro, "%d %d", l, c) != 2) {
        fclose(ficheiro);
        return;
    }

    while (fgetc(ficheiro) != '\n');

    char linha[*c + 2];

    for (int i = 0; i < *l; i++) {
        if (fgets(linha, sizeof(linha), ficheiro) == NULL) {
            fclose(ficheiro);
            return;
        }
        for (int j = 0; j < *c; j++) {
            matriz[i][j] = linha[j];
        }
    }

    fclose(ficheiro);

    printf("\nTabuleiro inicial:\n");
    for (int i = 0; i < *l; i++) {
        for (int j = 0; j < *c; j++) {
            printf("%c ", matriz[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int l = 0, c = 0;
    char comando[100];
    char matriz[10][10]; //tamanho max da matriz

    printf("Digite um comando: ");
    fgets(comando, sizeof(comando), stdin);

    // Remove o '\n' no final, se existir
    comando[strcspn(comando, "\n")] = 0;

    if (strcmp(comando, "l jogo") == 0) {
        printf("Comando reconhecido!\n");
        lerJogo(&l,&c,matriz);
    } else {
        printf("Comando inválido.\n");
    }

    int x;
    char y;
    char command;
    
    while (scanf(" %c %c%d", &command, &y, &x) == 3) {
        printf("\n");
        int ord = y - 'a';
        if (x >= 0 && x < l && ord >= 0 && ord < c) {
            if (command == 'r') {
                matriz[x][ord] = '#';
            }
            if (command == 'b') {
                matriz[x][ord] = matriz[x][ord] - 32;
            }
        }
        for (int i = 0; i < l; i++) {
            for (int j = 0; j < c; j++) {
                printf("%c ", matriz[i][j]);
            }
            printf("\n");
        }
    }
    
    return 0;
}
Editor is loading...
Leave a Comment