3
respostas

Função def desenha_forca(erros) com menos prints

Boa tarde, pessoal.

Existe alguma forma do código de impressão da função def desenha_forca(erros) ser mais curta? Em C, o código foi o seguinte:

void desenhaforca() {

    int erros = chuteserrados();    
    printf("  _______________      \n");
    printf(" |/              |     \n");
    printf(" |                 %c%c%c \n", (erros >= 1 ? '(' : ' '), (erros >= 1 ? '_' : ' '), (erros >= 1 ? ')' : ' '));
    printf(" |             %c %c %c\n", (erros >= 3 ? '\\' : ' '), (erros >= 2 ? '|' : ' '), (erros >= 4 ? '/' : ' '));
    printf(" |               %c    \n", (erros >= 2 ? '|' : ' '));
    printf(" |              %c %c  \n", (erros >= 5 ? '/' : ' '), (erros >= 6 ? '\\' : ' '));
    printf(" |                     \n");
    printf("_|___                  \n");
    printf("\n\n");

    for(int i = 0; i < strlen(palavrasecreta); i++){

        int achou = jachutou(palavrasecreta[i]);

        if(achou){
            printf("%c ", palavrasecreta[i]);
        } else {
            printf("_ ");
        }
    } 
    printf("\n");
}

É possível fazer algo parecido no Python?

3 respostas

Bom dia, pessoal. Consegui fazer a alteração no programa que eu pretendia. Segue o código:


def desenha_forca(erros):

    print("  _______     ")
    print(" |/      |    ")

    print(" |      %s   " % ("(_)" if erros >= 1 else " "))
    print(" |      %s%s%s   " % ("\\" if erros >= 3 else " ", "|" if erros >= 2 else " ", "/" if erros >= 4 else " "))
    print(" |       %s    " % ("|" if erros >= 2 else " "))
    print(" |      %s %s   " % ("/" if erros >= 5 else " ", "\\" if erros >= 6 else " "))

    print(" |            ")
    print("_|___         ")
    print()

Não sei se a legibilidade ficou comprometida. Caso alguém possa emitir uma opinião, fico agradecido.

Parabéns Carlos, ficou muito bom!

Obrigado pelo feedback, Bruno!