Untitled
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