Boa noite pessoal, tudo bem? Estou com algumas dificuldades na criacao do algoritmo para um trabalho de um jogo da velha.
linha 111: Tipos incompativeis! não e possível atribuir uma expressao do tipo "vazio" a uma expressao do tipo "logico".
linha 115: Tipos incompativeis! não e possível atribuir uma expressao do tipo "vazio" a uma expressao do tipo "logico"..
aqui esta o codigo completo:
programa
{
const inteiro k = 200
inteiro cad = 0, vitorias[k]
cadeia nomes[k], jogador
funcao cadastrarPessoa(cadeia nome)
{
inteiro posicaoExistente = -1
para(inteiro i = 0; i < cad; i++)
{
se (nome == nomes[i])
{
jogador = nome
posicaoExistente = i
}
}
se (posicaoExistente != -1)
{
jogador = nome
}
senao
{
nomes[cad] = nome
vitorias[cad] = 0
jogador = nome
cad++
}
escreva("\n\n\n\n\n\n\n")
}
funcao desenharTabuleiro(caractere tabuleiro[][])
{
para(inteiro i = 0; i < 3; i++)
{
para(inteiro j = 0; j < 3; j++)
{
escreva(" ", tabuleiro[i][j], " ")
se (j < 2){
escreva("|")}}
se (i < 2){
escreva("\n-----------\n")}}
escreva("\n")
}
funcao verificarVitoria(caractere tabuleiro[][], caractere jogador)
{
logico volta = falso
para(inteiro i = 0; i < 3; i++)
{
se (tabuleiro[i][0] == jogador e tabuleiro[i][1] == jogador e tabuleiro[i][2] == jogador){
retorne volta = verdadeiro }
se (tabuleiro[0][i] == jogador e tabuleiro[1][i] == jogador e tabuleiro[2][i] == jogador){
volta = verdadeiro}
}
se (tabuleiro[0][0] == jogador e tabuleiro[1][1] == jogador e tabuleiro[2][2] == jogador){
retorne volta = verdadeiro }
se (tabuleiro[0][2] == jogador e tabuleiro[1][1] == jogador e tabuleiro[2][0] == jogador){
retorne volta = verdadeiro }
}
funcao jogarJogoDaVelha()
{
caractere tabuleiro[3][3] = {{' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}}
inteiro vez = 1
inteiro linha, coluna
logico jogoEmAndamento = verdadeiro
logico jogadorVenceu = falso
enquanto (jogoEmAndamento)
{
desenharTabuleiro(tabuleiro)
escreva("Jogador ")
se (vez == 1)
{
escreva("X")
}
senao
{
escreva("O")
}
escreva(", informe a linha (0-2): ")
leia(linha)
escreva("Jogador ")
se (vez == 1)
{
escreva("X")
}
senao
{
escreva("O")
}
escreva(", informe a coluna (0-2): ")
leia(coluna)
se (tabuleiro[linha][coluna] == ' ')
{
se (vez == 1)
{
tabuleiro[linha][coluna] = 'X'
}
senao
{
tabuleiro[linha][coluna] = 'O'
}
se (vez == 1)
{
jogadorVenceu = verificarVitoria(tabuleiro,'X')
}
senao
{
jogadorVenceu = verificarVitoria(tabuleiro,'O')
}
}
senao
{
escreva("Posição ocupada. Escolha outra posição.\n")
se (jogadorVenceu)
{
desenharTabuleiro(tabuleiro)
escreva("Jogador ")
se (vez == 1)
{
escreva("X")
}
senao
{
escreva("O")
}
escreva(" venceu!\n")
para(inteiro i = 0; i < cad; i++)
{
se (jogador == nomes[i])
{
vitorias[i]++
}
}
jogoEmAndamento = falso
}
senao
{
vez = -vez
}
}
}
}
funcao inicio()
{
inteiro op
cadeia nome
caractere tabuleiro[3][3]
escreva("Digite o nome do jogador. \n==> ")
leia(nome)
cadastrarPessoa(nome)
faca
{
escreva("\n 1. Iniciar.\n 2. Trocar usuario.\n 3. Estatisticas \n 4. Encerrar. \n ==> ")
leia(op)
escreva("\n\n\n\n\n\n\n")
escolha(op)
{
caso 1:
escreva(jogador, " comeca como X\n")
desenharTabuleiro(tabuleiro)
pare
caso 2:
escreva("Digite o nome do jogador. \n==> ")
leia(nome)
cadastrarPessoa(nome)
escreva("\n\n\n\n\n\n\n")
pare
caso 3:
para(inteiro i = 0; i < cad; i++)
{
escreva("Jogador: ", nomes[i], " - Vitórias: ", vitorias[i], "\n")
}
pare
}
escreva("Pressione a tecla enter para continuar:")
cadeia lixo
leia(lixo)
escreva("\n\n\n\n\n\n\n")
} enquanto (op != 4)
}
}