Continuação da lista de exercícios - FINALIZAÇÃO!!!
Extra:
Segue abaixo um algoritmo feito no VisualG para servir de base para o estudo de vocês.
Para quem quiser fazer um "a mais" neste algoritmo, eu gostaria de vê-lo tendo a possibilidade de executar o jogo no formato "jogador x computador".
algoritmo "Jogo da Velha"
var
jogo_velha: vetor[1..3,1..3] de caracter
coluna, linha: inteiro
jogador1, jogador2, jogando, ganhador, letra, m: caracter
fim_do_jogo: logico
inicio
escreval(" ==== JOGO DA VELHA ==== ")
// Lendo o nome dos jogadores...
escreva("Informe nome do jogador 1: ")
leia(jogador1)
escreva("Informe nome do jogador 2: ")
leia(jogador2)
// Mostrando matriz vazia...
para linha de 1 ate 3 faca
m <- ""
para coluna de 1 ate 3 faca
m <- m + " "
se (coluna < 3) entao
m <- m + "|"
fimse
fimpara
escreval(m)
escreval("---|---|---")
fimpara
escreval(" ")
// Enquanto a variável 'fim_do_jogo' não for verdadeira, continue jogando...
enquanto (fim_do_jogo = falso) faca
// Verifica qual é o jogador da jogada...
se (jogando = jogador2) entao
jogando <- jogador1
letra <- "X"
senao
jogando <- jogador2
letra <- "O"
fimse
// Solicita a coluna/linha da jogada...
escreva(jogando, ", digite a coluna da jogada: ")
leia(coluna)
escreva(jogando, ", digite linha da jogada: ")
leia(linha)
// Verifica se a posição já não foi usada...
enquanto (jogo_velha[coluna, linha] <> "") faca
escreval("Posição já utilizada. Tente novamente!")
escreva(jogando, ", digite a coluna da jogada: ")
leia(coluna)
escreva(jogando, ", digite linha da jogada: ")
leia(linha)
fimenquanto
// Atribui a letra na coluna/linha que foi informada
jogo_velha[coluna, linha] <- letra
// Mostra a matriz na tela.
para linha de 1 ate 3 faca
m <- ""
para coluna de 1 ate 3 faca
letra <- jogo_velha[coluna, linha]
se (letra = "") entao
letra <- " "
fimse
m <- m + " " + letra + " "
se (coluna < 3) entao
m <- m + "|"
fimse
fimpara
escreval(m)
escreval("---|---|---")
fimpara
// Verifica se jogo já não acabou...
fim_do_jogo <- verdadeiro
para linha de 1 ate 3 faca
para coluna de 1 ate 3 faca
se (jogo_velha[coluna, linha] = "") entao
fim_do_jogo <- falso
fimse
fimpara
fimpara
// Verifica se houve ganhador na jogada
se (jogo_velha[1,1] <> "") entao
// Testando a 1a. coluna...
se (jogo_velha[1,1] = jogo_velha[1,2]) e (jogo_velha[1,1] = jogo_velha[1,3]) entao
ganhador <- jogando
fimse
// Testando na diagonal...
se (jogo_velha[1,1] = jogo_velha[2,2]) e (jogo_velha[1,1] = jogo_velha[3,3]) entao
ganhador <- jogando
fimse
// Testando a 1a. linha...
se (jogo_velha[1,1] = jogo_velha[2,1]) e (jogo_velha[1,1] = jogo_velha[3,1]) entao
ganhador <- jogando
fimse
fimse
se (jogo_velha[2,1] <> "") entao
// Testando a 2a. coluna...
se (jogo_velha[2,1] = jogo_velha[2,2]) e (jogo_velha[2,1] = jogo_velha[2,3]) entao
ganhador <- jogando
fimse
fimse
se (jogo_velha[3,1] <> "") entao
// Testando a diagonal invertida..
se (jogo_velha[3,1] = jogo_velha[2,2]) e (jogo_velha[3,1] = jogo_velha[1,3]) entao
ganhador <- jogando
fimse
// Testando a 3a. coluna...
se (jogo_velha[3,1] = jogo_velha[3,2]) e (jogo_velha[3,1] = jogo_velha[3,3]) entao
ganhador <- jogando
fimse
fimse
se (jogo_velha[1,2] <> "") entao
// Testando a 2a. linha...
se (jogo_velha[1,2] = jogo_velha[2,2]) e (jogo_velha[1,2] = jogo_velha[3,2]) entao
ganhador <- jogando
fimse
fimse
se (jogo_velha[1,3] <> "") entao
// Testando a 3a. linha...
se (jogo_velha[1,3] = jogo_velha[2,3]) e (jogo_velha[1,3] = jogo_velha[3,3]) entao
ganhador <- jogando
fimse
fimse
// Verifica se houve ganhador e termina o jogo
se (ganhador <> "") entao
fim_do_jogo <- verdadeiro
fimse
fimenquanto
// Testando para ver se tem um ganhador...
se (ganhador = "") entao
escreval("Não houve ganhar!!")
senao
escreval("Parabéns ", ganhador, ". Você foi o vencedor!!")
fimse
fimalgoritmo
Nenhum comentário:
Postar um comentário