Home> Blog Archives

Blog Archives

Joguinho de memória em pascal – Trabalho feito no curso

fevereiro 12, 2011 Category :Computação| Notícia| Tecnologia Off

Essa foi bem interessante. Professor de Programação colocou pra matar mesmo. Logo no 1º bloco pra fazer um jogo de memória usando matriz e arrays em pascal.

Bem simples mas divertido.

//B - numero certo na casa correta
//E - numero certo na casa errada
program jogo;
uses crt;
var
senha: array[1..4] of integer;
i,j,l,n,cont:integer;
gab: array[1..8,1..4] of string;
resp: array[1..8,1..4] of integer;
ganhou:boolean;
key:char;

//procedimento para mostrar matriz completa
procedure matrix;
var i,j,k:integer;
begin
clrscr;
writeln('B - numero certo na casa correta');
writeln('E - numero certo na casa errada');
writeln;
for i:=8 downto 1 do
begin
for j:=1 to 4 do
begin
write(gab[i,j],' ');
end;
for k:=1 to 4 do
begin
write(' ',resp[i,k]);
end;
writeln;
end;
writeln;
end;

//procedimento de encerramento do jogo - acertou
procedure fim;
var i:integer;
begin
clrscr;
textbackground(blue);
for i:=1 to 20 do
begin
write('<');
for j:=1 to 30 do
begin
if (i=10) and (j=10) then
begin
write('VOCE ACERTOU TUDO!');
j:=j+8;
end
else
write('--');
delay(5);
end;
write('>');
writeln;
end;

for i:=1 to 100 do
begin
gotoxy(20,10);
if i mod 2 = 0 then
write('VOCE ACERTOU TUDO!')
else
write('----ABESTADO------');
delay(600);
end;
readkey;
end;

//procedimento de encerramento do jogo - perdeu
procedure gameover;
var i:integer;
begin
clrscr;
textbackground(red);
for i:=1 to 20 do
begin
write('<');
for j:=1 to 30 do
begin
if (i=10) and (j=10) then
begin
write('VAI SER BURRO LONGE!');
j:=j+9;
end
else
write('--');
delay(5);
end;
write('>');
writeln;
end;

for i:=1 to 100 do
begin
gotoxy(20,10);
if i mod 2 = 0 then
write('VAI SER BURRO LONGE!')
else
write('----ABESTADO--------');
delay(600);
end;
readkey;
end;

//inicio do programa
begin
TEXTCOLOR(white);
ganhou:=false;
//zerando matrizes
for i:=1 to 8 do
begin
for j:=1 to 4 do
begin
gab[i,j]:='*';
resp[i,j]:=0;
end;
end;

writeln('Digite 4 numeros inteiros(1-8): ');
for i:=1 to 4 do
begin
TEXTCOLOR(black);
readln(senha[i]);
TEXTCOLOR(white);
write('*');
end;
clrscr;
//desenha matriz limpa
matrix;
TEXTCOLOR(white);
writeln;
//inicio do jogo - loop de 8 tentativas
for i:=1 to 8 do
begin
if ganhou=true then
begin
fim;
break;
end
else
begin
if i>1 then
begin
TEXTCOLOR(yellow);
writeln('Errado! Tente novamente!!!');
TEXTCOLOR(white);
writeln;
end;
end;
writeln('Digite sua ',i,'a resposta (4 numeros inteiros - 1 a 8): ');
n:=1;
cont:=0;
for j:=1 to 4 do
begin
readln(resp[i,j]);
if senha[j]=resp[i,j] then
begin
gab[i,n] := 'B';
n:=n+1;
//se cont for igual a 4 o jogador acertou tudo na sequencia certa
cont:=cont+1;
if cont=4 then
ganhou:=true;
end
else
//se não achar na sequencia certa, verifica se tem elementos iguais nas sequencias erradas
begin
for l:=1 to 4 do
begin
if resp[i,j] = senha[l] then
begin
gab[i,n] := 'E';
n:=n+1;
end;
end;
end;
end;
matrix;
end;
//fim do jogo
if ganhou=false then
gameover;

readkey;
end.