Este código de Portugol é o jogo da velha criado por mim.
programa { /*Código feito por Eleno Doi Pillon*/
funcao inicio() {
cadeia jogo[4][4], jogador1, jogador2
inteiro jogador, continuar=1, fileira=0, coluna=1, imprimir_fileira=0,imprimir_coluna=0, pode_imprimir=1, empate=0, v=0, p1=0, p2=0
inteiro automatizar_fileira=1, automatizar_coluna=0, aui=0
para(automatizar_fileira=1;automatizar_fileira!=4;automatizar_fileira++){ /*Coloca os valores nulos ao iniciar o programa*/
para(automatizar_coluna=0;automatizar_coluna!=4;automatizar_coluna++){
jogo[automatizar_coluna][automatizar_fileira]="-"
}
}
escreva(" Bem vindo ao meu jogo da velha.\n Digite primeiro o valor da coluna e depois da linha. (valor de 1 a 3) \n")
escreva("Digite o nome do jogador1: ")
leia(jogador1)
escreva("Digite o nome do jogador2: ")
leia(jogador2)
escreva("Digite 1 para ",jogador1," começar ou 2 para ",jogador2," começar: ")
leia(jogador)
se(jogador==1 ou jogador==2){ /*Só permite continuar se o usuário fizer a escolha entre jogador1 ou jogador2*/
enquanto(continuar==1){ /*Loop do jogo funcionando, ele só vai parar quando o usuário quiser sair*/
para(automatizar_fileira=1;automatizar_fileira<4;automatizar_fileira++){ /*Imprimir as casas do tabuleiro com seus valores nela*/
para(automatizar_coluna=1;automatizar_coluna<4;automatizar_coluna++){
escreva(jogo[automatizar_coluna][automatizar_fileira])
}
escreva("\n")
} /*Fim da impressão das casas*/
escreva("Digite a fileira: ")
leia(fileira)
escreva("Digite a coluna: ")
leia(coluna)
se(jogo[fileira][coluna]=="-"){ /* Verifica se a coordenada inserida tem valor nulo*/
empate=empate+1 /*Adiciona 1 a variável empate, que mostra empate caso ela seja igual a 9 e ninguém ganhou o jogo*/
se(jogador==1){ /*Verifica se o jogador é jogador1*/
jogo[fileira][coluna]="O" /*Coloca o valor O na casa inserida*/
pode_imprimir=1
jogador=2
}
senao{ /*Se não é jogador1, então necessariamente precisa ser jogador2*/
jogo[fileira][coluna]="X" /*Coloca o valor X na casa inserida*/
pode_imprimir=1
jogador=1
}
/* Verificar se o jogador1 ganhou*/
se(jogo[1][1]=="O" e jogo[2][1]=="O" e jogo[3][1]=="O" ou jogo[1][2]=="O" e jogo[2][2]=="O" e jogo[3][2]=="O" ou jogo[1][3]=="O" e jogo[2][3]=="O" e jogo[3][3]=="O" ou jogo[1][1]=="O" e jogo[1][2]=="O" e jogo[1][3]=="O" ou jogo[2][1]=="O" e jogo[2][2]=="O" e jogo[2][3]=="O" ou jogo[3][1]=="O" e jogo[3][2]=="O" e jogo[3][3]=="O" ou jogo[1][1]=="O" e jogo[2][2]=="O" e jogo[3][3]=="O" ou jogo[3][1]=="O" e jogo[2][2]=="O" e jogo[1][3]=="O"){
escreva(jogador1," ganhou!")
escreva("\n Digite 0 caso queira sair ou 1 caso queira iniciar uma nova partida: ")
leia(continuar)
v=1
p1=p1+1
se(continuar==1){
v=0
empate=0
aui=1 /*Se o usuário quer jogar um novo jogo, está variável vira 1 e se ela é 1 então o tabuleiro é reiniciado*/
} /*Fim da caixa de verificação de vitória do jogador1*/
} /* Verificar se o jogador2 ganhou */
se(jogo[1][1]=="X" e jogo[2][1]=="X" e jogo[3][1]=="X" ou jogo[1][2]=="X" e jogo[2][2]=="X" e jogo[3][2]=="X" ou jogo[1][3]=="X" e jogo[2][3]=="X" e jogo[3][3]=="X" ou jogo[1][1]=="X" e jogo[1][2]=="X" e jogo[1][3]=="X" ou jogo[2][1]=="X" e jogo[2][2]=="X" e jogo[2][3]=="X" ou jogo[3][1]=="X" e jogo[3][2]=="X" e jogo[3][3]=="X" ou jogo[1][1]=="X" e jogo[2][2]=="X" e jogo[3][3]=="X" ou jogo[3][1]=="X" e jogo[2][2]=="X" e jogo[1][3]=="X"){
escreva(jogador2," ganhou!")
escreva("\n Digite 0 caso queira sair ou 1 caso queira iniciar uma nova partida: ")
leia(continuar)
v=1
p2=p2+1
se(continuar==1){
v=0
empate=0
aui=1 /*Se o usuário quer jogar um novo jogo, está variável vira 1 e se ela é 1 então o tabuleiro é reiniciado*/
}
} /*Fim da caixa de verificação de vitória do jogador2*/
se(empate==9 e v==0){ /*Verifica se depois da jogada o jogo é empate*/
escreva("Foi um empate")
escreva("\n Digite 0 caso queira sair ou 1 caso queira iniciar uma nova partida: ")
leia(continuar)
v=0
se(continuar==1){aui=1} /*Verifica se o usuário quer jogar uma nova partida se a resposta for igual a 1*/
} /*Fim da verificação de empate*/
}
senao{ /*Exibe que a casa escolhida não tem valor nulo, portanto ela é invalida e obriga esse usuário a escolher outra casa*/
escreva("Casa inválida. Tente novamente.\n")
pode_imprimir=1
} /*Fim da exibição de casa invalida*/
se(aui==1){ /*Reinicia o tabuleiro se o jogador quiser uma nova partida*/
aui=0
para(automatizar_fileira=1;automatizar_fileira!=4;automatizar_fileira++){
para(automatizar_coluna=0;automatizar_coluna!=4;automatizar_coluna++){
jogo[automatizar_coluna][automatizar_fileira]="-"
}
}
} /*Fim da reiniciação de tabuleiro*/
} /* Fim do loop */
escreva("O jogo foi cancelado, ",jogador1," fez ",p1," pontos, e ",jogador2," fez ",p2," pontos.")
escreva("\n Obrigado por utilizar o meu programa!")
}
senao{
escreva("Escolha 1 ou 2 como opção, por favor.")
}
}
}