Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Adrielle Morais

C Batalha Naval em C

Recommended Posts

gente, como faz para esconder onde estão os "navios" na matriz e mudar a cor da fonte na matriz quando o usuário acertar?

 

#include
#include
#include ///para usar a hora
#define n 5
int main ()
{
    setlocale(lc_all,"portuguese");
    int mat [n][n],i,j,linha,coluna,tiros=0,acertos=0;
    srand (time(null));

    /// 1º passo ---- zerar matriz
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
        {
            mat [j] = 0;
        }
    }
    /// 2º passo ---- posicionar lanchas
    for (i = 1; i <= 5; i++)
    {
        do
        {
            linha = rand() % 5;
            coluna = rand() %5;
        }
        while (mat [linha][coluna] == 1);
        mat [linha][coluna] = 1;
    }
     ///mostrar matriz
    for (i = 0; i < n; i++)
    {
        printf("\n");

        for (j = 0; j < n; j++)
        {
            printf(" %i",mat [j]);
        }
    }


    /// 3º passo ---- jogar
    while (acertos < 5)
    {
        tiros++;
        printf("\n");
        printf("\nqual linha você deseja atacar (0-4): ");
        scanf("%i",&linha);
        printf("qual coluna você deseja atacar (0-4): ");
        scanf("%i",&coluna);
        if (mat [linha][coluna] == 0)
        {
            mat [linha][coluna] = 2;
        }
        else
        {
            if (mat [linha][coluna] == 1)
            {
                mat [linha][coluna] = 3;
                acertos++;
            }
        }
        printf("\ntiros: %i", tiros);
        printf("\nacertos: %i", acertos);
    }

    return 0;
}

Editado por Adrielle Morais
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Adrielle Morais     para posta seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar ,  pois senão seu código fica faltando alguns caracteres como os  [ i ]   que sumiram do seu código ,  para colorir a fonte você precisa criar uma função que faça isso pois na linguagem c existe poucos comandos que faça isso ,  então seu código com algumas modificações pode ser assim  :

#include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>/*///para usar a hora*/
#define n 5
/*             0     1    2     3   4     5      6       7        8       */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10          11       12       13         14     15           */
static int __BACKGROUND = BLACK;
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letra, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letra;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letra + (__BACKGROUND << 4));
}
void mostrar_tabuleiro(int mat[5][5]);
int main (){
    int mat[n][n],i,j,linha,coluna,tiros=0,acertos=0;
    setlocale(LC_ALL,"");
    srand(time(NULL));
    /*/// 1º passo ---- zerar matriz*/
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            mat[i][j] = 0;
        }
    }
    /*/// 2º passo ---- posicionar lanchas*/
    /* zero será água e coloque 1 para lancha, 2 para submarino e etc . . . */
    for(i=1;i<=5;i++){
        do{
            linha  = rand() %5;
            coluna = rand() %5;
        }while(mat[linha][coluna] == 1);
        mat[linha][coluna] = 1;
    }
     /*///mostrar matriz*/
    for(i=0;i<n;i++){
        printf("\n");
        for (j=0;j<n;j++){
            printf(" %i",mat[i][j]);
        }
    }
    getch();
    /*/// 3º passo ---- jogar*/
    while (acertos < 5){
        mostrar_tabuleiro(mat);
        tiros++;
        /*printf("\n");*/
        printf("\n\nqual linha  você deseja atacar (0-4): ");
        scanf("%d",&linha);
        printf("qual coluna você deseja atacar (0-4): ");
        scanf("%d",&coluna);
        if(mat[linha][coluna] == 0){
            mat[linha][coluna] = 2;
        }
        else{
            if(mat[linha][coluna] == 1){
                mat[linha][coluna] = 3;/* acertou em algum objeto */
                acertos++;
            }
        }
        printf("\ntiros -----: %d",tiros  );
        printf("\nacertos ---: %d",acertos);
    }
    return 0;
}
void mostrar_tabuleiro(int mat[5][5]){
    int i,j;
    printf("\n");
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            if(mat[i][j]==1){/* 1 é lancha */
                textcolor(14,0);/* pode usar número da cor  ou nome da cor */
                printf("L ");
            }
            else{
                if(mat[i][j]==0){/* zero é Água */
                    textcolor(11,0);
                    printf(". ");
                }
                else{
                    if(mat[i][j]==3){
                        textcolor(12,0);
                        printf("X ");
                    }
                }
            }
        }
        printf("\n");
    }
    textcolor(7,0);
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×