Ir ao conteúdo
  • Cadastre-se

guhbrj

Membro Pleno
  • Posts

    54
  • Cadastrado em

  • Última visita

Tudo que guhbrj postou

  1. Galera, boa noite ! Alguém saberia porque o vetor não sofre alteração após ser alterado pela função embaralhar ?
  2. Galera, beleza? Alguém saberia dizer como faz para instanciar uma porta de comunicação via bluetooth, no PC, e enviar dados/variáveis através dela? Obrigado !
  3. @Luís Roberto C. da Silva Esse goto não é para ir para uma linha determinada do programa e sim para uma coordenada na tela xD
  4. Qualquer dúvida, poste aqui. Sempre tem alguém para ajudar.
  5. Olá ! Vi que não está armazenando os números. Pense na possibilidade de utilizar um vetor para guardar os números gerados aleatoriamente. Vi, também que no problema, pede-se que a quantidade de números a ser gerado deve ser informado pelo usuário através de "n". Depois que armazenar os números gerados, você pode usar um for dentro do outro para verificar os maiores entre eles e printar na tela. OBS: Não esqueça de levar em consideração o fato de que, conforme descrito no enunciado, deve-se sortear um número 'D' (sugiro de 0 a 9) e enumerar os maiores números alocados neste vetor que terminem com 'D'. Você tem que identificar dezena, centena e unidade. Abaixo, seguem algumas dicas de código: gerando números aleatórios através de seed / armazenando em um vetor. #include<stdlib.h> #include<time.h> #include<stdio.h> int main() { int n, i; srand(time(NULL)); printf("Entre com a quantidade de números que deseja gerar aleatoriamente: "); scanf("%d", &n); int vet[n]; for(i=0; i<n; i++) { vet[i]= rand()%100; //gerando numeros aleatórios até 100 printf("%d ", vet[i]); //esta linha é apenas para debbugar o código } }
  6. Galera, boa noite ! Estou aprendendo Python na prática e gostaria da ajuda de vocês. Estou lendo uma string de um arquivo .dat, no meu pc e estou comparando com uma string mas não está dando certo .Acredito que o tipo do retorno da função read() não seja uma string. Abaixo segue o códido arq = open('C:\\Users\\MeuPC\\Desktop\\MonitoramentoIAlfred\\Arquivos\\LMsg.dat', 'r') mensagem = arq.read() if mensagem == "texto qualquer": print(mensagem) Não entra no IF. podem ajudar ? Tem que fazer um casting ? valeu
  7. Olá pessoal ! Estou precisando da ajuda de vocês. Estou desenvolvendo um dispositivo de monitoramento que dispara alarmes por e-mail, usando arduino, que se comunica com um computador via porta COM. No computador, há um script desenvolvido em powershell que interpreta os dados do arduino e dispara e-mails para um determinado usuário. Está funcionado perfeitamente. Agora gostaria de implementar uma nova função. Quero enviar um e-mail que será lido por powershell e interpretado pelo computador que enviará requisições para o arduino que retornara os dados solicitados. Alguém saberia como fazer um script em shell para ler o conteúdo do e-mail e realizar as tarefas ?
  8. Esse programa só calcula potências de 2. A variável x conta quantas vezes foi necessário fazer a divisão; O programa pega um número e devolve sua raiz, como o @CARRETA PCZAO pediu. Temos um clássico problema de arredondamento, tendo em vista que estamos trabalhando com divisão entre números inteiros. A proposta é demonstrar a possibilidade da implementação de uma função recursiva para a solução deste problema. O código é aberto e podem fazer as alterações necessárias para adequação, de acordo com a demanda de cada um.
  9. Aqui segue o programa "completo". Vale lembrar que este algoritmo só calcula potências de 2. Se quiser que calcule outras potencias, basta alterar a linha 30 //return pot (num/2, x+1); #include<stdio.h> int pot(int num, int x); int main() { int num, result=0 ,x=1; printf("entre com um numero: ") ; scanf("%d", &num); if(num%2==1) { printf("\npotencia nao existe"); } else { result = pot(num, x); printf("%d = 2^%d",num, result); } } int pot(int num, int x) { if(num/2>1) { printf("x = %d num = %d\n", x, num); // essa linha e so pra apurar o comportamento do codigo return pot (num/2, x+1); } else { return x; } }
  10. @Simon Viegas tente apenas ler num na main e passar por parâmetro pra função pot(), e tirar o retante do código. Deve funcionar.
  11. Já tem algo desenvolvido? Se puder postar. não tenho conhecimento mas podemos ajudar no algoritmo.
  12. guhbrj

    C Matriz de Led 8x8 MikroC

    Qual plataforma você está utilizando ?
  13. Você pode usar recursividade para isso. lembra de iniciar x=1, na main int pot(int num, int x) { if(num/2>1) { //debbug//printf("x = %d num = %d\n", x, num); return pot (num/2, x+1); } else { return x; }
  14. Boa noite @Marquinhos Rolemã, verifique se os componentes que está usando no Arduino estão de acordo com a especificação elétrica (se consome muita energia) as vezes estas peculiaridades podem impedir que o projeto seja compilado e upado pra placa. Tente remover algum do esquema elétrico e tente novamente ou toque a fonte de energia.
  15. Boa noite ! na linha "fscanf(arq1, "home/n" ,"rt");" se você está lendo de um arquivo e quer manipular os dados lidos, você deve 'jogá-lo' na memória, em uma variável de mesmo tipo do dado lido. Ex.: Supomos que o dado a ser lido era do tipo INT, logo ficaria : fscanf(arq1,"%d", &variaveldotipoINT); se deseja escrever, aí sim você usa o comando fprintf(arq1,"conteudo a ser escrito %d", variaveldotipoINT); atente também para o tipo de abertura do arquivo, se for leitura "r" ou escrita "w"
  16. Você vai usar esse código em algum Hardware tipo Arduino ou Raspberry? Pergunto isso porque a sintaxe pode variar de acordo com a aplicabilidade do código e, também sabendo da aplicabilidade, posso ajudar de maneira mais adequada.
  17. Nesse caso, acredito que nem precisaria de um FOR. seria apenas colocar: char novaentrada, string[20]; printf("\nEntre com a posicao que deseja alterar: "); scanf("%d", &posicao); //numero inteiro fflush(stdin); printf("Entre com o novo caracter para esta posicao: "); scanf("%c", &novaentrada); fflush(stdin); string[posicao]=novaentrada;
  18. Olá, tente implementar o código a seguir ao seu e veja se funciona. #include<stdio.h> #include<string.h> int main() { int tam, i=0, encontrei=0, j, insere=0; char email[30], dominio[20], valido=0; do { printf("Entre com o e-mail: "); gets(email); fflush(stdin); tam = strlen(email); printf("Tamanho da string: %d", tam); do { if(email[i] =='@') { printf("\nachei! ta na posicao %d", i+1); for(j=i; j<tam; j++) { dominio[insere]=email[j]; printf("%c - copiado para dominio[%d]\n", email[j], j); insere++; encontrei = 1; } } i++; }while((i<=tam)&&(encontrei==0)); valido = verificaEmail(dominio); // pode usar essa funcao que retorna um inteiro dos strcpy para mudar o valor da variavel "valido" para entao sair do laco de repeticao if(valido==0) { printf("\nEmail invalido, entre com outro endereco\n"); } }while(valido=0); } adicionado 7 minutos depois
  19. Tente inserir a biblioteca #include<string.h> essa função pertence à esta biblioteca.
  20. #include<stdio.h> int main() { int idade; FILE *ponteiro; ponteiro = fopen("Nome_do_Arquivo.txt", "w"); //neste caso abre o arquivo apenas para ESCRITA. printf("Entre com a idade: "); scanf("%d", &idade); fprintf(ponteiro,"idade: %d\n", idade); fclose(ponteiro); } adicionado 2 minutos depois Caso queira maiores esclarecimentos, segue link com os parâmetros de abertura de arquivo entre outros: http://wiki.icmc.usp.br/images/8/82/Manipulacao_arquivos.pdf
  21. guhbrj

    C Batalha Naval Matriz 10x10

    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"); }
  22. guhbrj

    C Batalha Naval Matriz 10x10

    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)); }
  23. guhbrj

    C Batalha Naval Matriz 10x10

    Tem que ser um campo pra os 2 ? Vejo um problema caso os jogadores resolvam por as embarcações na mesma linha/coluna.
  24. allandxd, a variável tag deveria receber o conteúdo da variável mp - (operação de subtração) conteúdo da variável mc.

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!