Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lec0

Algoritmo Jogo da Velha

Recommended Posts

Acredito que a logica esteja correta, entretanto ele retorna um erro na linha do SE (ou if^^) onde verifica se o jogador ganhou ou segue jogando, se for erro de sintaxe qual seria a sintaxe certa ? vlw ;]

 

 

 

algoritmo "JOGO_DA_VELHA"

var
M:VETOR[1..3,1..3] DE INTEIRO
I,J:INTEIRO
JOGADOR1,JOGADOR2,J1,J2:CARACTER
inicio
// Seção de Comandos
PARA I DE 1 ATE 3 FACA
   ESCREVAL(" ")
   PARA J DE 1 ATE 3 FACA
	  ESCREVA(M[I,J])
   FIMPARA
FIMPARA
ESCREVAL(" ")

ESCREVAL("JOGADOR 1, DIGITE SEU NOME:")
LEIA(JOGADOR1)
ESCREVAL("JOGADOR 2, DIGITE SEU NOME:")
LEIA(JOGADOR2)
ESCREVAL(" ")

REPITA
   repita   // validar a linha (1 a 3)
	  ESCREVAL(JOGADOR1,", DIGITE A LINHA(DE 1 A 3)")	   // jogador 1 marca uma celula
	  LEIA(I)
   ate i>=1 e i<=3
   repita	// validar a coluna
	  ESCREVAL(JOGADOR1,",DIGITE A COLUNA(DE 1 A 3)")
	  LEIA(J)
   ate j>=1 e j<=3

   SE M[I,J] = 0 ENTAO	   // atribui o valor a celular marcada ou anula a jogada
	  M[I,J] <- 1
   SENAO
	  ESCREVA("jOGADA iNVALIDA")
   FIMSE
   PARA I DE 1 ATE 3 FACA
	  ESCREVAL(" ")
	  PARA J DE 1 ATE 3 FACA	  // escreve a tabela
		 ESCREVA(M[I,J])
	  FIMPARA
   FIMPARA
   ESCREVAL(" ")

   PARA I DE 1 ATE 3 FACA
	  PARA J DE 1 ATE 3 FACA
		 SE matriz[I,1]=1 e matriz[I,2]=1 e matriz[I,3]=1 OU matriz[1,J]=1 e matriz[2,J]=1 e matriz[3,J]=1 OU matriz[1,1]=1 e matriz[2,2]=1 e matriz[3,3]=1 ou matriz[3,1]=1 e matriz[2,2]=1 e matriz[1,3]=1 ENTAO
			J1<-"GANHOU"
		 FIMSE
	  fimpara
   fimpara

   repita   // validar a linha
	  ESCREVAL(JOGADOR2,", DIGITE A LINHA(DE 1 A 3)")		  // jogador 2 marca uma celula
	  LEIA(I)
	ate i>=1 e i<=3
	repita
	  ESCREVAL(JOGADOR2,",DIGITE A COLUNA(DE 1 A 3)")
	  LEIA(J)

   ate j>=1 e j<=3
   SE M[I,J] = 0 ENTAO		 // atribui o valor a celular marcada ou anula a jogada
	  M[I,J] <- 2
   SENAO
	  ESCREVA("jOGADA iNVALIDA")
   FIMSE
   PARA I DE 1 ATE 3 FACA
	  ESCREVAL(" ")
	  PARA J DE 1 ATE 3 FACA	  // escreve a tabela
		 ESCREVA(M[I,J])
	  FIMPARA
   FIMPARA
   ESCREVAL(" ")


   PARA I DE 1 ATE 3 FACA
	  PARA J DE 1 ATE 3 FACA
		 SE matriz[I,1]=2 e matriz[I,2]=2 e matriz[I,3]=2 OU matriz[1,J]=2 e matriz[2,J]=2 e matriz[3,J]=2 OU matriz[1,1]=2 e matriz[2,2]=2 e matriz[3,3]=2 ou matriz[3,1]=2 e matriz[2,2]=2 e matriz[1,3]=2 ENTAO
			J2<-"GANHOU"
		 FIMSE

	  FIMPARA
   FIMPARA



ATE J1="GANHOU" OU J2="GANHOU"

SE  J1="GANHOU" ENTAO
   ESCREVAL(JOGADOR1," ",J1)
SENAO
   SE  J2="GANHOU" ENTAO
	  ESCREVAL(JOGADOR1," ",J1)
   FIMSE
FIMSE

fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

a variável J1 e J2 são do tipo char, recebem apenas um caracter, pra armazenar uma palavra deve usar string :D. Acredito que seja isso ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

a variável J1 e J2 são do tipo char, recebem apenas um caracter, pra armazenar uma palavra deve usar string :D. Acredito que seja isso ^^

 

Acho que nao deve se isto, porque quando declaro como caracter no visualg nao eh limitado o numero de caracteres q ele recebe a nao ser que eu coloque variavel:caracter[15] (Eu acho :D)

Compartilhar este post


Link para o post
Compartilhar em outros sites

testou pra ver? Depois dessa parte, escreva J1 e J2 pra ver...

ATE J1="GANHOU" OU J2="GANHOU"
Olhei meio por cima, voce coloca o mesmo código duas vezes? uma pra cada jogador?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se Alguma das condiçoes pra que o jogador ganhe acontecer, entao irá , caso seja o jogador1, j1 vai receber "ganhou", caso seja o jogador2 entao j2<- "ganhou"

 

E caso J1="GANHOU" OU J2="GANHOU" vai encerrar o programa e mostrar a msg correspondente ao jogador que ganhou

 

 

O erro se da especificamente nessa parte

SE matriz[I,1]=1 e matriz[I,2]=1 e matriz[I,3]=1 OU matriz[1,J]=1 e matriz[2,J]=1 e matriz[3,J]=1 OU matriz[1,1]=1 e matriz[2,2]=1 e matriz[3,3]=1 ou matriz[3,1]=1 e matriz[2,2]=1 e matriz[1,3]=1 ENTAO

=]

Compartilhar este post


Link para o post
Compartilhar em outros sites

separa essa parte com vários "SE" velho, fica muito dificil achar algum erro ai no meio haseusahashe

do jeito que você fez, vai ser veriifcado se alguem ganhou a toda iteração, faca um "SE" pra filtrar isso tb

tipo, pra alguem ganhar a primeira condição é que tenha jogado 3 vezes

ah, tem que tratar em caso de empate tb ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.