Ir ao conteúdo
  • Cadastre-se

Marckya

Membro Júnior
  • Posts

    5
  • Cadastrado em

  • Última visita

Reputação

3
  1. Olá preciso desenvolver o jogo batalha naval, sem interface. Estou na duvida de como fazer para inserir os navios e de tamanhos diferente. Preciso ter um inserirNavios para o jogador 1 e 2, ou com so um inserirNavios consigo utilizar nos dois? Segue o enunciado: Cada jogador deve dispor de uma área de 10x10 onde ele vai posicionar 5 navios de tamanhos diferentes: um porta-aviões (comprimento 5), um encouraçado (comprimento 4), um submarino e um destroyer (ambom de comprimento 3), e barco de patrulha (comprimento 2). Um jogador nunca deve saber a posição dos navios do oponente. Os navios de um mesmo jogador não podem se cruzar e devem estar dentro das fronteiras da sua área disponível. Depois que todas as peças estão posicionadas, os jogadores se alternam em turnos para lançar bombas sobre o outro oponente especificando qual posição ele deseja atacar. Se algum dos navios do jogador que está sendo atacado estiver na posição atacada, considera-se que o navio foi atingido. O ataque falha se o atacante lançar uma bomba em um local onde não existe nenhum navio do oponente. Caso todos as posições de um navio for atingida, o jogador atacado deve informar o oponente qual dos seus navios afundou. O jogo continua até que um jogador afunde todos os navios de seu oponente; este jogador é então considerado vencedor. Você deve desenvolver um programa que jogue uma partida de batalha naval entre dois oponentes. Você precisa: Definir uma maneira de indicar o estado inicial dos navios dos jogadores; Exibir todos os movimentos dos jogadores, informando se os ataques foram bem sucedidos ou não; Informar quando um navio é atingido e quando ele é afundado; Exibir ao final do jogo um mapa final do posicionamento final dos navios dos jogadores. public class BatalhaNaval { static int areaJogador1[][] = new int[10][10]; static int areaJogador2[][] = new int[10][10]; static int posicao[][] = new int [10][10]; public static void zeraPosicao(){ for(int p = 0; p < 10; p++){ for(int o = 0; o < 10; o++){ posicao[p][0] = 0; } } } public static void mostrarArea(){ System.out.println(" 0 1 2 3 4 5 6 7 8 9"); System.out.println(" ----------------------------------------- "); for(int i = 0; i <= 9; i++){ System.out.print(i+" "); for(int j = 0; j <= 9; j++){ System.out.print("| "+ areaJogador1[i][j]+" "); } System.out.println("|"); System.out.println(" ----------------------------------------- "); } } public static int inserirNavios() { int contadorNavios = 0; Scanner receberPosicao = new Scanner(System.in); int p1,p2; System.out.print("Escolha posição do navio(Linha): "); p1 = receberPosicao.nextInt(); System.out.print("Escolha posição do navio(Coluna): "); p2 = receberPosicao.nextInt(); if((p1>=0 && p1 <10) && (p2>=0 && p2 <10)){ posicao[p1][p2] = 1; }else{ System.err.println("Posições invalidas Digite novamente!"); return(inserirNavios()); } return contadorNavios++; }
  2. Isso rodou perfeito! So precisou de um ajuste em vez de scanf usei gets assim caso o usuario digite duas palavras separadas converta todas. Muito Obrigado!!
  3. Não, não são todos os caracteres que são transformados em inteiros, apenas alguns especifico, tem uma tabela: c = 3 f = 6 i = 9 l = 12 o = 15 r = 18 u = 21 x = 24 daí caso alguma letra que contenha nessa tabela for digitada, automaticamente a saida vai sair algum numero. Caso o usuario digite "abcde" a saida vai ser "ab3dc", vai sair a letra e o numero junto...
  4. Sim, por exemplo o usuário digita "cloud" a saida vai ser "3121521d" se digitar "abcou" a saida vai ser "ab31521".
  5. Pessoal estou desenvolvendo um programa que faça a conversão de algumas letras por numeros, consigo imprimir apenas o 3,6,9 pois o char não aceita imprimi 2 caracteres em um, pensei em uma logica usando a tabela ASCII, (por exemplo o numero 15 fiz a seguinte conta 50 - 36 que na tabela é 50 = 2 e 36 = #, deu certo!) so que não consigo imprimir... #include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> char palavra [150]; char palavraConvertida [150]; int armazenaInt[150]; char converte (char letra){ switch(letra){ case 'c' : letra = '3'; break; case 'f': letra = '6'; break; case 'i': letra = '9'; break; case 'l': letra = '\f'; //12 break; case 'o': letra = '2'-'#'; //15 do 12 pra baixo foi uma logica que pensei usando a tabela ASCII pois o char não tava aceitando imprimir 2 numeros em um caractere break; case 'r': letra = '2'-' '; //18 break; case 'u': letra = '='-'('; //21 break; case 'x': letra = '<'-'$'; //24 break; } return letra; } char convertendo(){ for( int i = 0; i < 50; i++){ /* if (converte(palavra[i]) < 'a' || converte(palavra[i]) > 'z'){ armazenaInt[i] = converte(palavra[i]); }else{ */ palavraConvertida[i] = converte(palavra[i]); } } int main(){ char var = '<' - '$'; printf("Digite uma palavra para ser convertida : "); gets(palavra); convertendo(); printf("\nPalavra convertida para: %s ",palavraConvertida,armazenaInt); getch(); return 0; }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!