Buscar

jogodavelha Algoritmo

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Program JogodaVelha;
Type
posicoes = array [1..9] of char;
Var
valor : posicoes;
resultado : string;
fimdojogo : boolean;
posicao, tempo, jogador, i, c : integer;
Procedure Tabuleiro;
Begin
Gotoxy(16,4);
Write(chr(179));
Gotoxy(20,4);
Write(chr(179));
Gotoxy(13,5);
Write(chr(196));
Gotoxy(14,5);
Write(chr(196));
Gotoxy(15,5);
Write(chr(196));
Gotoxy(16,5);
Write(chr(197));
Gotoxy(17,5);
Write(chr(196));
Gotoxy(18,5);
Write(chr(196));
Gotoxy(19,5);
Write(chr(196));
Gotoxy(20,5);
Write(chr(197));
Gotoxy(21,5);
Write(chr(196));
Gotoxy(22,5);
Write(chr(196));
Gotoxy(23,5);
Write(chr(196));
Gotoxy(16,6);
Write(chr(179));
Gotoxy(20,6);
Write(chr(179));
Gotoxy(13,7);
Write(chr(196));
Gotoxy(14,7);
Write(chr(196));
Gotoxy(15,7);
Write(chr(196));
Gotoxy(16,7);
Write(chr(197));
Gotoxy(17,7);
Write(chr(196));
Gotoxy(18,7);
Write(chr(196));
Gotoxy(19,7);
Write(chr(196));
Gotoxy(20,7);
Write(chr(197));
Gotoxy(21,7);
Write(chr(196));
Gotoxy(22,7);
Write(chr(196));
Gotoxy(23,7);
Write(chr(196));
Gotoxy(16,8);
Write(chr(179));
Gotoxy(20,8);
Write(chr(179));
End;
Procedure Mover(pos:integer);
Begin
Case pos of
1:Gotoxy(14,4);
2:Gotoxy(18,4);
3:Gotoxy(22,4);
4:Gotoxy(14,6);
5:Gotoxy(18,6);
6:Gotoxy(22,6);
7:Gotoxy(14,8);
8:Gotoxy(18,8);
9:Gotoxy(22,8);
End;
End;
Begin
Tabuleiro;
For i:=1 to 9 do
valor[i]:='-';
//Posiçőes 1|2|3
// 4|5|6
// 7|8|9
fimdojogo:=false;
jogador:=1;
Gotoxy(10,2);
Write('Jogo da Velha!');
Gotoxy(10,3);
Write('É a vez do jogador ',jogador);
Gotoxy(14,4);
Posicao:=1;
while not fimdojogo do //Enquanto o jogo năo terminou
Begin
if keypressed then //Se alguma tecla pressionada
Begin
case upcase(readkey) of
#0: case upcase(readkey) of
#75 :Begin //Seta para esquerda
case posicao of
1:posicao:=9;
2:posicao:=1;
3:posicao:=2;
4:posicao:=3;
5:posicao:=4;
6:posicao:=5;
7:posicao:=6;
8:posicao:=7;
9:posicao:=8;
End;
mover(posicao);
End;
#77 :Begin //Seta para direita
case posicao of
1:posicao:=2;
2:posicao:=3;
3:posicao:=4;
4:posicao:=5;
5:posicao:=6;
6:posicao:=7;
7:posicao:=8;
8:posicao:=9;
9:posicao:=1;
End;
mover(posicao);
End;
#72 :Begin //Seta para cima
case posicao of
1:posicao:=7;
2:posicao:=8;
3:posicao:=9;
4:posicao:=1;
5:posicao:=2;
6:posicao:=3;
7:posicao:=4;
8:posicao:=5;
9:posicao:=6;
End;
mover(posicao);
End;
#80 :Begin //Seta para Baixo
case posicao of
1:posicao:=4;
2:posicao:=5;
3:posicao:=6;
4:posicao:=7;
5:posicao:=8;
6:posicao:=9;
7:posicao:=1;
8:posicao:=2;
9:posicao:=3;
End;
mover(posicao);
End;
End;
#13: Begin // Enter
If valor[posicao]='-' then
Begin
If jogador=1 then
Begin
Write('X');
valor[posicao]:='X';
jogador:=2;
End
else
Begin
Write('O');
valor[posicao]:='O';
jogador:=1;
End;
mover(posicao);
If ((valor[1]='X') and (valor[2]='X') and (valor[3]='X')) or ((valor[4]='X') and
(valor[5]='X') and (valor[6]='X'))
or ((valor[7]='X') and (valor[8]='X') and (valor[9]='X')) or ((valor[1]='X') and
(valor[4]='X') and (valor[7]='X'))
or ((valor[2]='X') and (valor[5]='X') and (valor[8]='X')) or ((valor[3]='X') and
(valor[6]='X') and (valor[9]='X'))
or ((valor[1]='X') and (valor[5]='X') and (valor[9]='X')) or ((valor[3]='X') and
(valor[5]='X') and (valor[7]='X'))
then
Begin
fimdojogo:=true;
resultado:='O Jogador 1 Venceu.';
break;
End;
If ((valor[1]='O') and (valor[2]='O') and (valor[3]='O')) or ((valor[4]='O') and
(valor[5]='O') and (valor[6]='O'))
or ((valor[7]='O') and (valor[8]='O') and (valor[9]='O')) or ((valor[1]='O')
and (valor[4]='O') and (valor[7]='O'))
or ((valor[2]='O') and (valor[5]='O') and (valor[8]='O')) or ((valor[3]='O')
and (valor[6]='O') and (valor[9]='O'))
or ((valor[1]='O') and (valor[5]='O') and (valor[9]='O')) or ((valor[3]='O')
and (valor[5]='O') and (valor[7]='O'))
then
Begin
fimdojogo:=true;
resultado:='O Jogador 2 Venceu.';
break;
End;
If (valor[1]<>'-') and (valor[2]<>'-') and (valor[3]<>'-') and (valor[4]<>'-')
and (valor[5]<>'-') and (valor[6]<>'-') and (valor[7]<>'-') and (valor[8]<>'-') and (valor[9]<>'-')
then
Begin
fimdojogo:=true;
resultado:='Empate.';
break;
End;
End;
End;
#27: Begin
fimdojogo:=true;
resultado:='Empate.';
break;
End;
End;
Gotoxy(10,3);
Write('É a vez do jogador ',jogador);
mover(posicao);
End;
End;
Gotoxy(10,10);
Write('Resultado: ',resultado);
End.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando