• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Innight

[Duvida] C++ pong

20 mensagens neste tópico

Boas.O meu pograma do pong tem um problema que a linha do meio vai pra a frente derivado a raquete da esquerda.se alguem me conseguisse dizer onde está o erro agradecia,obrigado..

#include <stdio.h>
#include <stdlib.h>
#include <direct.h>
#include <string.h>
#include <ctype.h>
#include <windows.h>
#include <conio.h>

int main ()
{
int lin, col;
int posX = 19, posY = 3;
//	char caracter,jogador 1
int x = 1, y = 1;
int vel = 1;
int points_1=0, points_2=0;

//variaveis pra as linhas

int linhae1=8;
int linhae2=13;
    int linhad1=8;
int linhad2=13;

do{
system("cls");

for(lin = 1; lin <= 20; lin++)
{

	for (col = 1; col <= 60; col++)
	{
		if(lin == 1 || lin == 20)
			if(col > 2 && col < 59)
				printf("%c", 178);

			else
				printf(" ");
		else

					if(col==32)
				if(lin >1 && lin <20)
					printf("%c", 124);
				else
					printf("");
				else


				//mover se bater nas paredes

			if(col == posX  && lin == posY)
				{
					printf("%c",42);


					if((posY == 2 || posY == 19) && (posX > 2 && posX < 59))
						y = -y;
					if((posX == 2 || posX == 59) && (posY > 2 && posY < 19))
						x = -x;
					{
				//se sair a particula pontos
						if(posY > 1 && posX ==59)
					{
				posX=5;
				posY=4;
				//points_1++;
					}

					if(posY > 2 && posX ==2)
					{
				posX=5;
				posY=4;
				//points_2++;
					}

					}

			}	

				else
					printf(" ");
			//Desenhar raquetes
				if(col == 1)
				if(lin > linhae1 && lin < linhae2)
					printf("%c", 178);

				if(col==59)
				if(lin >linhad1 && lin <linhad2)
				  printf("%c", 178);

		}
		printf("\n");

	}//velocidade particula
	posX += x * vel;
	posY += y * vel;


//pontos jogadores
//printf("points jogador 1 %d\n",points_1);
//printf("points jogador 2 %d\n",points_2);

if(points_1 ==3)
{
printf("jogador 1 ganhou\n");

}
if(points_2==3){
	printf("jogador 2 ganhou\n");
}


//mover as raquetes
if(_kbhit()!=0)
{
switch(_getch())
{
case 'a':
	linhae1--;
	linhae2--;
	break;


case 's':
	linhae1++;
	linhae2++;
	break;

case 'k':
	linhad1--;
	linhad2--;
	break;

	case 'l':
	linhad1++;
	linhad2++;
	break;
}
}
}while(points_1!=3 && points_2 !=3);
}	

http://img508.imageshack.us/img508/5370/imagzk3.jpg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que vou dizer não vai ajudar muito, mas devias escrever 1º todo o campo (porque nunca se vai mover) e depois escrevias as raquetes e a bola.

No entanto, para resolveres facilmente o teu problema, quando escreveres um caracter da raquete da esquerda incrementa a variável col:

										//Desenhar raquetes
			if(col == 1)
				if(lin > linhae1 && lin < linhae2) {
					printf("%c", 178);
					++col;
				}

			if(col==59)
				if(lin >linhad1 && lin <linhad2)
					printf("%c", 178);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

TheDark se incrementar o col só me vai aparecer metade do campo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimentei antes de postar e não me aconteceu isso. Experimentei agora e também não me aconteceu... Desenha tudo:

pongyl2.png

Já agora, utilizares um system("cls") ali no meio não é muito recomendável por mais que uma razão... se simplesmente colocares o cursor na posição (0,0) tem o mesmo efeito e não vês o ecrã a piscar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como eu meto o cursor a 0?O meu campo já esta bom:D

Desculpa a minha ignoranca nesta materia e obrigado pela tua ajuda:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se isto é para algum trabalho, e se podes usar o que vou dizer, mas pelos headers que ali tens parece que sim:

Substitui

	do{
system("cls");

por

	HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD p={0,0};
do{
	SetConsoleCursorPosition(hStdout, p);

O jogo assim vai ficar muito mais rápido. Tens aqui a referência da funçao SetConsoleCursorPosition

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigadão.ja esta a funcar fixe sem piscar.está é muito rapido.sabes algum pra mter mais lento?eu vou fazer uma funcao sleep para ficar mais lenta a particula.achas que assim fica mais lenta?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes esperar utilizando as funções GetTickCount e Sleep.

A ideia é no início do ciclo do .. while guardares o tempo que a GetTickCount retorna

DWORD tempo=GetTickCount()

e no fim do ciclo vês se já passaram 100 ou 200 milisegundos; se não tiverem passado, fazes Sleep do tempo restante

if (GetTickCount() - tempo < 200) Sleep(200 - (GetTickCount() - tempo));

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas. Não precissei de isso.fiz com um for.obrigado na mesma.

for(i=1;i<=100000000;i++);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.olha sabem como a particula bater numa rakete e voltar pra atras?eu fiz este dois ifs

if(posX == 57 && posY>linhad1 && posY < linhad2)

{

x=-x;

}

if(posX==2 && posY>=linhae1 && posY<=linhae2)

x=-x;

Mas não funciona.fiz antes e batia só na parte de baixo da rakete eskerda e voltava para atras mas na parte da cima da raquete nao voltava para atras.

posX == 58&& posY > = linhad1 && posY<=linhad2)

x=-x;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas. Não precissei de isso.fiz com um for.obrigado na mesma.

for(i=1;i<=100000000;i++);

Se bem que isso não interesse muito neste caso, esse código é altamente ineficiente porque vai colocar o CPU a 100%.

Boas.olha sabem como a particula bater numa rakete e voltar pra atras?eu fiz este dois ifs

if(posX == 57 && posY>linhad1 && posY < linhad2)

{

x=-x;

}

if(posX==2 && posY>=linhae1 && posY<=linhae2)

x=-x;

Mas não funciona.fiz antes e batia só na parte de baixo da rakete eskerda e voltava para atras mas na parte da cima da raquete nao voltava para atras.

posX == 58&& posY > = linhad1 && posY<=linhad2)

x=-x;

Onde é que estás a pôr esse código?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
#include <stdio.h>
#include <stdlib.h>
#include <direct.h>
#include <string.h>
#include <ctype.h>
#include <windows.h>
#include <conio.h>


BOOL WINAPI SetConsoleCursorPosition(
  HANDLE hConsoleOutput,
  COORD dwCursorPosition
);

int main ()
{
int lin, col;
int posX = 19, posY = 3;
//	char caracter,
int x = 1, y = 1;
int vel = 1;
int points_1=0, points_2=0;
int i;

//variaveis pra as linhas

int linhae1=9;
int linhae2=12;
    int linhad1=9;
int linhad2=12;

HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD p={0,0};
do{
SetConsoleCursorPosition(hStdout, p);


//	do{
//		system("cls");
for(i=1;i<=50000000;i++);

for(lin = 1; lin <= 20; lin++)
{

	for (col = 1; col <= 60; col++)
	{
		if(lin == 1 || lin == 20)
			if(col > 1 && col < 61)
				printf("%c", 178);

			else
				printf(" ");
		else

					if(col==32)
				if(lin >1 && lin <60)
					printf("%c", 124);
				else
					printf("");
				else

				//mover se bater nas paredes

			if(col == posX  && lin == posY)
				{
					printf("%c",42);


					if((posY == 2 || posY == 19) && (posX > 2 && posX < 59))
						y = -y;
					if((posX == 2 || posX == 59) && (posY > 2 && posY < 19))
						x = -x;


					if(posX == 57 && posY>linhad1 && posY < linhad2)
					{
						x=-x;
					}
					if(posX==2 && posY>=linhae1 && posY<=linhae2)
						x=-x;


				{

				//se sair a particula pontos e se bater na parede
						if(posY > 1 && posX ==59)
					{
				posX=10;
				posY=30;
				//points_1++;
					}

					if(posY > 2 && posX ==2)
					{
				posX=10;
				posY=30;
				//points_2++;
					}

					}

			}	

				else
					printf(" ");
			//Desenhar raquetes

				if(col == 1)				
					if(lin >= linhae1 && lin <= linhae2) {
						printf("%c", 178);						
						++col;
					}
					if(col==59)					
						if(lin >= linhad1 && lin <=linhad2)					
						  printf("%c", 178);


		}
		printf("\n");

	}//velocidade particula
	posX += x * vel;
	posY += y * vel;


//pontos jogadores
//printf("points jogador 1 %d\n",points_1);
//printf("points jogador 2 %d\n",points_2);

if(points_1 ==3)
{
printf("jogador 1 ganhou\n");

}
if(points_2==3){
	printf("jogador 2 ganhou\n");
}
//mover as raquetes
if(_kbhit()!=0)
{
switch(_getch())
{
case 'a':
	linhae1--;
	linhae2--;
	break;


case 's':
	linhae1++;
	linhae2++;
	break;

case 'k':
	linhad1--;
	linhad2--;
	break;

	case 'l':
	linhad1++;
	linhad2++;
	break;
}

if(linhad1==1)
{		
linhad1=2;
linhad2=5;
}

if(linhad2==20)
{	
linhad1=16;
linhad2=19;
}
if(linhae1==1)
{
linhae1=2;
linhae2=5;
}

if(linhae2==20)
{
linhae1=16;
linhae2=19;
}
}
}while(points_1!=3 && points_2 !=3);
}	

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Problema 1:

								if(posY > 1 && posX ==59)
							{
								posX=10;
								posY=30;
								//points_1++;
							}

							if(posY > 2 && posX ==2)
							{
								posX=10;
								posY=30;
								//points_2++;
							}

os posY=30; estão mal... y=30 é fora do campo.

Vou editando este post à medida que for descobrindo problemas. Ah, e começa a usar o Geshi ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas...

Como eu tb tenho esse projecto para a escola posso te ajudar... experimenta em vez desses if's q tu tens pores assim:

	if(posX == 59)
					{
						if(posY==linhad1+1 || posY==linhad2+1 || posY==linhad3+1 || posY==linhad4+1)
							x=-x;
					}
					if(posX==3)
					{
						if(posY==linhae1-1 || posY==linhae2-1 || posY==linhae3-1 || posY==linhae4-1)
							x=-x;
					}

e em vez de fzrs uma linha para 1 para o principio e outra para  o fim faz 1 para cada caractere, ou seja:

int linhae1=9, linhae2=10, linhae3=11, linhae4=12;
int linhad1=9, linhad2=10, linhad3=11, linhad4=12;

Penso q assim funciona

ptt[],

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas... como ja disse anteriormente tou tba  fzr este trabalho para a escola.

Só que no meu está-me a dar um erro grave, quando a bola passa pela a linha do meio e lg de seguida vai bater ou na parede debaixo ou na de cima a bola desaparece

:bored:

Alguem me pode ajudar plz ?

#include <stdio.h>
#include <stdlib.h>
#include <direct.h>
#include <string.h>
#include <ctype.h>
#include <windows.h>
#include <conio.h>

int main ()
{
int lin, col;
int posX = 29, posY = 10;
int x = 1, y = 1;

//Flipper Esqerdo
int eflipper1=9, eflipper2=10, eflipper3=11, eflipper4=12;
//Flipper Direito
    int dflipper1=9, dflipper2=10, dflipper3=11, dflipper4=12;
int bola=42;
int num, random;
//int random;
int start=0;
int jgdr1=0, jgdr2=0;

HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD p={0,0};
do{
SetConsoleCursorPosition(hStdout, p);

Sleep(85);


SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),                        
  BACKGROUND_INTENSITY | BACKGROUND_GREEN |
  FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);    
  printf(" Jogador 1: %d                                   Jogador 2: %d",jgdr1, jgdr2);
  puts("");
for(lin = 1; lin <= 20; lin++)
{

	for (col = 1; col <= 60; col++)
	{
		if(lin == 1 || lin == 20)
			if(col > 1 && col < 61)
				printf("%c", 178);
			else
				printf(" ");
		else
			if(col==32)
				if(lin > 1 && lin < 60)
					printf("%c", 124);
				else
					printf("%c",0);
				else

			if(col == posX  && lin == posY)
			{
				printf("%c",bola);

					//****Batimentos****

					//Bater Nas Paredes
			/*	if(num==1)
				{*/
					if((posY == 2 || posY == 19) && (posX > 3 && posX < 57))
						y=-y;
					if((posX == 2 || posX == 60) && (posY > 2 && posY < 19))
						x=-x;
					/*if(posX == 32 && (posY>=2 || posY==19))
						x=-x;*/
				/*}
				else
					if((posY == 2 || posY == 19) && (posX > 3 && posX < 60))
						y=+y;
					if((posX == 2 || posX == 60) && (posY > 2 && posY < 19))
						x=+x;
					if(posX == 32 && (posY>=2 || posY==19))
						x=+x;*/


					//Bater Nos Flippers
					if(posX == 58)
					{
						if(posY==dflipper1+1 || posY==dflipper2+1 || posY==dflipper3+1 || posY==dflipper4+1)
							x=-x;
					}
					if(posX == 4)
					{
						if(posY==eflipper1-1 || posY==eflipper2-1 || posY==eflipper3-1 || posY==eflipper4-1)
							x=-x;
					}
					{
						if(posX == 60) /*&& (posY>=2 && posY<=19))*///Flipper Direito
						{
							jgdr1++;
							posX=x;
							posY=y;
							posX=58;
							posY=10;
							dflipper1=9;
							dflipper2=10;
							dflipper3=11;
							dflipper4=12;
							posX += x;
							posY += y;
						}
						if(posX == 2)//Flipper Esquerdo
						{
							jgdr2++;
							posX=x;
							posY=y;
							posX=4;
							posY=10;
							eflipper1=9;
							eflipper2=10;
							eflipper3=11;
							eflipper4=12;
							posX += x;
							posY += y;
						}
					}
			}

				else
					printf(" ");

				//Desenha flippers
				if(col == 2)				
					if(lin == eflipper1 || lin == eflipper2 || lin == eflipper3 || lin == eflipper4) 
					{
						printf("%c", 178);						
						col++;
					}
					if(col==58)					
						if(lin == dflipper1 || lin == dflipper2 || lin == dflipper3 || lin ==dflipper4)					
						  printf("%c", 178);			
							}
							printf("\n");

	}

//Sair Aleatoriamente
/*random = 0;
if(random==0)
{*/
/*srand(time(0));
random = rand();
num = (random % 2) + 1;
//Run particulas
	if(num==1)
	{*/
		posX += x;
		posY += y;
	/*}
		if(num==2)
		{
			posX -= x;
			posY -= y;
		}*/

if(_kbhit()!=0)//o _kbhit faz com q o switch só aconteça se alguem carregar em alguma tecla
{
switch(_getch())//o _getch serve para mesmo carregando nas teclas seguintes elas nao aparecerem na linha e assim nao bloquear a mesma
{
Sleep(100);
//Anda flipper Direito
case '8':
	dflipper1--;
	dflipper2--;
	dflipper3--;
	dflipper4--;
	break;

case '5':
	dflipper1++;
	dflipper2++;
	dflipper3++;
	dflipper4++;
	break;
//Anda flipper Esquerdo
case 'w':
	eflipper1--;
	eflipper2--;
	eflipper3--;
	eflipper4--;
	break;

case 's':
	eflipper1++;
	eflipper2++;
	eflipper3++;
	eflipper4++;
	break;

case 'W':
	eflipper1--;
	eflipper2--;
	eflipper3--;
	eflipper4--;
	break;

case 'S':
	eflipper1++;
	eflipper2++;
	eflipper3++;
	eflipper4++;
	break;
}
}
}while(jgdr1<5 || jgdr2<5);

/*if(jgdr1==5)
	printf("Ganhou o Jogador 1");
else
	printf("Ganhou o Jogador 2");*/
return 0;
}

o meu jg ta parecido com o do Innight pois tirei lhe algumas ideias xD

Thanks... plz ppl ajudem me rapido e q tenho de entregar isto hj as 24h =S

Cumps...[]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É impressão minha ou a raquete da esquerda não funciona? Não consegui ver o problema de que falas! Já tinha dado por ele no código do Innight, mas no teu não consigo reproduzir

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao funciona ? =S

nao sei se eu ai tinha alterado alguma coisa...

ve la se este ja da. Sff no meu ta a bombar

#include <stdio.h>
#include <stdlib.h>
#include <direct.h>
#include <string.h>
#include <ctype.h>
#include <windows.h>
#include <conio.h>
#include <time.h>

int main ()
{
int lin, col;
int posX = 29, posY = 10;
int x = 1, y = 1;

//Flipper Esqerdo
int eflipper1=9, eflipper2=10, eflipper3=11, eflipper4=12;
//Flipper Direito
    int dflipper1=9, dflipper2=10, dflipper3=11, dflipper4=12;
int bola=42;
int num, random;
//int random;
int start=0;
int jgdr1=0, jgdr2=0;

HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
COORD p={0,0};
do{
SetConsoleCursorPosition(hStdout, p);

Sleep(85);


SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),                        
  BACKGROUND_INTENSITY | BACKGROUND_GREEN |
  FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);    
  printf(" Jogador 1: %d                                   Jogador 2: %d",jgdr1, jgdr2);
  puts("");
for(lin = 1; lin <= 20; lin++)
{

	for (col = 1; col <= 60; col++)
	{
		if(lin == 1 || lin == 20)
			if(col > 1 && col < 61)
				printf("%c", 178);
			else
				printf(" ");
		else
			if(col==32)
				if(lin > 1 && lin < 60)
					printf("%c", 124);
				else
					printf("%c",0);
				else

			if(col == posX  && lin == posY)
			{
				printf("%c",bola);

					//****Batimentos****

					//Bater Nas Paredes
			/*	if(num==1)
				{*/
					if((posY == 2 || posY == 19) && (posX > 3 && posX < 57))
						y=-y;
					if((posX == 2 || posX == 60) && (posY > 2 && posY < 19))
						x=-x;
					/*if(posX == 32 && posY==2)
					{
						posY=2;
						y=-y;
						x=-x;
						posX += x;
						posY += y;
					}
					if(posX == 32 && posY==19)
					{
						y=-y;
						posX += x;
						posY += y;
					}*/
				/*}
				else
					if((posY == 2 || posY == 19) && (posX > 3 && posX < 60))
						y=+y;
					if((posX == 2 || posX == 60) && (posY > 2 && posY < 19))
						x=+x;
					if(posX == 32 && (posY>=2 || posY==19))
						x=+x;*/


					//Bater Nos Flippers
					if(posX == 58)
					{
						if(posY==dflipper1+1 || posY==dflipper2+1 || posY==dflipper3+1 || posY==dflipper4+1)
							x=-x;
					}
					if(posX == 4)
					{
						if(posY==eflipper1-1 || posY==eflipper2-1 || posY==eflipper3-1 || posY==eflipper4-1)
							x=-x;
					}
					{
						if(posX == 60) /*&& (posY>=2 && posY<=19))*///Flipper Direito
						{
							jgdr1++;
							posX=x;
							posY=y;
							posX=58;
							posY=10;
							dflipper1=9;
							dflipper2=10;
							dflipper3=11;
							dflipper4=12;
							posX += x;
							posY += y;
						}
						if(posX == 2)//Flipper Esquerdo
						{
							jgdr2++;
							posX=x;
							posY=y;
							posX=4;
							posY=10;
							eflipper1=9;
							eflipper2=10;
							eflipper3=11;
							eflipper4=12;
							posX += x;
							posY += y;
						}
					}
			}

				else
					printf(" ");

				//Desenha flippers
				if(col == 2)				
					if(lin == eflipper1 || lin == eflipper2 || lin == eflipper3 || lin == eflipper4) 
					{
						printf("%c", 178);						
						col++;
					}
					if(col==58)					
						if(lin == dflipper1 || lin == dflipper2 || lin == dflipper3 || lin ==dflipper4)					
						  printf("%c", 178);			
							}
							printf("\n");

	}

//Sair Aleatoriamente
/*random = 0;
if(random==0)
{*/
/*srand(time(0));
random = rand();
num = (random % 2) + 1;
//Run particulas
	if(num==1)
	{*/
		posX += x;
		posY += y;
	/*}
		if(num==2)
		{
			posX -= x;
			posY -= y;
		}*/

if(_kbhit()!=0)//o _kbhit faz com q o switch só aconteça se alguem carregar em alguma tecla
{
switch(_getch())//o _getch serve para mesmo carregando nas teclas seguintes elas nao aparecerem na linha e assim nao bloquear a mesma
{
Sleep(100);
//Anda flipper Direito
case '8':
	dflipper1--;
	dflipper2--;
	dflipper3--;
	dflipper4--;
	break;

case '5':
	dflipper1++;
	dflipper2++;
	dflipper3++;
	dflipper4++;
	break;
//Anda flipper Esquerdo
case 'w':
	eflipper1--;
	eflipper2--;
	eflipper3--;
	eflipper4--;
	break;

case 's':
	eflipper1++;
	eflipper2++;
	eflipper3++;
	eflipper4++;
	break;

case 'W':
	eflipper1--;
	eflipper2--;
	eflipper3--;
	eflipper4--;
	break;

case 'S':
	eflipper1++;
	eflipper2++;
	eflipper3++;
	eflipper4++;
	break;
}
}
}while(jgdr1<5 || jgdr2<5);

/*if(jgdr1==5)
	printf("Ganhou o Jogador 1");
else
	printf("Ganhou o Jogador 2");*/
return 0;
}

Cumps..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja desocbri o erro nao sei e como o resolver

o problema e q o posY e o posX nao abragem a linha do meio. lg ai nao batem !

[],

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

São pormenores algo subtis, como desenhar um espaço a mais ou um else que não devia existir.

Alterei isto a partir da linha 44:

	if(lin == 1 || lin == 20) {	//abrir chavetas (1)
	if(col > 1 && col < 61) {	//abrir chavetas (2)
//printf("%c", 178); porque nao usar o putchar?
		putchar(178);
		continue;		//acrescentei o continue
	}				//fechar chavetas (2)
//else		//comentei; o espaco e' escrito la' em baixo
//printf(" ");	//comentei
} else				//fechar chavetas (1)
	if(col==32)
		if(lin > 1 && lin < 60)
//printf("%c", 124);	putchar novamente
			putchar(124);
//else
//printf("%c",0);	//este printf nao faz absolutamente nada
//else			//este else estava a mais, senao a bola nao e' afectada pelas paredes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora