Ir ao conteúdo
  • Cadastre-se
bbiieell

Jogo da memória com matriz

Recommended Posts

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;

Editado por Simon Viegas
Inserir tag CODE para o código e SPOILER devido ao tamanho

Compartilhar este post


Link para o post
Compartilhar em outros sites
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.

Compartilhar este post


Link para o post
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)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×