Ir ao conteúdo
  • Cadastre-se

Jogo da memória com matriz


bbiieell

Posts recomendados

Pessoal o objetivo é fazer um jogo da memoria em uma matriz 4x3 e que compare esses numeros, apresentando ao jogador se ele acertou ou não. segue o codigo ai:


var
matriz:array [1..4,1..3] of string;
i,j:integer;
ml,ml2: array [1..4,1..3] of string;
opcao, tempo:integer;
numero1, numero2, coluna1, linha1, coluna2, linha2, erros:integer;
salvo1, salvo2:string;



procedure matrizmodificada1;

begin
coluna1:= numero1 mod 3;
if (numero1 mod 3 = 0) then
coluna1:=3;

if ((numero1=1) or (numero1=2) or (numero1=3)) then
linha1:=1;

if ((numero1=4) or (numero1=5) or (numero1=6)) then
linha1:=2;

if ((numero1=7) or (numero1=8) or (numero1=9)) then
linha1:=3;

if ((numero1=10) or (numero1=11) or (numero1=12)) then
linha1:=4;

salvo1:=matriz[linha1,coluna1];
ml[linha1,coluna1]:=salvo1;

for i:=1 to 4 do
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);

end;



procedure matrizmodificada2;

begin

coluna2:= numero2 mod 3;
if (numero2 mod 3 = 0) then
coluna2:=3;

if ((numero2=1) or (numero2=2) or (numero2=3)) then
linha2:=1;

if ((numero2=4) or (numero2=5) or (numero2=6)) then //Valores das matrizes de caracteres//
linha2:=2;

if ((numero2=7) or (numero2=8) or (numero2=9)) then
linha2:=3;

if ((numero2=10) or (numero2=11) or (numero2=12)) then
linha2:=4;

salvo2:=matriz[linha2,coluna2];
ml[linha2,coluna2]:=salvo2;


for i:=1 to 4 do
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);

end;

procedure matrizoriginal;

begin


ml2[1,1]:='1';
ml2[1,2]:='2';
ml2[1,3]:='3';
ml2[2,1]:='4';
ml2[2,2]:='5';
ml2[2,3]:='6';
ml2[3,1]:='7';
ml2[3,2]:='8';
ml2[3,3]:='9';
ml2[4,1]:='10';
ml2[4,2]:='11';
ml2[4,3]:='12';


for i:=1 to 4 do
writeln (ml2[i,1]:6, ml2[i,2]:6, ml2[i,3]:6);
end;




Begin
erros:=0;
//menu do jogo//

textcolor (lightred);
writeln ('Esse é um jogo da memória. Você tem 10 segundos para visualizar as cartas e no máximo 3 tentativas. Para escolher uma carta digite o número correspondente a ela.');
textcolor (lightgreen);
writeln (' ');
writeln (' ');

writeln ('Menu');
writeln (' ');

writeln ('1. Jogar');

writeln ('2. Score');

writeln ('3. Sair');

matriz[1,1]:='25'; //Valores das matrizes de strings//
matriz[1,2]:='40';
matriz[1,3]:='50';
matriz[2,1]:='15';
matriz[2,2]:='50-25';
matriz[2,3]:='10-3';
matriz[3,1]:='30-10';
matriz[3,2]:='7';
matriz[3,3]:='20+20';
matriz[4,1]:='25+25';
matriz[4,2]:='20';
matriz[4,3]:='7+8';

ml[1,1]:='1'; //Valores das matrizes de caracteres//
ml[1,2]:='2';
ml[1,3]:='3';
ml[2,1]:='4';
ml[2,2]:='5';
ml[2,3]:='6';
ml[3,1]:='7';
ml[3,2]:='8';
ml[3,3]:='9';
ml[4,1]:='10';
ml[4,2]:='11';
ml[4,3]:='12';




writeln ('Digite o número correspondente');

//aqui começa a jogar caso o usuário digite 1//
read (opcao);
if (opcao=1) then
begin
for i:=1 to 4 do
writeln (#178,matriz[i,1]:6,#178,#178,matriz[i,2]:6,#178,#178,matriz[i,3]:6,#178); //impressão das matrizes para o usuário ver durante 10s//
writeln;
while (tempo<=10) do //temporizador - 10 segundos//
Begin
delay (100);
writeln ('Tempo:',tempo,' segundos');
tempo := tempo + 1;
End;

clrscr; // usado para limpar a matriz e o contador que apresentamos antes//

for i:=1 to 4 do //mostra a matriz dos números//
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);
repeat
writeln;
writeln ('Escolha um número'); // Primeira escolha do usuário//
read (numero1);
clrscr;
matrizmodificada1;






writeln ('Escolha outro número'); // Segunda escolha do usuário//
read (numero2);
clrscr;
matrizmodificada2;




if (salvo1=salvo2) then

begin
writeln ('voce acertou');
for i:=1 to 4 do
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);


end

else
begin
writeln;
writeln ('Tente novamente');
erros:=erros+1;
writeln;
clrscr;
writeln;
writeln ('Você tem',' ',erros,' ,erros');
writeln;
matrizoriginal;

end;


until erros=3;
end;





End.
Program Pzim;

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Pessoal o objetivo é fazer um jogo da memoria em uma matriz 4x3 e que compare esses numeros, apresentando ao jogador se ele acertou ou não. segue o codigo ai:


var
matriz:array [1..4,1..3] of string;
i,j:integer;
ml,ml2: array [1..4,1..3] of string;
opcao, tempo:integer;
numero1, numero2, coluna1, linha1, coluna2, linha2, erros:integer;
salvo1, salvo2:string;



procedure matrizmodificada1;

begin
coluna1:= numero1 mod 3;
if (numero1 mod 3 = 0) then
coluna1:=3;

if ((numero1=1) or (numero1=2) or (numero1=3)) then
linha1:=1;

if ((numero1=4) or (numero1=5) or (numero1=6)) then
linha1:=2;

if ((numero1=7) or (numero1=8) or (numero1=9)) then
linha1:=3;

if ((numero1=10) or (numero1=11) or (numero1=12)) then
linha1:=4;

salvo1:=matriz[linha1,coluna1];
ml[linha1,coluna1]:=salvo1;

for i:=1 to 4 do
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);

end;



procedure matrizmodificada2;

begin

coluna2:= numero2 mod 3;
if (numero2 mod 3 = 0) then
coluna2:=3;

if ((numero2=1) or (numero2=2) or (numero2=3)) then
linha2:=1;

if ((numero2=4) or (numero2=5) or (numero2=6)) then //Valores das matrizes de caracteres//
linha2:=2;

if ((numero2=7) or (numero2=8) or (numero2=9)) then
linha2:=3;

if ((numero2=10) or (numero2=11) or (numero2=12)) then
linha2:=4;

salvo2:=matriz[linha2,coluna2];
ml[linha2,coluna2]:=salvo2;


for i:=1 to 4 do
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);

end;

procedure matrizoriginal;

begin


ml2[1,1]:='1';
ml2[1,2]:='2';
ml2[1,3]:='3';
ml2[2,1]:='4';
ml2[2,2]:='5';
ml2[2,3]:='6';
ml2[3,1]:='7';
ml2[3,2]:='8';
ml2[3,3]:='9';
ml2[4,1]:='10';
ml2[4,2]:='11';
ml2[4,3]:='12';


for i:=1 to 4 do
writeln (ml2[i,1]:6, ml2[i,2]:6, ml2[i,3]:6);
end;




Begin
erros:=0;
//menu do jogo//

textcolor (lightred);
writeln ('Esse é um jogo da memória. Você tem 10 segundos para visualizar as cartas e no máximo 3 tentativas. Para escolher uma carta digite o número correspondente a ela.');
textcolor (lightgreen);
writeln (' ');
writeln (' ');

writeln ('Menu');
writeln (' ');

writeln ('1. Jogar');

writeln ('2. Score');

writeln ('3. Sair');

matriz[1,1]:='25'; //Valores das matrizes de strings//
matriz[1,2]:='40';
matriz[1,3]:='50';
matriz[2,1]:='15';
matriz[2,2]:='50-25';
matriz[2,3]:='10-3';
matriz[3,1]:='30-10';
matriz[3,2]:='7';
matriz[3,3]:='20+20';
matriz[4,1]:='25+25';
matriz[4,2]:='20';
matriz[4,3]:='7+8';

ml[1,1]:='1'; //Valores das matrizes de caracteres//
ml[1,2]:='2';
ml[1,3]:='3';
ml[2,1]:='4';
ml[2,2]:='5';
ml[2,3]:='6';
ml[3,1]:='7';
ml[3,2]:='8';
ml[3,3]:='9';
ml[4,1]:='10';
ml[4,2]:='11';
ml[4,3]:='12';




writeln ('Digite o número correspondente');

//aqui começa a jogar caso o usuário digite 1//
read (opcao);
if (opcao=1) then
begin
for i:=1 to 4 do
writeln (#178,matriz[i,1]:6,#178,#178,matriz[i,2]:6,#178,#178,matriz[i,3]:6,#178); //impressão das matrizes para o usuário ver durante 10s//
writeln;
while (tempo<=10) do //temporizador - 10 segundos//
Begin
delay (100);
writeln ('Tempo:',tempo,' segundos');
tempo := tempo + 1;
End;

clrscr; // usado para limpar a matriz e o contador que apresentamos antes//

for i:=1 to 4 do //mostra a matriz dos números//
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);
repeat
writeln;
writeln ('Escolha um número'); // Primeira escolha do usuário//
read (numero1);
clrscr;
matrizmodificada1;






writeln ('Escolha outro número'); // Segunda escolha do usuário//
read (numero2);
clrscr;
matrizmodificada2;




if (salvo1=salvo2) then

begin
writeln ('voce acertou');
for i:=1 to 4 do
writeln (ml[i,1]:6, ml[i,2]:6, ml[i,3]:6);


end

else
begin
writeln;
writeln ('Tente novamente');
erros:=erros+1;
writeln;
clrscr;
writeln;
writeln ('Você tem',' ',erros,' ,erros');
writeln;
matrizoriginal;

end;


until erros=3;
end;





End.
Program Pzim;

Olá.

Que erro está dando? O que você não está conseguindo corrigir... ?

Por favor, tente ser mais especifico...

No aguardo.

Link para o comentário
Compartilhar em outros sites

Olá.

Que erro está dando? O que você não está conseguindo corrigir... ?

Por favor, tente ser mais especifico...

No aguardo.

quando compila, se você marcar dois numeros corretos no jogo, ele diz q você errou, acho que isso ta ocorrendo porque não consegui igualar corretamente as matrizes!minha logica deve estar errada na parte do (salvo1=salvo2)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...