• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

xPo

Batalha naval

6 mensagens neste tópico

Olá pessoal,

Estou com umas dúvidas para fazer o jogo da batalha naval, na parte de colocar os barcos no tabuleiro.

Como é que posso fazer isso??

Eu criei uma matriz, e depois tenho que colocar, por exemplo, um barco de 4 canos, num sitio qq, na horizontal ou na verical, e não estou a conseguir fazer.

Algum pode dar uma ajuda??

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em 1 tens que verificar se os 4 lados para horizontal ou vertical tao livres.

2 ao clicar tens de ocupar o espaço na array bidimensional com 1 valor que identifique esse barco.

por exemplo 4

por exemplo temos uma array bidimensional nos espaços:

mapa(3,1)

mapa(3,2)

mapa(3,3)

mapa(3,4)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é q eu posso fazer a verificação dos espaços livre, em código????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

verifica o valor da variavel nessa posiçao :)

se a variavel bidimensional fore int entao ele vai ter de tar 0 para ser vazio =)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tenho assim o codigo para colocar o barco de 4 canos:

void coloca_4cano(char m[][DIM],int nlinhas, int ncolunas)

{

        int orientaçao,x,linha_aleat,coluna_aleat;

        do

                {

                linha_aleat = gera_aleatorio();

                coluna_aleat = gera_aleatorio();

                orientaçao = gera_aleatorio();

                if (orientaçao>=5)

                        {

                        if (linha_aleat>=6)

                        linha_aleat = linha_aleat - 3;

                        }

                else if (coluna_aleat>=6)

                        coluna_aleat = coluna_aleat - 3;

                }

        while(m[linha_aleat][coluna_aleat]=!'-');

        if (orientaçao>=5)

                {

                for (x=0; x<4; x++)

                        {

                        m[linha_aleat+x][coluna_aleat]='*';

                        }

                }

        else

                {

                for (x=0; x<4; x++)

                        {

                        m[linha_aleat][coluna_aleat+x]='*';

                        }

                }

}

Tá a funcionar, agora o problema é q nao sei como faço para verificar se o barco de 3 canos fica com um espaço de intervalo dos outros barcos......

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É só verificares se de (xmin-1, ymin-1) até (xmax+1, ymax+1) está tudo livre, em que xmin, xmax, ymin e ymax são as coordenadas das pontas do barco.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora