Joguinho de memória em pascal – Trabalho feito no curso
Posted on fevereiro 12, 2011 | Comentários desativados em Joguinho de memória em pascal – Trabalho feito no curso
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.