2
respostas

Como chamar função dentro de função?

Como faço para utilizar as funções que estão comentadas? Pois está dando erro, acho que não se pode chamar função dentro de função assim.

O papel delas é uma "gambiarrazinha" com get para somente exibir essas variáveis..

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include "utilidades.h"
#include "player_vs_player.h"

void painel_Player_vs_Player(void){
    printf("PLAYER VS PLAYER");
    painel_playerone();
    painel_playertwo();
    painel_playing_game();
}

void painel_play_gaming(void){
    // ESSAS FUMC AQUI
    char nickone = get_nick_playerone();
    char nicktwo = get_nick_playertwo();
    printf("TESTE");
    printf(" ", nickone, " ", nicktwo);
}

// REGRAS DE NEGÓCIO
char check_simbolo_playerone(char simbolo_playerone){
    if(simbolo_playerone != 'X' && simbolo_playerone != 'x' && simbolo_playerone != 'O' && simbolo_playerone != 'o'){
        limpar_tela();
        printf("Você digitou um SIMBOLO inexistente.");
        aguardar();
        limpar_tela();
        printf("Retornando ao NICK...");
        aguardar();
        limpar_tela();
        painel_playerone();
    } else{
        return simbolo_playerone;
    }
}

char check_simbolo_playertwo(char simbolo_playerone){
    char simbolo_playertwo;
    if(simbolo_playerone == 'X' || simbolo_playertwo == 'x'){
        simbolo_playertwo = 'O';
        return simbolo_playertwo;
    } else if(simbolo_playerone == 'O' || simbolo_playertwo == 'o'){
        simbolo_playertwo = 'X';
        return simbolo_playertwo;
    }
}



//GET'S
/////////////// PAINELS
void painel_playerone(void){
    char nick_playerone;
    char simbolo_playerone;
    printf("\n\nPLAYER 1");
    printf("\nNick: ");
    scanf("%s", &nick_playerone);

    limpar_teclado();
    printf("Simbolo: X ou O\n");
    scanf("%c", &simbolo_playerone);

    check_simbolo_playerone(simbolo_playerone);
    check_simbolo_playertwo(simbolo_playerone);

    painel_playertwo();
}

void painel_playertwo(void){
    char nick_playertwo;
    printf("\nPLAYER 2");
    printf("\nNick: ");
    scanf("%s", &nick_playertwo);
    limpar_teclado();
}

/////////////// PLAYER 1
char get_nick_playerone(char nick_playerone){
    return nick_playerone;
}

/////////////// PLAYER 2
char get_nick_playertwo(char nick_playertwo){
    return nick_playertwo;
}
2 respostas

Você precisar criar uma função pra elas antes..

/*tipo da function*/ function nomeDafunção () {
     ~código da função
};

Se você criar a função no final do código, você precisar chamar ela no começo de tudo, após os includes. Para o compilador fazer a leitura e armazenamento das funções. Se você colocar as funções logo no começo(apos) includes, não é necessário chamar as funções, pois o compilador já irá fazer as leituras por ordem imperativa.

Pelo menos foi assim que eu aprendi na faculdade com C, xD

@Nikolai Cinotti Eu criei arquivo Headers que estão no include para não precisar repetir este tipo de código de chamada de função, eu já criei a função, porém no código que eu passei ele está dando erro na chamada, aonde foi comentado, está não é a solução.