Beispiel #1
0
//---------------------------------------------------------------------------------------------------------------------------------------------------
void posicionar_embarcacoes(MapaJogo *mapa){
    /*função para posicionar os embarcacoes,essa função ira imprimir o mapa
    atualizado a cada vez que o usuario colocar uma coordenada valida*/
    intizinho i=0;
    intizinho contador=0;
    Embarcacao embarcacao;
    imprimir_mapa(mapa->player);
    for(i=0; i<QUANTIDADE_PORTA_AVIAO; i++, contador++){
		embarcacao = cria_embarcacao(mapa->player, PORTA_AVIAO, contador);
        coloca_embarcacao(mapa->player, embarcacao);
        imprimir_mapa(mapa->player);
    }
    for(i=0; i<QUANTIDADE_ENCOURACADO; i++, contador++){
        embarcacao = cria_embarcacao(mapa->player, ENCOURACADO, contador);
        coloca_embarcacao(mapa->player, embarcacao);
        imprimir_mapa(mapa->player);
    }
    for(i=0; i<QUANTIDADE_CRUZADOR; i++, contador++){
        embarcacao = cria_embarcacao(mapa->player, CRUZADOR, contador);
        coloca_embarcacao(mapa->player, embarcacao);
        imprimir_mapa(mapa->player);
    }
    for(i=0; i<QUANTIDADE_SUBMARINO; i++, contador++){
        embarcacao = cria_embarcacao(mapa->player, SUBMARINO, contador);
        coloca_embarcacao(mapa->player, embarcacao);
        imprimir_mapa(mapa->player);
    }
    pause();
}
Beispiel #2
0
int main() {
	gerar_tabuleiro();
	colocar_pecas();
	int i, j;
	int n = 3;
	int jogador = 1;
	

	imprimir_mapa();

	while(n--) {
		printf("Jogador %d:\n", jogador);
		scanf("%d%d%d%d", &x, &y, &x2, &y2);

		if(!movimentar(jogador, x, y, x2, y2)) printf("Posicao impossivel de ser acessada\n");

		imprimir_mapa();

		if(n%2 == 1) jogador = 1;
		else jogador = 2;
	}
	return 0;
}
Beispiel #3
0
//---------------------------------------------------------------------------------------------------------------------------------------------------
Embarcacao cria_embarcacao(char mapa[][MAX],const intizinho tipo, intizinho quantidade){
   Embarcacao embarcacao;
   int embarcacao_valida=0;
   embarcacao.tipo = tipo;
   int valida=-1,vazia=-1;
   do{
        switch(embarcacao.tipo){
            case PORTA_AVIAO:
            case ENCOURACADO:
            case CRUZADOR:
                do{
                    system("cls || clear");
                    imprimir_mapa(mapa);
                    //printf("%d ", quantidade);
                    imprime_comando_popa(tipo);
                    do{
                        fflush(stdin);
                        scanf ("%c", &embarcacao.popa.x);
        				if (embarcacao.popa.x == CHAR_ESPACO){
                            printf("Insira as Coordenadas.");
                            pause();
                        }else if (embarcacao.popa.x == CHAR_ENTER){
                            printf("Insira as Coordenadas sem Espa%co.", CHAR_CEDILHA);
                            pause();
                        }
                    }while(embarcacao.popa.x == CHAR_ENTER ||embarcacao.popa.x == CHAR_ESPACO);
                    scanf ("%d",&embarcacao.popa.y);
                    if((intizinho)embarcacao.popa.x >= CHAR_A_LOWER){
                       embarcacao.popa.x = (embarcacao.popa.x - (CHAR_A_LOWER - CHAR_A_UPPER));
                    }
                    valida=posicao_valida(embarcacao.popa);
                    vazia=posicao_vazia(mapa, embarcacao.popa);
                    if (valida==0 || vazia==0){
                        printf("Coordenadas Inv%clidas.", CHAR_AAGUDO);
                        pause();
                    }
                }while(!(vazia==1 && valida==1));
                do{
                    system("cls || clear");
                    imprimir_mapa(mapa);
                    printf("%d ", quantidade);
                    imprime_comando_proa(tipo);
                    do{
                        fflush(stdin);
                        scanf ("%c", &embarcacao.proa.x);
                        if (embarcacao.proa.x == CHAR_ESPACO){
                            printf("Insira as Coordenadas.");
                            pause();
                        }else if (embarcacao.proa.x == CHAR_ENTER){
                            printf("Insira as Coordenadas sem Espa%co.", CHAR_CEDILHA);
                            pause();
                        }                    
                    }while(embarcacao.proa.x == CHAR_ENTER || embarcacao.proa.x == CHAR_ESPACO);
                    scanf ("%d", &embarcacao.proa.y);
                    if((intizinho)embarcacao.proa.x >= CHAR_A_LOWER){
                       embarcacao.proa.x = (embarcacao.proa.x - (CHAR_A_LOWER - CHAR_A_UPPER));
                    }
                    valida=posicao_valida(embarcacao.proa);
                    vazia=posicao_vazia(mapa, embarcacao.proa);
                    if (valida==0 || vazia==0){
                        printf("Coordenadas Inv%clidas.", CHAR_AAGUDO);
                        pause();
                    }
                }while(!(vazia==1 && valida==1));
                break;
            case SUBMARINO:
                do{
                    system("cls || clear");
                    imprimir_mapa(mapa);
                    imprime_comando_popa(tipo);
                    do{
                        fflush(stdin);
                        scanf ("%c", &embarcacao.popa.x);
                        if (embarcacao.popa.x == CHAR_ESPACO){
                            printf("Insira as Coordenadas.");
                            pause();
                        }else if (embarcacao.popa.x == CHAR_ENTER){
                            printf("Insira as Coordenadas sem Espa%co.", CHAR_CEDILHA);
                            pause();
                        }
                    }while(embarcacao.popa.x == CHAR_ENTER ||embarcacao.popa.x == CHAR_ESPACO);
                    scanf ("%d",&embarcacao.popa.y);
                    if((intizinho)embarcacao.popa.x >= CHAR_A_LOWER){
                       embarcacao.popa.x = (embarcacao.popa.x - (CHAR_A_LOWER - CHAR_A_UPPER));
                    }
                    valida=posicao_valida(embarcacao.popa);
                    vazia=posicao_vazia(mapa, embarcacao.popa);
                    if (valida==0 || vazia==0){
                        printf("Coordenadas Inv%clidas.", CHAR_AAGUDO);
                        pause();
                    }
                }while(!(vazia==1 && valida==1));
                embarcacao.proa = embarcacao.popa;
                break;
            default:
                //nothing
                break;
        }
        embarcacao_valida = coordenada_valida(mapa, embarcacao);
        if(embarcacao.tipo == SUBMARINO){
            embarcacao_valida = TRUE;
        }else if(!embarcacao_valida){
            printf("Coordenadas Inv%clidas.", CHAR_AAGUDO);
            pause();
        }
    }while(!embarcacao_valida);
   
   return embarcacao;
}