Ir ao conteúdo

Posts recomendados

Postado

image.png.c22fb492b53b7f0f810eb2448104519f.pngOlá, gostaria de poder contar com a ajuda de pessoas mais experientes desse clube. Pois preciso entregar um trabalho e o código que escrevi está apresentando dois erros e não consigo compreender o porque.

É um jogo da velha, e dado momento preciso verificar se uma dos campos já foi ou não preenchido, se sim apresentar uma mensagem, se não receber o valor digitado. Segue a imagem da parte que apresenta o erro.

image.png.c22fb492b53b7f0f810eb2448104519f.png

Ele espera um "então" e o "senao", mas como é possível verificar eles estão ali. OBS: já tentei com aspas no X e no 0, não resolve.

 

Se alguém puder me ajudar?

  • Obrigado 1
Postado

@Was_ton    essa msg de esperava o então, é clássica , e na verdade o erro com certeza é em outra parte do programa, por exemplo , faltar o "fimse" corresponde ;  e nesse trecho não dá para saber, seria melhor postar o código todo .

Postado

Olá, gostaria de poder contar com a ajuda de pessoas mais experientes desse clube. Pois preciso entregar um trabalho e o código que escrevi está apresentando dois erros e não consigo compreender o porque.

É um jogo da velha, e dado momento preciso verificar se uma dos campos já foi ou não preenchido, se sim apresentar uma mensagem, se não receber o valor digitado. Segue a imagem da parte que apresenta o erro.

Algoritmo "Jogo da Velha"
   Procedimento PreencherMatriz()
     Inicio
           para i de 1 ate 3 faca
               para j de 1 ate 3 faca
                   cont <- cont +1
                   jogo[i,j] <- numpCarac(cont)
               fimpara
           fimpara
     fimprocedimento
//---------------------------------------------------//
   Procedimento Velha()
     Inicio
           escreval("==================")
           escreval("  JOGO DA VELHA   ")
           escreval("  +---+---+---+")
              para i de 1 ate 3 faca
                 para j de 1 ate 3 faca
                     escreva("  |")
                     escreva(jogo[i,j]:1)
                 fimpara
                     escreval("  |")
                     escreval("  +---+---+---+")
              fimpara
           escreval("==================")
     fimprocedimento
//---------------------------------------------------//
   Procedimento Jogar()
     Inicio
       X <- "X"
//       Vencedor <- falso
//       Vez <- 0
//       par <- 1
//       repita
           escreval("Digite um número para ",X,": ")
           leia(c)
               se (c > 0) e (c < 10) então
               //--------------------------------------------
                   se (c > 0) e (c < 4) então
                       L <- 1
(pede o então)                      se (jogo[L,c] = "X") ou (op[L,c] = "0") então
                                               escreval("Esse número já foi preenchido")
(pede senao)                            senao
                              jogo[L,c] <- X
//                              vencedor <- verificarVencedor()
//                              vez <- vez + 1
//                            se(vencedor = falso) então
//                               se(par % 2 <> 0) então
//                                  X <- "0"
//                               senao
//                                  X <- "X"
//                               fimse
//                               par <- par + 1
//                            fimse
                       fimse
                   senao
               //--------------------------------------------
                       se (op > 3) e (op < 7) então
                           L <- 2
//                           se ((jogo[L,C-3] = "X") ou (C[L,C-3] = "0")) então
//                              escreval("Esse número já foi preenchido")
//                           senao
                              jogo[L,op-3] <- X
//                              vencedor <- verificarVencedor()
//                              vez <- vez + 1
//                              se(vencedor = falso) então
//                                 se(par % 2 <> 0) então
//                                    X <- "0"
//                                 senao
//                                    X <- "X"
//                                 fimse
//                                par <- par + 1
//                              fimse
//                           fimse
                       senao
               //--------------------------------------------
                           L <- 3
//                           se ((jogo[L,C-6] = "X") ou (C[L,C-6] = "0")) então
//                              escreval("Esse número já foi preenchido")
//                           senao
                              jogo[L,op-6] <- X
//                              vencedor <- verificarVencedor()
//                              vez <- vez + 1
//                              se(vencedor = falso) então
//                                 se(par % 2 <> 0) então
//                                    X <- "0"
//                                 senao
//                                    X <- "X"
//                                 fimse
//                                 par <- par + 1
//                              fimse
//                           fimse
                       fimse
                   fimse
//               senao
//                    escreval("Opção Inválida")
//                    leia (a)
 //              fimse
               limpatela
               velha()
//       ate(vencedor = verdadeiro) ou (vez = 9)
     fimprocedimento
//-------------------------------
//   funcao verificarVencedor() : logico   // V ou F

//   var
//      venceu : logico
//   inicio

//      venceu <- falso
      //horizontal
//      para i de 1 ate 3 faca
//          se ((jogo[i,1] = jogo[i,2]) e (jogo[i,2] = jogo[i,3]))então
//             venceu <- verdadeiro
//          fimse
//     fimpara
      //vertical
//      para i de 1 a 3 faca
//          se ((jogo[1,i] = jogo[2,i]) e (jogo[2,i] = jogo[3,i]))então
//             venceu <- verdadeiro
//          fimse
//      fimpara
      //diagonal  1
//          se ((jogo[1,1] = jogo[2,2]) e (jogo[2,2] = jogo[3,3]))então
//             venceu <- verdadeiro
//          fimse
      //diagonal  2
//          se ((jogo[1,3] = jogo[2,2]) e (jogo[2,2] = jogo[3,1]))então
//             venceu <- verdadeiro
//          fimse
//      retorne "Parabéns, "+venceu
//   fimFuncao
//-------------------------------

Var
// Seção de Declarações das variáveis
   i,j,cont : inteiro
   jogo : vetor[1..3,1..3] de caractere
   X : caractere
   L, op : inteiro
   Vencedor : logico
   Vez : inteiro
   par : inteiro
   a : caractere
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
//----------------------------------------------------//
   Cont <- 0 // Iniciar a contagem em zero
    // PreencherMatriz() chamar o procedimento PreencherMatriz()
    // Velha()  chamar o procedimento velha()
   PreencherMatriz()
   velha()
   Jogar()
//   jogo()
//--------------------------------------------------//


Fimalgoritmo

 

  • Curtir 1
Postado

@Was_ton    aqui no visualG 3.0.6.5 não apresentou esse erro . não ,  mas outro na linha 42 que esteja assim :

se (c > 0) e (c < 4) então
  L <- 1
  // (pede o então)                      
  se (jogo[L,c] = "X") ou (op[L,c] = "0") então // op não eh vetor e sim um simples inteiro 
    escreval("Esse número já foi preenchido")   // (pede senao)                            
  senao
    jogo[L,c] <- X

você colocou a variável "op" como se fosse do tipo vetor , o que ela não é ,  mas sim uma variável do tipo "inteiro" ,  e excluindo essa comparação ainda tem outros erros .

se (c > 0) e (c < 4) então
  L <- 1
  // (pede o então)                      
  se (jogo[L,c] = "X")  então                   // op não eh vetor e sim um simples inteiro 
    escreval("Esse número já foi preenchido")   // (pede senao)                            
  senao
    jogo[L,c] <- X

e também no visualG as variáveis  podem ser maiúsculas ou minúsculas que não faz diferença , você pode criar uma variável  em maiúsculas e depois usar essa mesma variável com todas as letras em minúsculo que funciona bem do mesmo jeito .

Postado

@Was_ton   seu código corrigido apenas para compilar , porém não funciona como esperado , pois falta várias coisa , como por exemplo uma função que verificar se houve algum ganhador a cada jogada: e ficou assim :

Algoritmo "Jogo da Velha_dO_wAS_tON"

Procedimento PreencherMatriz
var
  p, f : inteiro
Inicio
   para    p de 1 ate 3 faca
      para f de 1 ate 3 faca
         jogo[ p, f ] <- numpCarac( f+( p - 1 ) * 3 )
      fimpara
   fimpara
fimprocedimento

Procedimento Velha
var
   p, f : inteiro
Inicio
   escreval("==================")
   escreval("  JOGO DA VELHA   ")
   escreval("  +---+---+---+")
   para    p de 1 ate 3 faca
      para f de 1 ate 3 faca
         escreva("  |")
         escreva( jogo[ p, f ]:1 )
      fimpara
      escreval("  |")
      escreval("  +---+---+---+")
   fimpara
   escreval("==================")
fimprocedimento

Procedimento Jogar
Inicio
   X <- "X"
   o := "O"
   // repita
   escreval("Digite um número para ",X,": ")
   leia( c )
   se   ( c > 0 ) e ( c < 10 ) entno
      se ( c > 0 ) e ( c < 4 ) entno
         L <- 1
         //(pede o então)
         se ( jogo[ L, c ] = "X") entno // ou (op[L,c] = "0") entNo
            escreval("Esse número já foi preenchido")
         //(pede senao)
         senao
            jogo[ L, c ] <- X
         fimse
      senao
         se ( op > 3 ) e ( op < 7 ) entno
            L <- 2
            jogo[ L, op - 3 ] <- X
         senao
            L <- 3
            jogo[ L, op - 6 ] <- X
         fimse
      fimse
   fimse
   limpatela
   velha()
   //ate fim = 2
fimprocedimento
funcao ver_quem_ganhou( q : inteiro ): inteiro
var
   f, n : inteiro
inicio
   // dois laCos de repetiCAo verificar se gonhou
   // e atribui o valor 2 para o jogador numero "O"
   // ou 1 para o player nums "X"
   retorne n
fimfuncao
//-----------   Inicio Do ProgramA  ---------------
Var
   vez,L, c : inteiro
   jogo     : vetor[1..3,1..3] de caractere
   a,X, o   : caractere
   par, op  : inteiro
   fim, n   : inteiro
   Vencedor : logico
Inicio
   PreencherMatriz
   velha
   Jogar
Fimalgoritmo

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!