Ir ao conteúdo

Posts recomendados

Postado

Preciso de ajudar com o seguinte:

 

Crie um jogo de batalha naval, onde haverá as seguintes opções:

Criar campo de batalha

Jogar

Resultado

Sair

O campo de batalha sera composto por uma matriz 10×10

Ao criar o campo de batalha o primeiro jogador, terá 10 jogadas para definir as posições(linha e coluna) onde:(1-Para fragata 2- para destróier e 3 – para submarino)

Ao escolher Jogar, o segundo jogador terá 10 jogadas, para dar o palpite das posições(linha e coluna) onde a cada posições que não for ZERO sera informado que este acertou e será sumarizado os pontos.

Ao escolher a opção 3 será exibido o total de pontos.

 

Criei isso aqui:

<

#include <stdio.h>
#include <stdlib.h>

int main() {
    int op, barco, ponto = 0;
    int campo[3][3];
    int i, j, l, c;

    //zera as entradas da matriz campo.
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            campo[j] = 0;
        }
    }

    do {
        printf("\n\n\tBATALHA NAVAL\n\nMenu Principal:\n\t1 - Criar campo de batalha\n\t2 - Jogar\n\t3 - Resultado\n\t4 - Sair.\nOpcao Escolhida: ");
        scanf("%d", &op);
        system("cls");
        switch (op)//opcaoes do menu criado acima
        {
        case 1: {//Define o campo de batalha
            j = 3;
            printf("\n\n1 - CRIAR CAMPO DE BATALHA\n");
            for (i = 0; i < 3; i++) {

                printf("Escolha o tipo de embarcacao:\n\t1 - Fragata\n\t2 - Destroier\n\t3 - Submarino\n Digite a opcao:");
                scanf("%d", &barco);
                
                if (barco == 1) {
                    printf("\n\nDefina posicao da Fragata");
                }
                else {
                    if (barco == 2) {
                        printf("\n\nDefina posicao do Destroier");
                    }
                    else {
                        printf("\n\nDefina posicao do Submarino");
                    }
                }

                printf("\nLinha: ", i + 1);
                scanf("%d", &l);

                printf("Coluna: ");
                scanf("%d", &c);

                campo[l - 1][c - 1] = barco;

                if (j > 1) {
                    printf("Restam definir %d jogadas\n", j - 1);
                    j = j - 1;
                }
                else {
                    system("cls");
                    printf("As 10 posições ja foram defindas.\n\tBORA JOGAR!!!\n\n\n");
                    system("PAUSE");
                }
            }
            break;
        }
        case 2: {
            
          
        {for (i = 0; i < 3; i++) {
                printf("\n\n2 - JOGAR\n");
                printf("\tAtaque %d", i + 1);
                printf("\nLinha: ", i + 1);
                scanf("%d", &l);

                printf("Coluna: ");
                scanf("%d", &c);

                if (campo[l - 1][c - 1] == 0) {
                    printf("\nSplash! :(\n\n");
                }
                else {
                    printf("\nBoom! :)\n\n");
                    ponto += campo[l - 1][c - 1];
            }    }
            }

            break;
        }
        case 3: {
            printf("\n\n1 - PONTUACAO\n");
            printf("Sua pontucao: %d", ponto);
            break;
        }
        case 4: {
            printf("\n\nTCHAU!\n");
            //Sair do programa
            break;
        }
        default: {
            printf("Ops! Essa opcao nao existe!");
        }
    }
    } while (op != 4);
    
    system("PAUSE");
} >

 

No entanto preciso exibir o tabuleiro em [10] [10] no ambiente jogar, de acordo com a posição dos barcos selecionadas anteriormente

  • Curtir 1
Postado

@KC1   para mostrar o tabuleiro 10 x 10 você pode colocar esse valor na matriz campo e na hora de mostrar o que tem dentro dessa matriz você coloca esse valor 10 também no loop que percorrem as posições da  matriz.

Postado

@guhbrj    seria uma matriz de 10 x 10 para cada jogador , assim 

campo[10][10]; 
campo2[10][10]; 

o jogador 1 vai informar as posições campo2 e vice versa , aí você verifica se acertou em alguma embarcação , mas essa de informar 10 jogada de uma vez me parece que não seria bom , melhor seria uma jogada de cada vez para cada jogador , assim um jogador faz uma jogada e verifica se acertou ou não e tal , em seguida o outro jogador faz também uma jogada e verifica , e segue assim até o final .

Postado

vê se isso ajuda ? o código está com alguns erros, principalmente na exibição dos campos, tem pouca coisa pra corrigir. Podemos continuar desenvolvendo em paralelo, se quiser.

#include<stdio.h>
#include<windows.h>
#define L 10
#define  C 10
//prototipo das funcoes

int criaCampo(int campoJ1[L][C], int campoJ2[L][C]);
int rodaJogo(int campoJ1[L][C], int campoJ2[L][C]);
void exibeCampo(int campoJ1[L][C], int campoJ2[L][C], int vez);


int main()
{
	
	int campoJ1[L][C], campoJ2[L][C], op, game=1, campo=0;

printf("\n\n\t\t\t\t\t\t   BATALHA NAVAL\n\n\n\n");
printf("\t                               o o                                      \n");
printf("\t                                 o ooo\n");
printf("\t                                  o oo\n");
printf("\t                                      o o      |   #)\n");
printf("\t                                       oo     _|_|_#_\n");
printf("\t                                         o   | U505  |\n");
printf("\t    __                    ___________________|       |____________________  \n");
printf("\t   |   -_______-----------                                                )\n");
printf("\t  >|    _____                                                   Brasil   )\n");
printf("\t   |__ -     ---------_________________________________________________ )\n");


Sleep(2000);
	
	do{
	
	
	do
	{
	
	system("CLS");
	
	if(campo==1)
	{
		printf("\n\n\t\t\t\t\t\tMenu principal\n\n\n\n\n\t1 - Criar campo de batalha\n\t2 - Jogar (o)\n\t3 - Resultado\n\t4 - Sair\n\n\tEntre com uma opcao: ");	
	}
	else
	{
		printf("\n\n\t\t\t\t\t\tMenu principal\n\n\n\n\n\t1 - Criar campo de batalha\n\t2 - Jogar (x)\n\t3 - Resultado\n\t4 - Sair\n\n\tEntre com uma opcao: ");	
	}

	scanf("%d", &op);
	fflush(stdin);
	
	if((op!=1)&&(op!=2)&&(op!=3)&&(op!=4))
	{
		printf("\n\tOpcao invalida!");
		Sleep(1000);
	}
	
	}while((op!=1)&&(op!=2)&&(op!=3)&&(op!=4));
	
	
	
	switch(op)
	{
		case 1:
		campo=criaCampo(campoJ1, campoJ2);
		campo =1 ;
		break;
		
		case 2:
		if(campo==1)
		{
			rodaJogo(campoJ1, campoJ2);
		}
		else
		{
			printf("\nVoce deve criar o campo antes de jogar !");
			Sleep(2000);
		}
		
			
	}
	
	}while(game==1);
	
	
	
}


int criaCampo(int campoJ1[L][C], int campoJ2[L][C])
{
	system("CLS");
	printf("\n\n\t\t\t\t\t\tCRIAR CAMPO DE BATALHA");
	printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\tCriando campo de batalha ...\n");
	Sleep(1000);
	printf("\r\t\t\t\t\t\t~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\n\n\t\t\t\t\t\t\tConcluido!\n");
	Sleep(1000);
	
	int i, j;
	
	for(i=0;i<L;i++)
	{
		for(j=0; j<C; j++)
		{
			campoJ1[i][j]=0;
			campoJ2[i][j]=0;
		}
	}
	
		return 1;
}
void exibeCampo(int campoJ1[L][C], int campoJ2[L][C], int vez)
{
	int i, j, quebra=0, num=0;
	
	printf("\nentrei em exibir VALOR DE VEZ: %d\n", vez);
	system("PAUSE");
	
	printf("  0    1     2     3     4     5     6     7     8     9   \n\n");
	
	if(vez==1)
	{
		
	for(i=0;i<=L;i++)
	{
		for(j=0; j<C; j++)
		{
			if(quebra<L)
			{
				if(campoJ2[i][j]==0)
				{
					printf(" ~~~~ ");
					quebra++;
					
				}
				else
				{
					if(campoJ2[i][j]==4)
					{
						printf(" (X)  ");
						quebra++;
					}
						if(campoJ2[i][j]==5)
						{
							printf("\\_X_/ ");
						}
				}
				
			}
			else
			{
				printf("\n%d  ", num);
				quebra=0;
				num++;
			}
		}
	}
	}
	//-----------------------------------------------------------------------------jogador 2------------------------------------------------------
	
	if(vez==2)
	{
		
	for(i=0;i<=L;i++)
	{
		for(j=0; j<=C; j++)
		{
			if(quebra<L)
			{
				if(campoJ1[i][j]==0)
				{
					printf(" ~~~~ ");
					quebra++;
					
				}
				else
				{
					if(campoJ1[i][j]==4)
					{
						printf(" (X)  ");
						quebra++;
					}
						if(campoJ1[i][j]==5)
						{
							printf("\\_X_/ ");
						}
				}
				
			}
			else
			{
				printf("\n");
				quebra=0;
			}
		}
	}
	}
	

}

int rodaJogo(int campoJ1[L][C], int campoJ2[L][C])
{
	int inserir=0, emb, col, lin, vez=1, hitJ1=0, hitJ2=0, jogadasJ1=0, jogadasJ2=0, validaJogada=0;
	
	do
	{
		do
		{
			system("CLS");
			printf("Jogador # 1\nEmbarcacoes inseridas: %d\n\n\n\n", inserir);
			printf("1 - Fragata\n2 - Destroyer\n3 - Sumarino\n\nEntre com o tipo de embarcacao que deseja inserir: ");
			scanf("%d", &emb);
			fflush(stdin);
			
			if((emb!=1)&&(emb!=2)&&(emb!=3))
			{
				printf("Entrada invalida!");
				Sleep(1000);
			}
		
		}while((emb!=1)&&(emb!=2)&&(emb!=3));
		
		do
		{
		
			printf("Entre com as coordenadas\nColuna: ");
			scanf("%d", &col);
			fflush(stdin);
			
			if((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
			
		}while((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9));
			
		do
		{
			printf("Linha: ");
			scanf("%d", &lin);
			fflush(stdin);
			
			if((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
				
		}while((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9));	
		
		if(campoJ1[col][lin]==0)
		{
			campoJ1[col][lin]=emb;	
			printf("\nEmbarcacao inserida.");
			Sleep(1000);
			inserir++;
		}
		else
		{
			printf("\nPosicao invalida. Escolha outra coordenada. Nesta, ja ha uma embarcacao");	
			Sleep(3000);
		}
		
	}while(inserir<2); // mudar depois

	inserir = 0;
	//-------------------------------------------------------------JOGADOR2-------------------------------------------------------------------------------------
	do
	{
		do
		{
			system("CLS");
			printf("Jogador # 2\nEmbarcacoes inseridas: %d\n\n\n\n", inserir);
			printf("1 - Fragata\n2 - Destroyer\n3 - Sumarino\n\nEntre com o tipo de embarcacao que deseja inserir: ");
			scanf("%d", &emb);
			fflush(stdin);
			
			if((emb!=1)&&(emb!=2)&&(emb!=3))
			{
				printf("Entrada invalida!");
				Sleep(1000);
			}
		
		}while((emb!=1)&&(emb!=2)&&(emb!=3));
		
		do
		{
		
			printf("Entre com as coordenadas\nColuna: ");
			scanf("%d", &col);
			fflush(stdin);
			
			if((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
			
		}while((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9));
			
		do
		{
			printf("Linha: ");
			scanf("%d", &lin);
			fflush(stdin);
			
			if((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
				
		}while((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9));	
		
		if(campoJ2[col][lin]==0)
		{
			campoJ2[col][lin]=emb;	
			printf("\nEmbarcacao inserida.");
			Sleep(1000);
			inserir++;
		}
		else
		{
			printf("\nPosicao invalida. Escolha outra coordenada. Nesta, ja ha uma embarcacao");	
			Sleep(3000);
		}
		
	}while(inserir<2); // mudar depois
	
	
	system("CLS");
	printf("\n\n\t\t\t\t\t\tTUDO PRONTO ! QUE A BATALHA COMECE !\n\n");
	
				
printf("\n\n				                                        ");
printf("\n 			                           .                 |");
printf("\n 			                           +                 |");
printf("\n 			                  .        |                *+W+-*");
printf("\n 			     .           +y        +W+              . H                 .");
printf("\n 			  .  +y            |I.   y  |               ! H= .           .  ^");
printf("\n 			  !   \\     .     |H '. //   |  ___.        .! H  !   +--.--y !  V");
printf("\n 			  !    \\     \\  +=|H|=='.=+ | |====\\   _  '_H_H__H_. H_//=  J !  !");
printf("\n 			. !     \\'    VVV_HHH_\\/__'._H |  E  \\_|=|_|========|_|==|____H. ! _______.");
printf("\n 			I-H_I=I=HH_==_|I_IIIII_I_I_=HH|======.I-I-I-=======-I=I=I=I_=H|=H'===I=I//");
printf("\n 			\\                                                                      ,");
printf("\n 			 |                                                                    //");
printf("\n 			 .___________________________________________________________________'\n\n\n");
	
	
	system("PAUSE");
	Sleep(1000);
	
	
	
do{
	
	
	do{
	
	
		do
		{
			exibeCampo(campoJ1, campoJ2, vez);
			
			printf("\nJogador #%d\n Entre com as coordenadas\nColuna: ", vez);
			scanf("%d", &col);
			fflush(stdin);
			
			if((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
			
		}while((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9));
		
	
	
		do
		{
			printf("Linha: ");
			scanf("%d", &lin);
			fflush(stdin);
			
			if((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
				
		}while((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9));	
	
	if(vez==1)
	{
		switch(campoJ2[col][lin])
		{
			case 0:
			
			printf("\nChuaaa... Acertou a agua !");
			campoJ2[col][lin] = 4;
			
			validaJogada = 1;
						
			break;
			
			case 4:
			
			printf("\nErr... voce já jogou nesta coordenada. Tente outra !");
			Sleep(1500);
			break;
			
			case 1:
			
			printf("\nBooom ... voce destruiu uma Fragata inimiga !");
			campoJ2[col][lin]=5;
			hitJ2++;
			validaJogada = 1;
			
			break;
			
			case 2:
			
			printf("\nBooom ... voce destruiu um Destroyer inimigo !");
			campoJ2[col][lin]=5;
			hitJ2++;
			validaJogada = 1;
			break;
			
			case 3:
			printf("\nBooom ... voce destruiu um Submarino inimigo !");
			campoJ2[col][lin]=5;
			hitJ2++;
			validaJogada = 1;
			break;
			
			case 5:
			printf("\nVoce ja destruiu essa embarcacao. Tente outra coordenada!");
			Sleep(1500);
			break;	
		}
		} //--------------------------------------------------------------------------------------------------------------------------------------
		
	if(vez==2)
	{
		switch(campoJ1[col][lin])
		{
			case 0:
			
			printf("\nChuaaa... Acertou a agua !");
			Sleep(1500);
			campoJ1[col][lin] = 4;
			
			validaJogada = 1;
						
			break;
			
			case 4:
			
			printf("\nErr... voce ja jogou nesta coordenada. Tente outra !");
			Sleep(1500);
			break;
			
			case 1:
			
			printf("\nBooom ... voce destruiu uma Fragata inimiga !");
			Sleep(1500);
			campoJ1[col][lin] = 5;
			hitJ1++;
			validaJogada = 1;
			
			break;
			
			case 2:
			campoJ1[col][lin] = 5;
			printf("\nBooom ... voce destruiu um Destroyer inimigo !");
			Sleep(1500);
			hitJ1++;
			validaJogada = 1;
			break;
			
			case 3:
			printf("\nBooom ... voce destruiu um Submarino inimigo !");
			Sleep(1500);
			campoJ1[col][lin] = 5;
			hitJ1++;
			validaJogada = 1;
			break;
			
			case 5:
			printf("\nVoce ja destruiu essa embarcacao. Tente outra coordenada!");
			Sleep(1500);
			break;
			
			system("CLS");
			exibeCampo(campoJ1, campoJ2, vez);
		}	
		}
		
		
		}while(validaJogada==0);
	
		validaJogada=0;
		vez++;
	
		if(vez==3)
		{
			vez=1;
		}

	}while((hitJ1<10)||(hitJ2<10));	
}

 

  • Curtir 1
Postado

Galera, arrumei o código e está funcionando perfeitamente. Só tem que mexer em uma entrada de dado, se não me engano quantidade de embarcações que serão usadas. Só implementar verificação da entrada válida. Então, divirtam-se

//by Gustavo Mello
//10.12.2018
//ascii art font "http://www.asciiarte.com/"

#include<stdio.h>
#include<windows.h>
#define L 10
#define  C 10
//prototipo das funcoes

int criaCampo(int campoJ1[L][C], int campoJ2[L][C]);
int rodaJogo(int campoJ1[L][C], int campoJ2[L][C]);
void exibeCampo(int campoJ1[L][C], int campoJ2[L][C], int vez, int bat);


int main()
{
	
	int campoJ1[L][C], campoJ2[L][C], op, game=1, campo=0;

	//system("MODE con cols=105 lines=50"); //opcional

printf("\n\n\t\t\t\t\t\t   BATALHA NAVAL\n\n\n\n");
printf("\t                               o o                                      \n");
printf("\t                                 o ooo\n");
printf("\t                                  o oo         ___      \n");
printf("\t                                      o o      | | #)\n");
printf("\t                                       oo     _|_|_#_\n");
printf("\t                                         o   | U505  |\n");
printf("\t    __                    ___________________|       |____________________  \n");
printf("\t   |   -_______-----------                                                )\n");
printf("\t  >|    _____                                                   Brasil   )\n");
printf("\t   |__ -     ---------_________________________________________________ )\n");


Sleep(2000);
	
	do{
	
	
	do
	{
	
	system("CLS");
	
	if(campo==1)
	{
		printf("\n\n\t\t\t\t\t\tMenu principal\n\n\n\n\n\t1 - Criar campo de batalha\n\t2 - Jogar (o)\n\t3 - Resultado\n\t4 - Sair\n\n\tEntre com uma opcao: ");	
	}
	else
	{
		printf("\n\n\t\t\t\t\t\tMenu principal\n\n\n\n\n\t1 - Criar campo de batalha\n\t2 - Jogar (x)\n\t3 - Resultado\n\t4 - Sair\n\n\tEntre com uma opcao: ");	
	}

	scanf("%d", &op);
	fflush(stdin);
	
	if((op!=1)&&(op!=2)&&(op!=3)&&(op!=4))
	{
		printf("\n\tOpcao invalida!");
		Sleep(1000);
	}
	
	}while((op!=1)&&(op!=2)&&(op!=3)&&(op!=4));
	
	
	
	switch(op)
	{
		case 1:
		campo=criaCampo(campoJ1, campoJ2);
		campo =1 ;
		break;
		
		case 2:
		if(campo==1)
		{
			rodaJogo(campoJ1, campoJ2);
		}
		else
		{
			printf("\nVoce deve criar o campo antes de jogar !");
			Sleep(2000);
		}
		
			
	}
	
	}while(game==1);
	
	
	
}


int criaCampo(int campoJ1[L][C], int campoJ2[L][C])
{
	system("CLS");
	printf("\n\n\t\t\t\t\t\tCRIAR CAMPO DE BATALHA");
	printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\tCriando campo de batalha ...\n");
	Sleep(1000);
	printf("\r\t\t\t\t\t\t~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\r\t\t\t\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~");
	Sleep(100);
	printf("\n\n\t\t\t\t\t\t\tConcluido!\n");
	Sleep(1000);
	
	int i, j;
	
	for(i=0;i<L;i++)
	{
		for(j=0; j<C; j++)
		{
			campoJ1[i][j]=0;
			campoJ2[i][j]=0;
		}
	}
		return 1;
}

void exibeCampo(int campoJ1[L][C], int campoJ2[L][C], int vez, int bat)
{
	int i, j, num=0;
	
	if(bat==1)
	{

	printf("\n");
	printf("       0     1     2     3     4     5     6     7     8     9   \n\n");
	
	if(vez==1)
	{
		
		for(i=0;i<C;i++)
		{
			printf("%d    ",num);
			
			for(j=0; j<L; j++)
			{
				if((campoJ2[j][i]==0)||(campoJ2[j][i]==1)||(campoJ2[j][i]==2)||(campoJ2[j][i]==3))			
				{
					printf(" ~~~~ ");
				}
					
					if(campoJ2[j][i]==4)
					{
						printf("\\_X_/ ");
					}	
					
						if(campoJ2[j][i]==5)
						{			
							printf(" (X)  ");
						}
			}
			printf("\n\n");
			num++;			
		}
	}


	//-----------------------------------------------------------------------------jogador 2------------------------------------------------------
	
if(vez==2)
{
		
		for(i=0;i<C;i++)
		{
			printf("%d    ",num);
			
			for(j=0; j<L; j++)
			{
				if((campoJ1[j][i]==0)||(campoJ1[j][i]==1)||(campoJ1[j][i]==2)||(campoJ1[j][i]==3))
				{
					printf(" ~~~~ ");
				}
					
					if(campoJ1[j][i]==4)
					{
						printf(" (X)  ");
					}
						if(campoJ1[j][i]==5)
						{
							printf("\\_X_/ ");
						}				
			}
			
			printf("\n\n");
			num++;			
		}
}
}	
	else
	{
			
	if(vez==1)
	{
		printf("       0     1     2     3     4     5     6     7     8     9   \n\n");
		for(i=0;i<C;i++)
		{
			printf("%d    ",num);
			
			for(j=0; j<L; j++)
			{
				if((campoJ1[j][i]==1)||(campoJ1[j][i]==2)||(campoJ1[j][i]==3))
				{
					printf("\\___/ ");
				}
				else
				{
					printf(" ~~~~ ");
				}				
					
			}
			
			printf("\n\n");
			num++;			
		}
	}
	
	if(vez==2)
	{
{
		printf("       0     1     2     3     4     5     6     7     8     9   \n\n");
		for(i=0;i<C;i++)
		{
			printf("%d    ",num);
			
			for(j=0; j<L; j++)
			{
				if((campoJ2[j][i]==1)||(campoJ2[j][i]==2)||(campoJ2[j][i]==3))
				{
					printf("\\___/ ");
				}
				else
				{
					printf(" ~~~~ ");
				}				
					
			}
			
			printf("\n\n");
			num++;			
		}			
		}
	
	}	
}
}

int rodaJogo(int campoJ1[L][C], int campoJ2[L][C])
{	
	int inserir=0, emb, col, lin, vez=1, hitJ1=0, hitJ2=0, jogadasJ1=0, jogadasJ2=0, validaJogada=0, quant, bat=0;
	
	system("CLS");
	printf("\t\t\t\tJOGAR\n\n\n\nQuantas embarcacoes serao inseridas por jogador?\nEntre com o numero: ");
	scanf("%d", &quant);
	fflush(stdin);
	
	do
	{
		do
		{
			vez=1;
			system("CLS");
			printf("\t\t\tJogador # 1 e sua vez de inserir suas embarcacoes\n\n\n\tTipos de embarcacao\n\n");
			printf("\t1 - Fragata\n\t2 - Destroyer\n\t3 - Sumarino\n\n");
			exibeCampo(campoJ1, campoJ2, vez, bat);
			printf("Entre com o numero da embarcacao e tecle enter: ");
			scanf("%d", &emb);
			fflush(stdin);
			
			if((emb!=1)&&(emb!=2)&&(emb!=3))
			{
				printf("Entrada invalida!");
				Sleep(1000);
			}
		
		}while((emb!=1)&&(emb!=2)&&(emb!=3));
		
		do
		{
		
			printf("Entre com as coordenadas\nColuna: ");
			scanf("%d", &col);
			fflush(stdin);
			
			if((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
			
		}while((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9));
			
		do
		{
			printf("Linha: ");
			scanf("%d", &lin);
			fflush(stdin);
			
			if((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
				
		}while((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9));	
		
		if(campoJ1[col][lin]==0)
		{
			campoJ1[col][lin]=emb;	
			printf("\nEmbarcacao inserida.");
			Sleep(1000);
			inserir++;
		}
		else
		{
			printf("\nPosicao invalida. Escolha outra coordenada. Nesta, ja ha uma embarcacao");	
			Sleep(3000);
		}
		
		
	}while(inserir<quant);

	inserir = 0;
	//-------------------------------------------------------------JOGADOR2-------------------------------------------------------------------------------------
	do
	{
		do
		{
			vez=2;
			system("CLS");
			printf("\t\t\tJogador # 2 e sua vez de inserir suas embarcacoes\n\n\n\tTipos de embarcacao\n\n");
			printf("\t1 - Fragata\n\t2 - Destroyer\n\t3 - Sumarino\n\n");
			exibeCampo(campoJ1, campoJ2, vez, bat);
			printf("Entre com o numero da embarcacao e tecle enter: ");
			scanf("%d", &emb);
			fflush(stdin);
						
			if((emb!=1)&&(emb!=2)&&(emb!=3))
			{
				printf("Entrada invalida!");
				Sleep(1000);
			}
		
		}while((emb!=1)&&(emb!=2)&&(emb!=3));
		
		do
		{
		
			printf("Entre com as coordenadas\nColuna: ");
			scanf("%d", &col);
			fflush(stdin);
			
			if((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
			
		}while((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9));
			
		do
		{
			printf("Linha: ");
			scanf("%d", &lin);
			fflush(stdin);
			
			if((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
				
		}while((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9));	
		
		if(campoJ2[col][lin]==0)
		{
			campoJ2[col][lin]=emb;	
			printf("\nEmbarcacao inserida.");
			Sleep(1000);
			inserir++;
		}
		else
		{
			printf("\nPosicao invalida. Escolha outra coordenada. Nesta, ja ha uma embarcacao");	
			Sleep(3000);
		}
		
	}while(inserir<quant);
	bat = 1 ;
	vez=1;
	system("CLS");
	printf("\n\n\t\t\t\t\t\tTUDO PRONTO ! QUE A BATALHA COMECE !\n\n");
	
				
printf("\n\n			                                        ");
printf("\n 		                           .                 |");
printf("\n 		                           +                 |");
printf("\n 		                  .        |                *+W+-*");
printf("\n 		     .           +y        +W+              . H                 .");
printf("\n 		  .  +y            |I.   y  |               ! H= .           .  ^");
printf("\n 		  !   \\     .     |H '. //   |  ___.        .! H  !   +--.--y !  V");
printf("\n 		  !    \\     \\  +=|H|=='.=+ | |====\\   _  '_H_H__H_. H_//=  J !  !");
printf("\n 		. !     \\'    VVV_HHH_\\/__'._H |  E  \\_|=|_|========|_|==|____H. ! _______.");
printf("\n 		I-H_I=I=HH_==_|I_IIIII_I_I_=HH|======.I-I-I-=======-I=I=I=I_=H|=H'===I=I//");
printf("\n 		\\                                                                      ,");
printf("\n 		 |                                                                    //");
printf("\n 		 .___________________________________________________________________'\n\n\n");
	
	
	system("PAUSE");
	Sleep(1000);
	
	//-----------------------------------------------------------batalha ---------------------------------------------
	
do{
	
	
	do{
	
	
		do
		{
			system("CLS");
			
			
			printf("\t\t    JOGADOR #%d E SUA VEZ DE JOGAR\n\n\n\n", vez);
			exibeCampo(campoJ1, campoJ2, vez, bat);
			
			printf("\n\nEntre com as coordenadas\nColuna: ", vez);
			scanf("%d", &col);
			fflush(stdin);
			
			if((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
			
		}while((col!=0)&&(col!=1)&&(col!=2)&&(col!=3)&&(col!=4)&&(col!=5)&&(col!=6)&&(col!=7)&&(col!=8)&&(col!=9));
		
	
	
		do
		{
			printf("Linha: ");
			scanf("%d", &lin);
			fflush(stdin);
			
			if((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9))
			{
				printf("\nPosicao invalida! Tente novamente.");
				Sleep(3000);
				system("CLS");
			}
				
		}while((lin!=0)&&(lin!=1)&&(lin!=2)&&(lin!=3)&&(lin!=4)&&(lin!=5)&&(lin!=6)&&(lin!=7)&&(lin!=8)&&(lin!=9));	
	
	if(vez==1)
	{
		switch(campoJ2[col][lin])
		{
			case 0:
			
			printf("\nChuaaa... Acertou a agua !");
			campoJ2[col][lin] = 4;
			
			validaJogada = 1;
						
			break;
			
			case 4:
			
			printf("\nErr... voce ja jogou nesta coordenada. Tente outra !");
			break;
			
			case 1:
			
			printf("\nBooom ... voce destruiu uma Fragata inimiga !");
			campoJ2[col][lin]=5;
			hitJ2++;
			validaJogada = 1;
			
			break;
			
			case 2:
			
			printf("\nBooom ... voce destruiu um Destroyer inimigo !");
			campoJ2[col][lin]=5;
			hitJ2++;
			validaJogada = 1;
			break;
			
			case 3:
			printf("\nBooom ... voce destruiu um Submarino inimigo !");
			campoJ2[col][lin]=5;
			hitJ2++;
			validaJogada = 1;
			break;
			
			case 5:
			printf("\nVoce ja destruiu essa embarcacao. Tente outra coordenada!");
			break;	
			
			
		}
			Sleep(1500);
			system("CLS");
		} //--------------------------------------------------------------------------------------------------------------------------------------
		
	if(vez==2)
	{
		switch(campoJ1[col][lin])
		{
			case 0:
			
			printf("\nChuaaa... Acertou a agua !");
			Sleep(1500);
			campoJ1[col][lin] = 4;
			
			validaJogada = 1;
						
			break;
			
			case 4:
			
			printf("\nErr... voce ja jogou nesta coordenada. Tente outra !");
			break;
			
			case 1:
			
			printf("\nBooom ... voce destruiu uma Fragata inimiga !");
			Sleep(1500);
			campoJ1[col][lin] = 5;
			hitJ1++;
			validaJogada = 1;
			
			break;
			
			case 2:
			campoJ1[col][lin] = 5;
			printf("\nBooom ... voce destruiu um Destroyer inimigo !");
			Sleep(1500);
			hitJ1++;
			validaJogada = 1;
			break;
			
			case 3:
			printf("\nBooom ... voce destruiu um Submarino inimigo !");
			Sleep(1500);
			campoJ1[col][lin] = 5;
			hitJ1++;
			validaJogada = 1;
			break;
			
			case 5:
			printf("\nVoce ja destruiu essa embarcacao. Tente outra coordenada!");
			
			break;
		}	
			Sleep(1500);
			system("CLS");
		}
		
		
		}while(validaJogada==0);
	
		validaJogada=0;
		vez++;
	
		if(vez==3)
		{
			vez=1;
		}

	}while((hitJ1<quant)&&(hitJ2<quant));
	printf("\n\nJOGO ACABOU");	
	
	if(hitJ1>hitJ2)
	{
		printf("\n\nJogador #2 e o vencedor !");
	}
	else
	{
		printf("\n\nJogador #1 e o vencedor !\n\n");
	}
	system("PAUSE");
}


	
	
	
	
	
	
	

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!