Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

xPo

Batalha naval

Mensagens Recomendadas

xPo    0
xPo

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??

:)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gooden    0
Gooden

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)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
xPo    0
xPo

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......

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

É 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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade