Exercício 068

Exercício 068

Home Fóruns Programação Básica Exercício 068

Visualizando 1 resposta da discussão
  • Autor
    Posts
    • #172915
      Daniel C. Cunha
      Participante

      Saudações, estou vendo agora a correção do exercício 068. Sei que é melhor tentar procurar o tópico ja existente sobre o exercício em questão mas é meio que demorado ficar buscando um exercicio específico no fórum…
      Vi logo no começo, que minha forma de pensar no exercicio está bem diferente…menos aprimorada, porém acredito ter chegado bem perto da proposta original. Eu pensei em dois vetores, um aparente e outro invisivel aparecendo somente quando se acerta a bomba. Gostaria de saber se o jeito que fiz está muito abaixo do esperado…

      programa
      {

      inclua biblioteca Matematica –> m
      inclua biblioteca Tipos –> t
      inclua biblioteca Texto –> txt
      inclua biblioteca Util –> u

      funcao inicio()
      {

      caracter mTabu[5][5], game[5][5]
      logico hit = falso
      inteiro tentativas = 5, cont = 0, pontos = 0, linha = 0, coluna = 0, bombas = 6

      para(inteiro l = 0; l < u.numero_linhas(mTabu); l++) { // faz o tabuleiro de ? ? ? ? ?
      escreva(“\n”)
      para(inteiro c = 0; c < u.numero_colunas(mTabu); c++) {
      mTabu[l][c] = ‘?’
      }
      }

      para(inteiro l = 0; l < u.numero_linhas(game); l++) { // faz o tabuleiro invisivel para por as bombas
      para(inteiro c = 0; c < u.numero_colunas(game); c++) {
      game[l][c] = ‘-‘
      }
      }

      para(inteiro c = 0; c < bombas; c++) { // sorteia as bombas no tabuleiro invisivel
      game[u.sorteia(0, 4)][u.sorteia(0, 4)] = ‘O’
      }

      escreva(“{ EXERCÍCIO 068 – Jogo do Campo Minado }\n”)
      para(cont = 0; cont < tentativas; cont++) { // loop das 5 tentativas

      se(hit == falso) { // hit = falso, quer dizer que nao acertou bombas
      para(inteiro l = 0; l < u.numero_linhas(mTabu); l++) { // escreve o tabuleiro de ‘?’ na tela
      escreva(“\n”)
      para(inteiro c = 0; c < u.numero_colunas(mTabu); c++) {
      escreva(mTabu[l][c], ” “)
      }
      }

      escreva(“\n————————————————–“)
      escreva(“\nFaça sua jogada! (Tentativa: “, cont, ” de “, tentativas, “)\n”)
      faca {
      escreva(“LINHA = “)
      leia(linha) // entrada de dados ‘linha’
      } enquanto(nao(linha >=0 e linha <= 4))

      faca {
      escreva(“COLUNA = “)
      leia(coluna) // entrada de dados ‘coluna’
      } enquanto(nao(coluna >= 0 e coluna <= 4))

      escreva(“\n————————————————–“)

      para(inteiro l = 0; l < u.numero_linhas(game); l++) { // loop para verificar o acerto da bomba ou não
      para(inteiro c = 0; c < u.numero_colunas(game); c++) {
      se(game[linha][coluna] == ‘O’) {
      hit = verdadeiro
      game[linha][coluna] = ‘#’
      pare
      } senao {
      mTabu[linha][coluna] = ‘X’
      game[linha][coluna] = ‘X’
      pare
      }
      }
      pare
      }

      } senao { // se hit = verdadeiro
      para(inteiro l = 0; l < u.numero_linhas(game); l++) {
      escreva(“\n”)
      para(inteiro c = 0; c < u.numero_colunas(game); c++) {
      escreva(game[l][c], ” “)
      // local ruim para hit = falso
      }
      }
      pare
      }
      se(hit == verdadeiro) {
      escreva(“\n–> TIRO ERRADO! Acertou uma Bomba! “)
      escreva(“\nFIM DE JOGO!”)
      // local ruim para hit = falso
      } senao {
      escreva(“\n–> ATIROU CERTO! Não acertou nenhuma Bomba! “)
      pontos+= 2
      se(cont == 4) {
      escreva(“\nFIM DE JOGO!”)
      para(inteiro l = 0; l < u.numero_linhas(game); l++) {
      escreva(“\n”)
      para(inteiro c = 0; c < u.numero_colunas(game); c++) {
      escreva(game[l][c], ” “)
      // local ruim para hit = falso
      }
      }
      }
      }
      // local ruim para hit = falso
      } // fim do loop das 5 tentativas
      escreva(“\nVoce fez “, pontos, ” pontos em “, cont, ” tentativas.”)

      }
      }

    • #172916
      Tutora Vera
      Mestre

      Não está abaixo do padrão não, pelo contrário. Basicamente vejo que você entendeu o conceito principal e isso é ótimo. Continue assim, é bem bacana ver que o mais importante foi a sua compreensão mesmo, o que não exime de um resultado para o outro quase equivalentes no mesmo nível e você não pensou em apenas fazer funcionar. Muito bom!

Visualizando 1 resposta da discussão
  • Você deve fazer login para responder a este tópico.