Untitled
unknown
plain_text
9 months ago
1.9 kB
6
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