Comentários depois da avaliação do guião 5

Laboratório de Algoritmia I

Laboratórios de Informática II

Ano letivo 2019/20

Last Update: 03/19/2020 18:21:32

Boas práticas

Comentários depois da avaliação

Seguem-se alguns dos comentários comuns a várias submissões do guião 5.

Genéricamente, os grupos que submeteram fizeram um bom trabalho. Contudo, encontrámos alguns problemas, nomeadamente:

Projetos submetidos várias vezes

Parece-me que há grupos a criarem um projeto github por elemento e a submetê-los em separado.

Pretende-se que cada grupo crie um só projeto github. Podem e devem existir commits de mais do que um dos elementos do grupo visto que não é suposto que só um dos elementos do grupo trabalhe. # Includes mal feitos

Houve grupos a escreverem:

#include "./meu_ficheiro.h"

Quando deveriam escrever:

#include "meu_ficheiro.h"

Falta de independência entre as camadas

Este é um problema mais comum:

Segue-se um exemplo:

void mostrar_tabuleiro(ESTADO *e) {
    for (int i = 0; i < 8; i++) {
        for (int k = 0; k < 8; k++) {
            if (i == 0 && k == 7)
                printf("2");
            else if (i == 7 && k == 0)
                printf("1");
            else
                printf((e->tab[i][k] == VAZIO) ? "." : (e->tab[i][k] == BRANCA) ? "*" : "#" );
        }
        putchar('\n');
    }
}

O problema deste caso é que agora se eu decidir mudar a estrutura dos dados vou ter que mudar esta função. Mas se a função fosse:

void mostrar_tabuleiro(ESTADO *e) {
    for (int i = 0; i < 8; i++) {
        for (int k = 0; k < 8; k++) {
            if (i == 0 && k == 7)
                printf("2");
            else if (i == 7 && k == 0)
                printf("1");
            else
                printf(obter_casa(e, i, k) == VAZIO) ? "." : (obter_casa(e, i, k) == BRANCA) ? "*" : "#" );
        }
        putchar('\n');
    }
}

Então uma mudanças à estrutura dos dados já não obriga a mexer na função mostrar_tabuleiro.

O mesmo aconteceu frequentemente na função jogar que pertence à logica do programa.