Ir ao conteúdo
  • Cadastre-se

ceciliaellen

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

2

1 Seguidor

  1. Preciso criar um campo minado em C que precisa ter algumas entradas, sendo elas. N de vezes que o jogador irá jogar Tamanho do tabuleiro (será sempre uma matriz quadrada) Obs: Recebendo o tamanho do tabuleiro preciso definir seus elementos sendo, x para espaço vazio e b para bomba. Nessa parte do desenvolvimento tenho um erro e não consigo resolvê-lo. Consigo imprimir os elementos da primeira linha e a segunda sai exatamente igual a primeira. <CODE> #include <stdio.h> #include <stdlib.h> /********************************************************************************************************************************* TRABALHO PRÁTICO 1 - CAMPO MINADO - NA PRIMEIRA LINHA INDICAR A QUANTIDADE DE JOGOS -> LIMITADO DE 1 À 10 JOGOS. - NA SEGUNDA LINHA INDICAR O TAMANHO DA MATRIZ -> REPRESENTAÇÃO DO TABULEIRO. - NAS LINHAS SEGUINTES DETERMINAR OS ELEMENTOS DA MATRIZ -> B = BOMBA E X = ESPAÇO VAZIO. - NA LINDA SEGUINTE INDICAR O NÉMERO DE MOVIMENTOS A SEREM REALIZADOS. - EM SEGUIDA ENTRADA DOS VALORES DAS POSIÇÕES X E Y. *********************************************************************************************************************************/ // PROTÓTIPO DAS FUNÇOES int tabuleiro_cm (); int main() { int partidas; int tam_tabuleiro; int num_movimentos; printf ("Defina o numero de partidas:"); scanf ("%d", &partidas); if (partidas == 0 || partidas > 10) { printf ("Defina partidas entre 0 e 1:"); scanf ("%d", &partidas); } printf ("Defina o Tamanho do Tabuleiro:"); scanf ("%d", &tam_tabuleiro); if (tam_tabuleiro < 2 || tam_tabuleiro > 100) { printf ("Defina o tamanho do tabuleiro entre 2 e 100:"); scanf ("%d", &tam_tabuleiro); } tabuleiro_cm (tam_tabuleiro); } int tabuleiro_cm(tam_tabuleiro) { char matriz_tabuleiro[tam_tabuleiro][tam_tabuleiro]; for (char linha = 0; linha < tam_tabuleiro; linha++) { for (char coluna = 0; coluna < tam_tabuleiro; coluna++) { scanf ("%c", &matriz_tabuleiro[linha][coluna]); printf("%c", matriz_tabuleiro[linha][coluna]); } } } TP01_CampoMinado.pdf v3.txt
  2. Olá boa tarde! estou desenvolvendo uma "roleta do bota fogo" porém no momento da execução do programa não consigo achar o erro. Se alguém conseguir desvendar este problema me ajudem por favor. veja a seguir a característica do programa e o meu já feito. Já para entrada de dados são utilizadas três chaves push-button que fazem o papel de roletas (ROL0 – ROL2). Quando pressionada corresponderá à entrada de uma pessoa na respectiva roleta. A seleção de público (total/individual) que será apresentado nos displays, é determinada pela combinação de duas chaves on-off (Sel0 e Sel1), conforme a seguinte tabela: Sel1 Sel0 Público que passou pela 0 0 Total 0 1 Roleta 1 1 0 Roleta 2 1 1 Roleta 3  Programa principal:  Configurar as portas 1 e 2 para correto funcionamento do sistema;  Monitorar as entradas do sistema para realizar a contagem de pessoas que passam pelas roletas;  Detectar o estouro de capacidade de público do estádio;  Monitorar qual a informação que será exibida nos displays em função da seleção das chaves (Sel0 e Sel1);  Chamar a função mostra_display para apresentar o público relativo a combinação das chaves Sel0 e Sel1.  Função mostra_display  Recebe o público como parâmetro e mostra nos displays o respectivo valor. #include "<msp430x20x3.h>" // SOMA,ROLETA1,ROLETA2,ROLETA3 unsigned char ROLETAS[4]={0,0,0,0}; // 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 unsigned char cod[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F}; unsigned char valor = 0; /*------------------------------------------------------------------------------ ;NOME: TEMPO ;DESCRICAO: FAZ UMA CONTA DE 65535. ;ENTRADA: - ;SAIDA: - ;------------------------------------------------------------------------------ */ void tempo() { unsigned int cont=0xffff; while(cont!=0) cont=cont-1; } /*------------------------------------------------------------------------------ ;NOME: MOSTRA_DISPLAY ;DESCRICAO: APRESENTA EM DOIS DISPLAYS DE 7 SEGMENTOS O VALOR DA DEZENA E UNIDADE DE QUALQUER NÚMERO DE 2 DÍGITOS DECIMAL ;ENTRADA: valor - NÚMERO EM HEXADECIMAL QUE SERÁ MOSTRADO ;SAIDA: - ;------------------------------------------------------------------------------ */ void mostra_display(unsigned char valor) { unsigned char unidade=valor,dezena=0; while (unidade > 9) { dezena=dezena+1; unidade=unidade-10; } P2OUT=cod[unidade]; P1OUT|= 0x01; tempo(); P1OUT&=0xFE; P2OUT=cod[dezena]; P2OUT|= 0x80; tempo(); } // multiplexação dos displays /*------------------------------------------------------------------------------ ;NOME: ROLETA 1 ;DESCRICAO: Contagem de quantas pessoas passaram pela roleta 1 ;ENTRADA: P1IN = 0x20 ;SAIDA: ROLETAS[1] ;------------------------------------------------------------------------------ */ void ROLETA1 (void) { if((P2IN&0x00)==0x00) { tempo(); ROLETAS[1]++; return; } else return; } /*------------------------------------------------------------------------------ ;NOME: ROLETA 2 ;DESCRICAO: Contagem de quantas pessoas passaram pela roleta 2 ;ENTRADA: P1IN = 0x40 ;SAIDA: ROLETAS[2] ;------------------------------------------------------------------------------ */ void ROLETA2 (void) { if((P2IN&0x02)==0x00) { tempo(); ROLETAS[2]++; return; } else return; } /*------------------------------------------------------------------------------ ;NOME: ROLETA 3 ;DESCRICAO: Contagem de quantas pessoas passaram pela roleta 3 ;ENTRADA: P1IN = 0x80 ;SAIDA: ROLETAS[3] ;------------------------------------------------------------------------------ */ void ROLETA3 (void) { if((P2IN&0x04)==0x00) { tempo(); ROLETAS[3]++; return; } else return; } /*------------------------------------------------------------------------------ ;NOME: SOMA ;DESCRICAO: soma das roletas 1, 2 e 3 ;ENTRADA: ROLETAS[1], ROLETAS[2], ROLETAS[3] ;SAIDA: ROLETA [0] ;------------------------------------------------------------------------------ */ void SOMA () { ROLETAS[0]=ROLETAS[1]; ROLETAS[0]+=ROLETAS[2]; ROLETAS[0]+=ROLETAS[3]; } /*------------------------------------------------------------------------------ ;NOME: SELECIONA ;DESCRICAO: seleciona o que será mostrado no display de acordo com as chaves selecionadas ;ENTRADA: - ;SAIDA: - ;------------------------------------------------------------------------------ */ void SELECIONA (void) { unsigned char chaves = P1IN; chaves&=0x18; switch(chaves) { case 0x00: // quando as chaves estiverem em 00, vai mostrar a soma das roletas valor = ROLETAS[0]; break; case 0x08: // quando as chaves estiverem em 01, vai mostrar a roleta 1 valor = ROLETAS[1]; break; case 0x10: // quando as chaves estiverem em 10, vai mostrar a roleta 2 valor = ROLETAS[2]; break; case 0x18: // quando as chaves estiverem em 11, vai mostrar a roleta 3 valor = ROLETAS[3]; break; } } /*------------------------------------------------------------------------------ */ int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1DIR&=0x07; P1DIR|=0x01; P2DIR=0xFF; P1REN=0xF8; P1OUT=0xF8; while(1) { ROLETA1(); ROLETA2(); ROLETA3(); SOMA(); SELECIONA(); mostra_display(valor); if (ROLETAS[0]>4) { while(1) { SELECIONA(); mostra_display(valor); } } } }
  3. Estou com muita duvida na hora de realizar o código. Alguém pode me ajudar por favor.

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