Se quiser, baixe esse app ¬ Visualg, copie o código, cole, teste, altere, treine, seja feliz! Sorria! Mesmo, se o mudo fizer careta (RS!).
Exercícios
algoritmo "Jogo da Velha"
var
v: vetor[1..3, 1..3] de Caractere
L, C, Cont, Po: Inteiro
Simb : Caractere
R: Logico
L, C, Cont, Po: Inteiro
Simb : Caractere
R: Logico
Procedimento mostraVelha()
Inicio
EscrevaL("+---+---+---+")
Para L <- 1 ate 3 faca
EscrevaL()
EscrevaL("+---+---+---+")
FimPara
Para L <- 1 ate 3 faca
Para C <- 1 ate 3 faca
Escreva("|")
Escreva("| ", v[L,C]:1)
FimPara
EscrevaL()
EscrevaL("+---+---+---+")
FimPara
FimProcedimento
Procedimento mudaJogador()
inicio
Se (Simb = "X") entao
Simb <- "O"
senao
Simb <- "X"
FimSe
FimProcedimento
Funcao Jogar(S: Caractere; P: Inteiro): Logico
Var
mudou: logicoinicio
mudou <- falso
Para L <- 1 ate 3 faca
Retorne mudou
Para L <- 1 ate 3 faca
Para C <- 1 ate 3 faca
FimPara
Se(v[L,C] = NumpCarac(P)) entao
FimPara
v[L,C] <- S
mudou <- verdadeiro
FimSe
mudou <- verdadeiro
Retorne mudou
FimFuncao
Funcao TerminouVelha(): Logico
Var
terminou: Logicoocorr: Inteiro
inicio
terminou <- falso
// Jogos em linha
Para L <- 1 ate 3 faca
// Jogos em coluna
Para C <- 1 ate 3 faca
// Jogos em diagonal
Se (v[1,1] = v[2,2]) e (v[2,2] = v[3,3]) entao
Se (v[1,3] = v[2,2]) e (v[2,2] = v[3,1]) entao
// Jogos em VELHA
ocorr <- 0
Para L <- 1 ate 3 faca
Se (ocorr = 0) entao
// Retorna se o jogo acabou ou nao
Retorne terminou
// Jogos em linha
Para L <- 1 ate 3 faca
Se (v[L,1] = v[L,2]) e (v[L,2] = v[L,3]) entao
FimPara
terminou <- verdadeiro
FimSe
// Jogos em coluna
Para C <- 1 ate 3 faca
Se (v[1,C] = v[2,C]) e (v[2,C] = v[3,C]) entao
FimPara
terminou <- verdadeiro
FimSe
// Jogos em diagonal
Se (v[1,1] = v[2,2]) e (v[2,2] = v[3,3]) entao
terminou <- verdadeiro
FimSe
Se (v[1,3] = v[2,2]) e (v[2,2] = v[3,1]) entao
terminou <- verdadeiro
FimSe
// Jogos em VELHA
ocorr <- 0
Para L <- 1 ate 3 faca
Para C <- 1 ate 3 faca
FimPara
Se (v[L,C] <> "X") e (v[L,C] <> "O") entao
FimPara
ocorr <- ocorr + 1
FimSe
Se (ocorr = 0) entao
terminou <- verdadeiro
FimSe
// Retorna se o jogo acabou ou nao
Retorne terminou
FimFuncao
inicio
Cont <- 1
Simb <- "X"
Para L <- 1 ate 3 faca
MostraVelha()
Repita
LimpaTela
MostraVelha()
Ate (terminouVelha() = verdadeiro)
EscrevaL("JOGO FINALIZADO!!!")
Simb <- "X"
Para L <- 1 ate 3 faca
Para C <- 1 ate 3 faca
FimPara
v[L,C] <- NumpCarac(Cont)
Cont <- Cont + 1
FimPara
Cont <- Cont + 1
MostraVelha()
Repita
Repita
MudaJogador()
EscrevaL("Vai jogar [", simb:1, "] em qual posicao? ")
Leia(Po)
R <- Jogar(Simb, Po))
Se (R = falso) entao
Ate (R = verdadeiro)
Leia(Po)
R <- Jogar(Simb, Po))
Se (R = falso) entao
EscrevaL("JOGADA INVALIDA!")
FimSe
LimpaTela
MostraVelha()
Ate (terminouVelha() = verdadeiro)
EscrevaL("JOGO FINALIZADO!!!")