Ir ao conteúdo
  • Cadastre-se

VisualG jogo da velha pseudocodigo


Posts recomendados

  • Membro VIP

@fabio padaraz, como citado, você esqueceu de colocar as sentenças entre "()". Só seguir o exemplo informado:

 

27 minutos atrás, Simon Viegas disse:

Usar algo como:


se (velha[1,1] = "x") E (velha[1,2] = "x") E (velha[1,3] = "x") entao
   escreva ("Jogador 1 venceu!")
   vitoria <- 1
fimSe
se (velha[2,1] = "x") E (velha[2,2] = "x") E (velha[2,3] = "x") entao
   escreva ("Jogador 1 venceu!")
   vitoria <- 1
fimSe

 

Link para o comentário
Compartilhar em outros sites

@Simon Viegas no meu eu coloquei, e da o mesmo erro

algoritmo "JOGO DA VELHA"

var
   jogador, jogadas, linha, coluna, vitoria, cont, entrada : inteiro
   velha : vetor[1..3,1..3] de caractere
   x, o : caractere

Inicio
   jogador <- 1
   repita
      leia (linha)
      leia (coluna)
      se (jogador = 1) entao
         velha [linha ,coluna] <- "x"
         jogador <- 2
         jogadas <- jogadas + 1
      senao
         se (jogador = 2) entao
            velha [linha,coluna] <- "o"
            jogador <- 1
            jogadas <- jogadas + 1

         fimse
      fimse

         se (velha [1,1] = "x") E (velha [1,2] = "x") E (velha [1,3] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse
         se (velha [2,1] = "x") E (velha [2,2] = "x") E (velha [2,3] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse
         se (velha [3,1] = "x") E (velha [3,2] = "x") E (velha [3,3] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse

         se (velha [1,1] = "x") E (velha [2,1] = "x") E (velha [3,1] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse
         se (velha [1,2] = "x") E (velha [2,2] = "x") E (velha [3,2] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse
         se (velha [1,3] = "x") E (velha [2,3] = "x") E (velha [3,3] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse

         se (velha [1,1] = "x") E (velha [2,2] = "x") E (velha [3,3] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse
         se (velha [1,3] = "x") E (velha [2,2] = "x") E (velha [3,1] = "x")
            escreva ("Jogador 1 venceu!")
            vitoria <- 1
         fimse

         se (velha [1,1] = "o") E (velha [1,2] = "o") E (velha [1,3] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse
         se (velha [2,1] = "o") E (velha [2,2] = "o") E (velha [2,3] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse
         se (velha [3,1] = "o") E (velha [3,2] = "o") E (velha [3,3] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse

         se (velha [1,1] = "o") E (velha [2,1] = "o") E (velha [3,1] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse
         se (velha [1,2] = "o") E (velha [2,2] = "o") E (velha [3,2] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse
         se (velha [1,3] = "o") E (velha [2,3] = "o") E (velha [3,3] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse

         se (velha [1,1] = "o") E (velha [2,2] = "o") E (velha [3,3] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse
         se (velha [1,3] = "o") E (velha [2,2] = "o") E (velha [3,1] = "o")
            escreva ("Jogador 2 venceu!")
            vitoria <- 1
         fimse

         ateque (jogadas = 9) ou (vitoria = 1)
         se (jogadas = 9) entao
            escreva ("Deu velha!")
         fimse
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

algoritmo "JOGO DA VELHA"

var
   jogador, jogadas, linha, coluna, vitoria, cont, entrada, ateque : inteiro
   velha : vetor[1..3,1..3] de caractere
   x, o : caractere

Inicio
   jogador <- 1
   repita
      leia (linha)
      leia (coluna)
      se (jogador = 1) entao
         velha [linha ,coluna] <- "x"
         jogador <- 2
         jogadas <- jogadas + 1
      senao
         se (jogador = 2) entao
            velha [linha,coluna] <- "o"
            jogador <- 1
            jogadas <- jogadas + 1

         fimse
      fimse

      se (velha [1,1] = "x") E (velha [1,2] = "x") E (velha [1,3] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse
      se (velha [2,1] = "x") E (velha [2,2] = "x") E (velha [2,3] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse
      se (velha [3,1] = "x") E (velha [3,2] = "x") E (velha [3,3] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse

      se (velha [1,1] = "x") E (velha [2,1] = "x") E (velha [3,1] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse
      se (velha [1,2] = "x") E (velha [2,2] = "x") E (velha [3,2] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse
      se (velha [1,3] = "x") E (velha [2,3] = "x") E (velha [3,3] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse

      se (velha [1,1] = "x") E (velha [2,2] = "x") E (velha [3,3] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse
      se (velha [1,3] = "x") E (velha [2,2] = "x") E (velha [3,1] = "x")entao
         escreva ("Jogador 1 venceu!")
         vitoria <- 1
      fimse

      se (velha [1,1] = "o") E (velha [1,2] = "o") E (velha [1,3] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse
      se (velha [2,1] = "o") E (velha [2,2] = "o") E (velha [2,3] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse
      se (velha [3,1] = "o") E (velha [3,2] = "o") E (velha [3,3] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse

      se (velha [1,1] = "o") E (velha [2,1] = "o") E (velha [3,1] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse
      se (velha [1,2] = "o") E (velha [2,2] = "o") E (velha [3,2] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse
      se (velha [1,3] = "o") E (velha [2,3] = "o") E (velha [3,3] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse

      se (velha [1,1] = "o") E (velha [2,2] = "o") E (velha [3,3] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse
      se (velha [1,3] = "o") E (velha [2,2] = "o") E (velha [3,1] = "o")entao
         escreva ("Jogador 2 venceu!")
         vitoria <- 1
      fimse

      ateque (jogadas = 9) ou (vitoria = 1)
      se (jogadas = 9) entao
         escreva ("Deu velha!")
      fimse
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Antes da leitura dos dados, coloque um texto... exemplo:

   repita
      escreva ("Linha  : ")
      leia(linha)
      escreva ("Coluna : ")
      leia(coluna)

 

adicionado 0 minutos depois
agora, tiago rodrigues pereira disse:

resolvido. agora deu sintaxe incorreta na linha 96, onde esta ateque

 

ateque não existe... é apenas ate.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 minuto atrás, tiago rodrigues pereira disse:

excelente, rodou certinho, valeu mesmo.

 

abraços..

 

Não é bem assim.. você apenas corrigiu os erros de SINTAXE... Falta ver também a LÓGICA.

 

Não dar erro não é o mesmo que rodar certinho...

 

Link para o comentário
Compartilhar em outros sites

@fabio padaraz pode até nao ser a melhor lógica, mas se você colocar um "fimse" logo abaixo de cada "se" ele funciona

adicionado 6 minutos depois

no código que eu postei no inicio no post ele mostra o tabuleiro , ele ainda tem um erro de logica que precisa ser resolvido, ele entra em loop infinito se ninguém ganhar, eu sempre colocava um loop obrigando a colocar os valores certos pra não dar erro e eu perder tempo achando que é outra coisa.

Link para o comentário
Compartilhar em outros sites

@wagner2029


Ola amigo boa noite!!

Olha como ficou o jogo
 

Algoritmo JOGO DA VELHA
var
    
velha: vetor[1..3, 1..3] caracter
linha,coluna: inteiro
jogadas: inteiro
jogador: inteiro
vitoria: inteiro

início
    jogador <- 1
    repita
        leia (linha)
        leia (coluna)
        se (jogador = 1) entao
            velha [linha,coluna] <- "X"
            jogador <- 2
            jogadas <- jogadas + 1
        senao
           se (jogador = 2) entao
            velha [linha,coluna] <- "o"
            jogador <- 1
            jogadas <- jogadas + 1
            
          fimse
        fimse

    se (velha [1,1] = "x" E velha [1,2] = "x" E velha [1,3] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [2,1] = "x" E velha [2,2] = "x" E velha [2,3] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [3,1] = "x" E velha [3,2] = "x" E velha [3,3] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1


    se (velha [1,1] = "x" E velha [2,1] = "x" E velha [3,1] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [1,2] = "x" E velha [2,2] = "x" E velha [3,2] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [1,3] = "x" E velha [2,3] = "x" E velha [3,3] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1


    se (velha [1,1] = "x" E velha [2,2] = "x" E velha [3,3] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [1,3] = "x" E velha [2,2] = "x" E velha [3,1] = "x")entao
        escreva ("Jogador 1 venceu!")
        vitoria <- 1

    se (velha [1,1] = "o" E velha [1,2] = "o" E velha [1,3] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [2,1] = "o" E velha [2,2] = "o" E velha [2,3] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [3,1] = "o" E velha [3,2] = "o" E velha [3,3] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1

    se (velha [1,1] = "o" E velha [2,1] = "o" E velha [3,1] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [1,2] = "o" E velha [2,2] = "o" E velha [3,2] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [1,3] = "o" E velha [2,3] = "o" E velha [3,3] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1

    se (velha [1,1] = "o" E velha [2,2] = "o" E velha [3,3] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [1,3] = "o" E velha [2,2] = "o" E velha [3,1] = "o")entao
        escreva ("Jogador 2 venceu!")
        vitoria <- 1


fimse
     fimse
	    fimse
		  fimse
			fimse
				fimse
		 			fimse
						fimse
		          				fimse
								fimse
									fimse
										fimse
											fimse
												fimse
													fimse
														fimse
															fimse

    até_que (vitoria = 1)
    se (jogadas = 9) então
        escreva ("Deu velha!")
fim

 

Link para o comentário
Compartilhar em outros sites

@fabio padaraz

já testou ele no visualg?

no final você colocou até_que, mas é só ate

separa as condições no desvio condicional assim

se (jogo [1,1] = "x") E (jogo [1,2] = "x") E (jogo [1,3] = "x")     entao
      escreva ("Jogador 1 venceu!")
      vitoria <- 1

esse trecho serve para colocar _ nos espaços do tabuleiro

para i de 1 ate 3 faca
   para j de 1 ate 3 faca
      jogo [i,j] <- "_"
   fimpara
fimpara

esse trecho mostra o tabuleiro, perceba que estou usando o conteudo de variaveis no escreval, o escreva escreve e fica na mesma linha, o escreval pula a linha assim que terminar de escrever

escreval (" é a vez do jogador ", jogador )
   escreval (jogo [1,1],"|" ,jogo [1,2], "|",jogo [1,3])
   escreval (jogo [2,1],"|" ,jogo [2,2], "|",jogo [3,3])
   escreval (jogo [3,1],"|" ,jogo [3,2], "|",jogo [3,3])

aqui eu peço a leitura no primeiro enquanto, testo se os valores são diferentes de 1,2 ou 3, se forem peço para entrar de novo e testo no segundo enquanto se aquilo n se refere a uma casa preenchida do tabuleiro.

 

edit: agora que fui perceber um erro de logica no codigo abaixo, poderia ser usado um desvio condicional ou colocar um enquanto dentro do outro.

Se digitar os valores certos ele sai do enquanto que testa os valores de entrada, mas se a casa estiver preenchida ele pede pra ler de novo e vai permitir valores errados.

Esses erros que ferram com força porque dependendo da massa de dados o erro aparece ou não e não tem nada a ver com sintaxe.

 

leia (linha)
   leia (coluna)

   enquanto (linha<1) ou (linha>3) ou (coluna<1) ou (coluna>3)    faca
      escreval ("entre com valores entre 1 e 3")
      leia (linha)
      leia (coluna)
   fimenquanto
   Enquanto (jogo [linha,coluna]="x") ou (jogo [linha,coluna]="o")  faca
      escreval("essa posição ja foi marcada")
      leia (linha)
      leia (coluna)
   fimenquanto

tem um erro de logica no final, existem duas possibilidades: alguem ganhar o jogo e ninguem ganhar, quando ninguem ganhar o jogo vai entrar em loot infinito, você precisa testar o numero de jogadas e sair do jogo quando der 9 e vitoria for 0.

 

Faz sempre o codigo com um escreval dizendo o que se está pedindo e escreve um teste para essa entrada, como se fosse pro usuario mesmo, assim você não se confunde, as vezes o codigo tá certo e é você quem tá entrando com massa de dados errada, assim você não perde tempo.

Link para o comentário
Compartilhar em outros sites

Olá, boa noite vocês podem me ajuda com o mesmo problema?

 

adicionado 1 minuto depois
Algoritmo JOGO DA VELHA
var
    _______________________________________
    _______________________________________
    _______________________________________
início
    jogador <- 1
    repita
        leia (linha)
        leia (coluna)
        se (jogador = 1) então
            velha [linha,coluna] <- "X"
            jogador <- 2
            jogadas <- jogadas + 1
        senao
           se (jogador = 2) então
            ____________________________
            ____________________________
            ____________________________
        fimse

    se (velha [1,1] = "x" E velha [1,2] = "x" E velha [1,3] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [2,1] = "x" E velha [2,2] = "x" E velha [2,3] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [3,1] = "x" E velha [3,2] = "x" E velha [3,3] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1

    se (velha [1,1] = "x" E velha [2,1] = "x" E velha [3,1] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [1,2] = "x" E velha [2,2] = "x" E velha [3,2] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [1,3] = "x" E velha [2,3] = "x" E velha [3,3] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1

    se (velha [1,1] = "x" E velha [2,2] = "x" E velha [3,3] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1
    se (velha [1,3] = "x" E velha [2,2] = "x" E velha [3,1] = "x")
        escreva ("Jogador 1 venceu!")
        vitoria <- 1

    se (velha [1,1] = "o" E velha [1,2] = "o" E velha [1,3] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [2,1] = "o" E velha [2,2] = "o" E velha [2,3] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [3,1] = "o" E velha [3,2] = "o" E velha [3,3] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1

    se (velha [1,1] = "o" E velha [2,1] = "o" E velha [3,1] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [1,2] = "o" E velha [2,2] = "o" E velha [3,2] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [1,3] = "o" E velha [2,3] = "o" E velha [3,3] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1

    se (velha [1,1] = "o" E velha [2,2] = "o" E velha [3,3] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1
    se (velha [1,3] = "o" E velha [2,2] = "o" E velha [3,1] = "o")
        escreva ("Jogador 2 venceu!")
        vitoria <- 1

    até_que (_________________________________)
    se (jogadas = 9) então
        escreva ("Deu velha!")
fim
adicionado 2 minutos depois

2. citações de melhorias que poderiam ser feitas no algoritmo

 

Link para o comentário
Compartilhar em outros sites

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