"Undefined Reference to" error in functions

0

I made a code that reads a file and creates a map based on the coordinates of that file, but all code functions have the error "Undefined reference to" The compiler shows the following errors:

main.c|23|undefined reference to 'Preenche_Boia'|
main.c|28|undefined reference to 'Preenche_aviao'|
main.c|32|undefined reference to 'Preenche_Submarino'|
main.c|36|undefined reference to 'Preenche_espiao1'|
main.c|40|undefined reference to 'Preenche_espiao2'|
main.c|44|undefined reference to 'Preenche_porta_aviao'|
main.c|48|undefined reference to 'Imprime_Matriz'|

That is, ALL the functions. Here is the code:

Battle.h

#ifndef BATALHA_H_INCLUDED
#define BATALHA_H_INCLUDED
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
#include<string.h>
#define MAX 20
void Inicia_matriz(char mapa[][MAX]);
void Preenche_Boia(char mapa[][MAX], int linha, int coluna);

void Imprime_Matriz(char mapa [][MAX]);

void Preenche_Submarino(char mapa[][MAX], int id, int hor, int linha, int coluna);
void Preenche_aviao(char mapa[][MAX],int id,int hor,int linha,int coluna);
void Aviao_leste(char mapa[][MAX],int id,int linha, int coluna);
void Aviao_sul(char mapa[][MAX],int id,int linha, int coluna);
void Aviao_oeste(char mapa[][MAX],int id,int linha, int coluna);
void Aviao_norte(char mapa[][MAX],int id,int linha, int coluna);
void Preenche_espiao1(char mapa[][MAX],int id,int hor,int linha, int coluna);
void espiao1_leste(char mapa[][MAX],int id,int linha, int coluna);
void espiao1_sul(char mapa[][MAX],int id,int linha, int coluna);
void espiao1_oeste(char mapa[][MAX],int id,int linha, int coluna);
void espiao1_norte(char mapa[][MAX],int id,int linha, int coluna);
void Preenche_espiao2(char mapa[][MAX],int id, int hor, int linha, int coluna);
void espiao2_leste(char mapa[][MAX],int id,int linha, int coluna);
void espiao2_sul(char mapa[][MAX],int id,int linha, int coluna);
void espiao2_oeste(char mapa[][MAX],int id,int linha, int coluna);
void espiao2_norte(char mapa[][MAX],int id,int linha, int coluna);
void Preenche_porta_aviao(char mapa[][MAX],int id,int hor,int linha, int coluna);
void Conta_func(char mapa[][MAX]);





#endif // BATALHA_H_INCLUDED

Battle.c

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include"batalha.h"
#define MAX 20
void Inicia_matriz(char mapa[][MAX])
{
    int i,j;
    for(i=0; i<MAX; i++)
    {
        for(j=0; j<MAX; j++)
        {
            mapa[i][j]=42;
        }
    }


}
void Preenche_Boia(char mapa [][MAX], int linha, int coluna)
{
    mapa[linha][coluna]=48;
}
void Imprime_Matriz(char  mapa[][MAX])
{
    int i, j;
    char ch;
    for(i=0; i<MAX; i++)
    {
        for(j=0; j<MAX; j++)
        {
            printf("%c", mapa[i][j]);
        }
        printf("\n");
    }
}
void Preenche_Submarino(char mapa [][MAX], int id, int hor, int linha, int coluna)
{
    int i,j;
    if(hor==3||hor==4)
    {
        for(i=coluna; i<(coluna+4); i++)
        {
            mapa[linha][i]=id;
        }

    }
    else if (hor==0||hor==1)
    {
        for(i=linha; i<(linha+4); i++)
        {
            mapa[i][coluna]=id;
        }
    }
}

void Preenche_porta_aviao(char mapa[][MAX], int id, int hor, int linha, int coluna)
{
    int i, j;


    if(hor==3||hor==4)
    {
        for(i=linha; i<(linha+2); i++)
        {
            for(j=coluna; j<(coluna+5); j++)
            {
                mapa[i][j]=5;
            }
        }
    }
    else if(hor==0||hor==1)
    {



        for(i=linha; i<(linha+5); i++)
        {
            for(j=coluna; j<(coluna+2); j++)
            {
                mapa[i][j]=5;
            }
        }

    }


}
void Preenche_aviao(char mapa[][MAX],int id, int hor, int linha, int coluna)
{

        if(hor==0)
        {
            Aviao_norte(mapa,id,linha,coluna);
        }
        else if(hor==1)
        {
            Aviao_sul(mapa,id,linha,coluna);
        }
        else if(hor==2)
        {
            Aviao_oeste(mapa,id,linha,coluna);
        }
        else if(hor==3)
        {
            Aviao_leste(mapa,id,linha,coluna);
        }

}
void Aviao_oeste(char mapa[][MAX], int id, int linha, int coluna)
{
    int i,j;


    for(i=linha; i<(linha+3); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=mapa[i][coluna+1];
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
        }
        else if (i==linha+2)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=mapa[i][coluna+1];
        }
    }

}
void Aviao_norte(char mapa[][MAX], int id, int linha, int coluna)
{
    int i,j;

    for(i=linha; i<(linha+2); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=id;
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=mapa[i][coluna+2];
        }
    }

}
void Aviao_leste(char mapa[][MAX],int id, int linha, int coluna)
{

    int i,j;

    for(i=linha; i<(linha+3); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=id;
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
        }
        else if (i==linha+2)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=id;
        }
    }

}
void Aviao_sul(char mapa[][MAX], int id, int linha, int coluna)
{

    int i,j;
    for(i=linha; i<(linha+2); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=mapa[i][coluna];
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=id;
        }
    }

}
void Preenche_espiao1(char mapa[][MAX], int id, int hor, int linha , int coluna)
{


        if(hor==0)
        {
            espiao1_norte(mapa,id,linha,coluna);
        }
        else if(pos==1)
        {
            espiao1_sul(mapa, id , linha , coluna);
        }
        else if(pos==2)
        {
            espiao1_oeste(mapa, id, linha , coluna);

        }
        else if(pos==3)
        {
            espiao1_leste(mapa, id , linha , coluna);
        }




}
void espiao1_leste(char mapa[][MAX], int id , int linha, int coluna)
{

    int i;
    for(i=linha; i<(linha+3); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=mapa[i][coluna+3];
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=id;
            mapa[i][coluna+3]=id;
        }
        else if(i==linha+2)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=mapa[i][coluna+3];
        }


    }
}
void espiao1_oeste(char mapa[][MAX], int id, int linha, int coluna)
{

    int i;
    for(i=linha; i<(linha+3); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=id;
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=id;
            mapa[i][coluna+3]=id;
        }
        else if(i==linha+2)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=id;
        }


    }
}
void espiao1_sul(char mapa[][MAX], int id, int linha, int coluna)
{

    int i;

    for(i=coluna; i<(coluna+3); i++)
    {
        if(i==coluna)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=mapa[linha+3][i];
        }
        else if(i==coluna+1)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=id;
            mapa[linha+2][i]=id;
            mapa[linha+3][i]=id;

        }
        else if (i==coluna+2)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=mapa[linha+3][i];
        }

    }

}

void espiao1_norte(char mapa[][MAX], int id , int linha , int coluna)
{

    int i;

    for(i=coluna; i<(coluna+3); i++)
    {
        if(i==coluna)
        {
            mapa[linha][i]=mapa[linha][i];
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=id;
        }
        else if(i==coluna+1)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=id;
            mapa[linha+2][i]=id;
            mapa[linha+3][i]=id;

        }
        else if (i==coluna+2)
        {
            mapa[linha][i]=mapa[linha][i];
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=id;
        }

    }

}
void Preenche_espiao2(char mapa[][MAX], int id, int hor, int linha, int coluna)
{

        if(hor==0)
        {
            espiao2_norte(mapa,id,linha,coluna);
        }
        else if(hor==1)
        {
            espiao2_sul(mapa,id,linha,coluna);
        }
        else if(hor==2)
        {
            espiao2_oeste(mapa,id,linha,coluna);

        }
        else if(hor==3)
        {
            espiao2_norte(mapa,id,linha,coluna);
        }


    }

}
void espiao2_leste(char mapa[][MAX],int id,int linha,int coluna)
{

    int i;

    for(i=linha; i<(linha+3); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=mapa[i][coluna+3];
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=id;
            mapa[i][coluna+3]=id;
        }
        else if(i==linha+2)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=mapa[i][coluna+3];
        }


    }
}
void espiao2_oeste(char mapa[][MAX],int id,int linha,int coluna)
{
    int i;

    for(i=linha; i<(linha+3); i++)
    {
        if(i==linha)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=id;
        }
        else if(i==linha+1)
        {
            mapa[i][coluna]=id;
            mapa[i][coluna+1]=id;
            mapa[i][coluna+2]=id;
            mapa[i][coluna+3]=id;
        }
        else if(i==linha+2)
        {
            mapa[i][coluna]=mapa[i][coluna];
            mapa[i][coluna+1]=mapa[i][coluna+1];
            mapa[i][coluna+2]=mapa[i][coluna+2];
            mapa[i][coluna+3]=id;
        }


    }
}
void espiao2_sul(char mapa[][MAX],int id, int linha, int coluna)
{

    int i;

    for(i=coluna; i<(coluna+3); i++)
    {
        if(i==coluna)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=mapa[linha+3][i];
        }
        else if(i==coluna+1)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=id;
            mapa[linha+2][i]=id;
            mapa[linha+3][i]=id;

        }
        else if (i==coluna+2)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=mapa[linha+3][i];
        }

    }

}

void espiao2_norte(char mapa[][MAX], int id , int linha, int coluna)
{

    int i;
    for(i=coluna; i<(coluna+3); i++)
    {
        if(i==coluna)
        {
            mapa[linha][i]=mapa[linha][i];
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=id;
        }
        else if(i==coluna+1)
        {
            mapa[linha][i]=id;
            mapa[linha+1][i]=id;
            mapa[linha+2][i]=id;
            mapa[linha+3][i]=id;

        }
        else if (i==coluna+2)
        {
            mapa[linha][i]=mapa[linha][i];
            mapa[linha+1][i]=mapa[linha+1][i];
            mapa[linha+2][i]=mapa[linha+2][i];
            mapa[linha+3][i]=id;
        }

    }

}

main.c

#include <stdio.h>
#include <stdlib.h>
#include"batalha.h"
#define MAX 20
int main()
{
    char mapa [MAX][MAX];
    int quantidade, id, hor, linha, coluna;
    FILE*arq;
    char url[]="tabuleiro1.txt";
    arq=fopen(url,"r");
    if(arq==NULL)
    {
        printf("ERRO");

    }
    else
    {
        while(fscanf(arq,"%d %d %d %d %d",&quantidade,&id,&hor,&linha,&coluna)!=EOF)
        {
            if(id==48)
            {
                Preenche_Boia(mapa,linha,coluna);

            }
            else if(id==49)
            {
                Preenche_aviao(mapa,id,hor,linha,coluna);
            }
            else if(id==50)
            {
                Preenche_Submarino(mapa,id,hor,linha,coluna);
            }
            else if(id==51)
            {
                Preenche_espiao1(mapa,id,hor,linha,coluna);
            }
            else if(id==52)
            {
                Preenche_espiao2(mapa,id,hor,linha,coluna);
            }
            else if (id==53)
            {
                Preenche_porta_aviao(mapa,id,hor,linha,coluna);
            }
        }
    }
    Imprime_Matriz(mapa);

    printf("Hello world!\n");
    return 0;
}
    
asked by anonymous 02.12.2018 / 04:04

0 answers