Ir ao conteúdo

Peço ajuda aos colegas


zeilton

Posts recomendados

Postado

Opa pessoal, alguém poderia me da uma dica como fazer esse quebra cabeça?

ideia básica

 Você deve montar um quadro (ou matriz) com 8 linhas e 8 colunas (veja que essa matriz não precisa existir de verdade…);

 Os políticos devem ser espalhados nesse quadro, sempre na posição horizontal ou vertical (nunca em diagonal), ocupando 1 quadrado;

 O programa deve receber uma entrada do cliente, pergutando em qual linha e em qual coluna ele deve tentar atirar;

 Se o usuário acertar em um político, deve receber uma mensagem avisando do acerto e se o político afundou ou não (ele só afunda quando os 3 quadrados forem acertados);

 Se o usuário não acetar, o programa deve também avisar que o tiro errou;

 O programa não deve ficar todo em uma única classe J

  • Membro VIP
Postado

Coloque o que conseguiu fazer e quais são as suas dúvidas, para que possamos ajudá-lo.

- Os demais frequentadores do fórum poderão ajudá-lo a tirar dúvidas, mas não irão fazer seu trabalho por você, por isso tente ao menos fazer seus exercícios e poste suas dúvidas, senão nunca irá aprender se fizerem tudo por você.
Postado
Coloque o que conseguiu fazer e quais são as suas dúvidas, para que possamos ajudá-lo.

Caro amigo me der uma dica como começar?

  • 3 semanas depois...
Postado
Opa pessoal, alguém poderia me da uma dica como fazer esse quebra cabeça?

ideia básica

 Você deve montar um quadro (ou matriz) com 8 linhas e 8 colunas (veja que essa matriz não precisa existir de verdade…);

 Os políticos devem ser espalhados nesse quadro, sempre na posição horizontal ou vertical (nunca em diagonal), ocupando 1 quadrado;

 O programa deve receber uma entrada do cliente, pergutando em qual linha e em qual coluna ele deve tentar atirar;

 Se o usuário acertar em um político, deve receber uma mensagem avisando do acerto e se o político afundou ou não (ele só afunda quando os 3 quadrados forem acertados);

 Se o usuário não acetar, o programa deve também avisar que o tiro errou;

 O programa não deve ficar todo em uma única classe J

Caro amigo me der uma dica como começar?

Bom, uma solução bem direta é criar uma matriz de booleans indicando se há (true) ou não há (false) um político na posição (i, j) da matriz. Em Java isto ficaria assim (dá pra fazer com for each também):


// prepara matriz de políticos
boolean[][] politicos = new boolean[8][8];
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
politicos[i][j] = false;
}
}

Bom, não sei como você quer espalhar os políticos (randomicamente ou manualmente), e também não sei quantos políticos (quantas linhas, quantas colunas) deverão ser inseridas, aí é com você. Escolha um método e povoe a matriz.

Por exemplo, para povoar uma linha INTEIRA determinada pela variável "linha" (sem aspas), você poderia usar um método como este:


public void povoaLinha(int linha) {
for (int j = 0; j < 8; j++) {
politicos[linha][j] = true;
}
}

Note que para povoar apenas parte da linha você precisa fazer modificações.

Depois do seu programa preparar o tabuleiro e inserir políticos, ele entraria em um laço infinito e receberia a entrada do usuário (teclado) perguntando em qual casa ele deseja atirar, isto é, lendo a linha e a coluna onde o tiro deverá ser dado (dois números inteiros).

Após ler a casa, você pode chamar um método atira(), que receba a linha e a coluna, verifique se tem um político lá (se o valor no tabuleiro é true) e assim por diante.

Eu pulei vários outros aspectos da lógica do jogo, como por exemplo, guardar informações para saber se um político afundou ou não, dentre outros detalhes. Mas para começar já basta.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...