Você está na página 1de 3

Algoritmo "Jogo da Velha"

// Disciplina : [Algoritmos]
// Trabalho relizado por: Ricardo Ferreira, Juliana Motta , Jorge Nunes

Var
i,j, cont : inteiro
jogo : vetor[1..3,1..3] de caractere
//------------------------------------------------------------
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 displayJogo()
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]:4)
fimpara
escreva ("|")
escreval ()
escreval ("+-----+-----+-----+")
fimpara
escreval ("===================")
fimprocedimento
//-----------------------------------------------------------
procedimento jogar()
var
//DECLARACAO DAS VARIAVEIS
x,a : caractere
opcao,linha,par,v : inteiro
venceu : logico
inicio
x <- "X"
par <-1
venceu <- falso
v <- 0

repita
escreval("Digite um numero para ",x," :")
leia(opcao)
se (opcao > 0) e (opcao < 10) entao//n° digitado tem que ser entre 1 e 9
se (opcao > 0) e (opcao < 4)entao //se n° digita estiver na 1° linha
linha <- 1 //variavel linha

se(jogo[linha,opcao] = "X") ou (jogo[linha,opcao] = "O")entao


escreval("Esse numero já foi digitado!")

escreva("Digite enter para continuar")


leia(a)
senao //se nao foi digitado ainda
jogo[linha,opcao] <- x //preenchemos com x
venceu <- verificarVencedor()//verifica se ha vencedor

v <- v + 1
se(venceu = falso)entao //caso nao venceu apos verificar
se(par % 2 <> 0) entao //se for impar é a vez do O
x <- "O"
senao
x <- "X" //se for par é a vez do x
fimse
par <- par + 1 //incrementa pra mudar o jogador x/O
fimse
fimse
senao
se(opcao>3) e (opcao<7) entao
linha <- 2
se(jogo[linha,opcao-3] = "X") ou (jogo[linha,opcao-3] =
"O")entao
escreval("Esse numero já foi digitado!")
escreva("Digite enter para continuar")
leia(a)
senao
jogo[linha,opcao-3] <- x
venceu <- verificarVencedor()
v <- v + 1
se(venceu = falso) entao
se(par % 2 <> 0) entao
x <- "O"
senao
x <- "X"
fimse
par <- par + 1
fimse
fimse
senao
linha <- 3
se(jogo[linha,opcao-6] = "X") ou (jogo[linha,opcao-6] =
"O")entao
escreval("Esse numero já foi digitado!")
escreva("Digite enter para continuar")
leia(a)
senao
jogo[linha,opcao-6] <- x
venceu <- verificarVencedor()
v <- v + 1
se(venceu = falso) entao
se(par % 2 <> 0) entao
x <- "O"
senao
x <- "X"
fimse
par <- par + 1
fimse
fimse
fimse

fimse
limpatela
displayJogo()
senao
escreval("Opção invalida")
fimse
ate(venceu = verdadeiro) ou (v = 9)

se(venceu = verdadeiro)entao
escreval("O jogador ",x, " venceu!")
senao
escreval("DEU VElHA (empate) !!!")
fimse
fimprocedimento
//----------------------------------------------------------
funcao verificarVencedor() : logico
var
tem : logico
inicio
tem <- falso
para i de 1 ate 3 faca //verificar horizontal
se ((jogo[i,1] = jogo[i,2]) e (jogo[i,2] = jogo[i,3])) entao
tem <- verdadeiro
fimse
fimpara
para i de 1 ate 3 faca //verificar vertical
se (jogo[1,i] = jogo[2,i]) e (jogo[2,i] = jogo[3,i]) entao
tem <- verdadeiro
fimse
fimpara
se (jogo[1,1] = jogo[2,2]) e (jogo[2,2] = jogo[3,3]) entao
tem <- verdadeiro
fimse
se (jogo[1,3] = jogo[2,2]) e(jogo[2,2] = jogo[3,1])entao
tem <- verdadeiro
fimse
retorne tem
fimfuncao

//-----------------------------------------------------------
Inicio
cont <-0
preencherMatriz()
displayJogo ()
jogar()
Fimalgoritmo

Você também pode gostar