Program Jogo_do_Galo;
Uses crt,dos;
procedure clrmsg;
var i:byte;
begin
textbackground(0);
gotoxy(11,19);
for i:=0 to 58 do
write(' ');
end;
{*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure ambasmsg;
begin
gotoxy(17,19);
textcolor(6);
write('Ligue o Numeric Lock (Num Lock) e use o Keypad');
end;
{*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure keypadmsg;
begin
gotoxy(34,19);
textcolor(6);
write('Use o Keypad');
end;
{*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure NumLmsg;
begin
gotoxy(24,19);
textcolor(6);
write('Ligue o Numeric Lock (Num Lock)');
end;
{*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure FESTA_1;
var c,i:byte;
begin
repeat
textbackground(0);
for c:=1 to 3 do
begin
gotoxy(14,10+c);
for i:=1 to 7 do
write(' ');
end;
{---------}
if keypressed then exit;
textcolor(14);
gotoxy(17,11);
write('');
{ombros}
textcolor(2);
gotoxy(16,11);
write('_');
gotoxy(18,11);
write('_');
{bra‡os}
gotoxy(15,12);
write('/');
gotoxy(19,12);
write('\');
{tronco}
textcolor(2);
gotoxy(17,12);
write('Û');
{pernas}
textcolor(1);
gotoxy(16,13);
write('/');
gotoxy(18,13);
write('\');
{p‚s}
textcolor(15);
gotoxy(15,13);
write('_');
gotoxy(19,13);
write('_');
delay(300);
textcolor(0);
{---------}
textbackground(0);
for c:=1 to 3 do
begin
gotoxy(14,10+c);
for i:=1 to 7 do
write(' ');
end;
{---------}
if keypressed then exit;
{cabe‡a}
textcolor(14);
gotoxy(17,11);
write('');
{bra‡os e ombros}
textcolor(2);
gotoxy(15,11);
write('\_');
gotoxy(18,11);
write('_/');
{tronco}
gotoxy(17,12);
write('Û');
{pernas}
textcolor(1);
gotoxy(15,12);
write('__');
textcolor(15);
gotoxy(14,12);
write('_');
textcolor(1);
gotoxy(18,12);
write('__');
textcolor(15);
gotoxy(20,12);
write('_');
delay(300);
until keypressed;
end;
{*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure FESTA_2;
var c,i:byte;
begin
repeat
textbackground(0);
for c:=1 to 3 do
begin
gotoxy(59,10+c);
for i:=1 to 7 do
write(' ');
end;
{---------}
if keypressed then exit;
textcolor(14);
gotoxy(62,11);
write('');
{ombros}
textcolor(2);
gotoxy(61,11);
write('_');
gotoxy(63,11);
write('_');
{bra‡os}
gotoxy(60,12);
write('/');
gotoxy(64,12);
write('\');
{tronco}
textcolor(2);
gotoxy(62,12);
write('Û');
{pernas}
textcolor(1);
gotoxy(61,13);
write('/');
gotoxy(63,13);
write('\');
{p‚s}
textcolor(15);
gotoxy(60,13);
write('_');
gotoxy(64,13);
write('_');
delay(300);
textcolor(0);
{---------}
textbackground(0);
for c:=1 to 3 do
begin
gotoxy(59,10+c);
for i:=1 to 7 do
write(' ');
end;
{---------}
if keypressed then exit;
{cabe‡a}
textcolor(14);
gotoxy(62,11);
write('');
{bra‡os e ombros}
textcolor(2);
gotoxy(60,11);
write('\_');
gotoxy(63,11);
write('_/');
{tronco}
gotoxy(62,12);
write('Û');
{pernas}
textcolor(1);
gotoxy(60,12);
write('__');
textcolor(15);
gotoxy(59,12);
write('_');
textcolor(1);
gotoxy(63,12);
write('__');
textcolor(15);
gotoxy(65,12);
write('_');
delay(300);
until keypressed;
end;
{*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure jog1win(nome:string;simb:char);
begin
clrmsg;
gotoxy(27,19);
textcolor(3);
write('O ',nome,' ');
textcolor(5);
write('(');
textcolor(6);
write(simb);
textcolor(5);
write(')');
gotoxy(44,19);
textcolor(4+BLINK);
write(' GANHOU !!');
festa_1;
end;
{*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-}
procedure jog2win(nome:string;simb:char);
begin
clrmsg;
gotoxy(27,19);
textcolor(3);
write('O ',nome,' ');
textcolor(5);
write('(');
textcolor(6);
write(simb);
textcolor(5);
write(')');
gotoxy(44,19);
textcolor(4+BLINK);
write(' GANHOU !!');
festa_2;
end;
(*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*)
type
casa=record
ck:boolean;
simb:char;
end;
jogador=record
pt:byte;
nm:string[9];
simb:char;
end;
var cs:array[1..9] of casa;
jog1,jog2:jogador;
linha:boolean;
tent,max_num,num_jogad:byte;
code:integer;
c:word;
tecla,simb:char;
label p,fim;
begin
{ ecran de pedir os nomes }
textcolor(0);
textbackground(7);
clrscr;
SetCBreak(false);
{--}
textbackground(1);
for c:=1 to 80 do
write(' ');
gotoxy(30,1);
textcolor(15);
textbackground(1);
write('JOGO DO GALO - Nomes');
gotoxy(3,25);
textcolor(0);
textbackground(7);
write('Insira o nome dos jogadores com o m ximo de 9 letras cada um.');
{--}
textbackground(1);
textcolor(10);
gotoxy(1,2);
for c:=1 to 1840 do
write('±');
{--}
gotoxy(7,10);
textcolor(0);
textbackground(3);
write('Insira o nome do 1§ Jogador (DEFAULT=Jogador 1) :');
gotoxy(7,13);
textcolor(0);
textbackground(3);
write('Insira o nome do 2§ Jogador (DEFAULT=Jogador 2) :');
gotoxy(7,16);
write('Insira o numero m ximo de pontos:');
{*}
textcolor(7);
gotoxy(57,10);
for c:=0 to 10 do
write('Û');
textcolor(7);
gotoxy(57,13);
for c:=0 to 10 do
write('Û');
textcolor(7);
gotoxy(41,16);
for c:=1 to 3 do
write('Û');
gotoxy(58,10);
textcolor(0);
textbackground(7);
readln(jog1.nm);
if ((jog1.nm='') or (jog1.nm=' ')) then
begin
gotoxy(58,10);
writeln('Jogador 1');
jog1.nm:='Jogador 1';
end;
gotoxy(58,13);
textcolor(0);
textbackground(7);
readln(jog2.nm);
if ((jog2.nm='') or (jog2.nm=' ')) then
begin
gotoxy(58,13);
writeln('Jogador 2');
jog2.nm:='Jogador 2';
end;
jog1.nm[1]:=upcase(jog1.nm[1]);
jog2.nm[1]:=upcase(jog2.nm[1]);
gotoxy(1,25);
textbackground(7);
for c:=1 to 79 do
write(' ');
gotoxy(3,25);
textcolor(0);
textbackground(7);
write('Insira o numero m ximo de pontos de 1 a 9 (DEFAULT= 5)');
max_num:=5;
code:=2;
tecla:=#53;
repeat
val(tecla,max_num,code);
if ((code<>0) or (max_num=0)) then
begin
gotoxy(42,16);
textcolor(0);
max_num:=10;
textbackground(7);
writeln('N');
end
else
begin
gotoxy(42,16);
textcolor(0);
textbackground(7);
writeln(max_num);
end;
tecla:=readkey;
if tecla=#0 then
tecla:=readkey;
until ((tecla=#13) and (max_num in [1..9]));
jog1.pt:=0;
jog2.pt:=0;
jog1.simb:='X';
jog2.simb:='O';
(****************************************************************)
num_jogad:=0;
repeat
{ Defini‡äes iniciais }
for c:=1 to 9 do
cs[c].ck:=false;
linha:=false;
tent:=0;
tecla:=#0;
num_jogad:=num_jogad+1;
if odd(num_jogad) then
begin
jog1.simb:='X';
jog2.simb:='O';
end
else
begin
jog1.simb:='O';
jog2.simb:='X';
end;