1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Gerar numeros aleatorios - Batalha Naval

Bom dia,

Sou novo com Java e estou precisando desenvolver um jogo de batalha naval para uma aula. Tenho muita dificuldade em entender os random em java, em C++ é muito de boa trabalhar com isso, mas java é osso demais.

Minha ideia para a criação do jogo é:

1° Criar a matriz navios[6][9] e povoar ela com números aleatórios, onde os mesmos seriam a posição dos 1 - navios, 2 - submarinos, 3- destroyer e 4- porta- avioes e povoar o resto com 0 que seria as ondas do mar ou ou erro do usuário.

2°Apos criar a matriz e povoa-la, iria criar uma matriz Tabuleiro [6][9] povoada apenas por ~ simbolizando as ondas do mar.

Minha ideia é mostrar a matriz tabuleiro para ele e solicitar ao usuario uma posição linha coluna dentro do while até o usuario digitar -1, e um laço if para comparar se a posição linha e coluna da tabela Navios que não é mostrada para o usuario é umas das posições dos navios, 1,2,3,4. Caso seja positivo, altero a posição linha e Coluna com um simbolo dizendo que foi acertado determinado tipo de navio. Caso seja negativo, altero para X.

Gostaria de saber se existe alguma maneira de eu gerar números aleatórios onde existe determinados números que devem ter em maior quantidade do que os demais.

Ex: Como pensei em criar uma matriz 6x9 = 54 posições, dessas 22 deverão corresponder as posições dos navios onde o total de cada é:

4 Submarinos 5 Destroyer 6 Cruzador 7 porta Avioes = 22 posicoes

E o resto das 32 posições devera ser preenchidos com 0 para para simbolizar o erro do tiro.

Sei que em C++ existe uma função rand() % 50 +1 por exemplo, que ira gerar mais números zero ( se não me angano) do que 1.

//imagens que deverão utilizada como navios // <--> 1 - Submarino 4 posições na matriz // <_t_> 2 - Destroyer 5 posições na matriz // <=##=> 3 - Cruzador 6 posições na matriz // <===##> 4 - porta-aviões 7 posições na matriz

Obrigado

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags random ou faça a sua própria pergunta.