Ir ao conteúdo

[URGENTE] Jogo da travessia : cachorro, raposa e galinha


Visitante

Posts recomendados

Postado

PELO AMOR DE JOBS!!! 
Onde é o meu erro???  Alguém pode me auxiliar? Estou prestes a desistir da minha nota.

 

Agradecendo desde já a alguma boa alma

#include <iostream> using namespace std; int TravessiaRio (bool galinha, bool cachorro, bool raposa) //cria a função travessia do rio com as variáveis bool (verdadeiro ou falso){	if(cachorro == 1 && galinha == 0 && raposa == 1 ||		cachorro == 0 && galinha == 1 && raposa == 1 ||		cachorro == 0 && galinha == 1 && raposa == 0 ||		cachorro == 1 && galinha == 0 && raposa == 0)	{		return 0;	}	else if(cachorro == 0 && galinha == 0 && raposa == 0)	{		return 1;	}	// código da função	return 2; // estado jogando}void movimentacao(bool & galinhaE, bool & cachorroE, bool & raposaE, bool & barco, bool & galinhaD, bool & cachorroD, bool & raposaD, int n);void desenho(bool galinhaE, bool cachorroE, bool raposaE, bool barco);int main(){	bool galinhaE=1, cachorroE=1, raposaE=1; // Atribui valores às variáveis para o processamento	bool galinhaD=0, cachorroD=0, raposaD=0; // Atribui valores às variáveis para o processamento	bool barco = 0;	int estado = 2; // Cria a variável estado = 2, que significa jogando	int n; // Cria a variável número digitado conforme animal a ser: "Levar" ou "Trazer" para outra margem	desenho(galinhaE,cachorroE,raposaE,barco);	do // saídas na tela do console	{		// Processamento das opções de impressão na tela 		cout << "JOGO DA TRAVESSIA DO RIO: PARA GANHAR O JOGO VOCE DEVE ATRAVESSAR OS 3 ANIMAIS PARA A OUTRA MARGEM DO RIO, SEM UM ATACAR O OUTRO!" << endl << endl;		cout << "Digite 1 - Galinha" << endl;		cout << "Digite 2 - Cachorro" << endl;		cout << "Digite 3 - Raposa" << endl << endl;		cout << "QUAL ANIMAL VOCE QUER LEVAR: A GALINHA, O CACHORRO OU A RAPOSA ?" << endl; // Impressão da pergunta na tela do console: Quem vai atravessar primeiro?		cin >> n; // Lê do teclado a opção escolhida		// chamar função de movimentação		movimentacao(galinhaE, cachorroE, raposaE, barco, galinhaD, cachorroD, raposaD, n);		desenho(galinhaE,cachorroE,raposaE,barco);		if(n != 0)		{			cout << "Deseja trazer algum animal de volta? (s/n)" << endl;			char opcao;			cin >> opcao;			if(opcao == 's')			{				movimentacao(galinhaE, cachorroE, raposaE, barco, galinhaD, cachorroD, raposaD, n);				desenho(galinhaE,cachorroE,raposaE,barco);			}		}		cout << "-----------------------------" << endl; // Entrada		// Jogando		estado = TravessiaRio(galinhaE,cachorroE,raposaE);	}	while( estado == 2); // Laço de repetição: Equanto o estado for jogando = 2 	if(estado == 1) 	{		cout << "VOCE GANHOU!" << endl;	// Ganhou	}	else	{		cout << "VOCE PERDEU!" << endl;// Perdeu	}	system("pause"); // Pausa o programa na Tela.	return 0; // Retornando 0 para o int main.}void movimentacao(bool &galinhaE, bool &cachorroE, bool &raposaE, bool &barco, bool &galinhaD, bool &cachorroD, bool &raposaD, int n){		// Movimento do barco		if(barco == 1)		{			barco = 0;		}		else		{			barco = 1;		}		desenho(galinhaE,cachorroE,raposaE,barco);		if(n == 1) // Levando a galinha		{			// Se barco e galinha estiverem na mesma margem			if(galinhaE == 1 && barco == 1 || galinhaD == 1 && barco == 0)			{				cout << "Levou a galinha" << endl;				if(galinhaE == 1)				{					galinhaE = 0; // Galinha para a margem esquerda					galinhaD = 1; // Galinha para a margem direita				}				else				{					galinhaE = 1; // Galinha para a margem direita					galinhaD = 0; // Galinha para a margem esquerda				}			}			else			{				cout << "A galinha esta na outra margem" << endl;			}		}		else if(n == 2) // Levando o cachorro		{			// Se barco e cachorro estiverem na mesma margem			if(cachorroE == 1 && barco == 1 || cachorroD == 1 && barco == 0)			{				cout << "Levou o cachorro" << endl;				if(cachorroE == 1)				{					cachorroE = 0; // Cachorro para a margem esquerda					cachorroD = 1; // Cachorro para a margem direita				}				else				{					cachorroE = 1; // Cachorro para a margem direita					cachorroD = 0; // Cachorro para a margem esquerda				}			}			else			{				cout << "O cachorro esta na outra margem" << endl;			}		}		else if (n == 3) // Levando a raposa		{			// Se barco e raposa estiverem na mesma margem			if(cachorroE == 1 && barco == 1 || cachorroD == 1 && barco == 0)			{				if(raposaE == 1)				{					cout << "Levou a raposa" << endl;					raposaE = 0; // Raposa para a margem esquerda					raposaD = 1; // Raposa para a margem direita				}				else				{					raposaE = 1; // Raposa para a margem direita					raposaD = 0; // Raposa para a margem esquerda				}			}			else			{				cout << "A raposa esta na outra margem" << endl;			}		}}void desenho(bool galinhaE, bool cachorroE, bool raposaE, bool barco){		// Movimento do barco		if(barco == 1)		{			cout << "                             <|" << endl;			cout << "                 ___________\\_|_/" << endl;		}		else		{			cout << "                 <|" << endl;			cout << "                \\_|_/___________" << endl;		}		// Impressão na tela do console de todas as situações possíveis de travessia		cout << "MARGEM ESQUERDA	|		| MARGEM DIREITA" << endl << endl;		if ( galinhaE == 1)		{ 			cout << "GALINHA		|		|	" << endl;		}		else		{			cout << "		|		| GALINHA " << endl;		}		if (cachorroE == 1)		{			cout << "CACHORRO	|		|	" << endl;		}		else 		{			cout << "		|		| CACHORRO " << endl;		}		if (raposaE == 1)		{			cout << "RAPOSA		|		|	" << endl << endl;		}		else 		{			cout << "		|		| RAPOSA " << endl << endl;		}} 
Postado

Aqui compilou normal.

Qual o seu erro?

 

Pergunta besta: eu lembro desse jogo como raposa, ovelha, alface... nesse caso aí quem come a galinha, o cachorro ou a raposa? a raposa come o cachorro?

 

Edit:

Achei um erro:

else if (n == 3) // Levando a raposa        {            // Se barco e raposa estiverem na mesma margem            if(cachorroE == 1 && barco == 1 || cachorroD == 1 && barco == 0)

 

Você usou a variável do cachorro na parte da raposa.

Postado

Sim, originalmente era raposa, alface e ovelha. 

 

Olha, no jogo é a raposa que come a galinha mas né.... teoricamente, ia dar briga entre os três mas enfim...whatever.

 

Vou ver aqui. Ele compila mas nunca se ganha. Testarei agora.
Obrigado por achar o erro, valeu mesmo.

 

EDIT:

Não consigo, já arrumei o erro e mesmo assim não consigo. 

Na hora de levar a galinha de volta eu perco. 

Postado

Antes de ajudar eu preciso entender a logica do jogo.

Na versão da ovelha/lobo/alface, o jogador perdia quando a ovelha comia a alface, ou quando o lobo comia a ovelha.

Nessa tua versão o lobo equivale a raposa, certo? E a ovelha é a galinha. Então o jogador perde quando a raposa come a galinha e quando a galinha come o cachorro?

 

A lógica na função travessaRio diz que a raposa come tanto a galinha quanto o cachorro, o que deixa o jogo sem solução eu acho.

 

Eu lembro que a lógica desse jogo era a seguinte:

lobo = 3

ovelha = 2

alface = 1

 

Se em qualquer lado do rio a soma dos bichos fosse ímpar, o jogador perdia.

Se fosse PAR, e o lado esquerdo estivesse vazio, o jogador ganhava.

 

Mas se a raposa come tanto a galinha quanto o cachorro, então essa lógica fica quebrada... pois o jogador perde tanto com 5 (raposa + galinha) quanto com 4 (raposa + cachorro).

Postado

Colocarei as especificações de como me foi dado, aí tu entende melhor:

 

 

Quando o barqueiro está junto com os seus três passageiros, raposa, cachorro e galinha, eles ficam comportados. O problema surge quando o barqueiro não está presente. Raposa e galinha não podem ficar juntas e sozinhas porque a raposa irá atacar a galinha. Do mesmo modo, o cachorro e a raposa não podem ficar juntos e sozinhos porque o cachorro irá atacar a raposa. As outras combinações de animais não apresentam o problema de um atacar o outro.

Sua tarefa é desenvolver um algoritmo para o jogo da Travessia do Rio.

O algoritmo deve solicitar ao jogador qual animal ele deseja transportar de uma margem para outra e qual o sentido (levar ou trazer) da viagem. A cada jogada o algoritmo deve verificar em um conjunto de regras a condição dos animais que ficaram em uma das margens. O jogo termina quando todos os animais foram transportados para a outra margem ou quando um dos animais atacar o outro.

O desenvolvimento do jogo deve observar os seguintes requisitos especificados abaixo.

1. O jogo deverá utilizar uma representação gráfica textual (caracteres) das margens do rio, do barco e dos animais;

2. Em cada margem deverão ser representados os animais que estão na margem;

3. O jogo termina quando todos os animais foram transportados para a outra margem ou quando um dos animais atacar o outro.

 

Desculpa por não ter me expressado melhor antes.

 

thx

Postado

#include <iostream>using namespace std;int margem[3] = { 1, 1, 1 }; // galinha, raposa, cachorroint barco = 0;int travessia() {    int soma = margem[0] + (margem[1] * 2) + (margem[2] * 3);    if (soma == 0) return 1;    if (soma == 1 && barco == 1) return 2;    if (soma == 2) return 2;    if (soma == 3 && barco == 1) return 2;    if (soma == 4) return 2;    if (soma == 5 && barco == 0) return 2;    if (soma == 6) return 2;    return 0;}void desenho() {    if(barco == 1)        cout << "\t\t__________<_>" << endl;    else        cout << "\t\t<_>__________" << endl;    if ( margem[0] == 1)        cout << "GALINHA  \t|           |" << endl;    else        cout << "\t\t|           | GALINHA " << endl;    if (margem[2] == 1)        cout << "CACHORRO\t|           |" << endl;    else        cout << "\t\t|           | CACHORRO " << endl;    if (margem[1] == 1)        cout << "RAPOSA   \t|           |" << endl << endl;    else        cout << "\t\t|           | RAPOSA " << endl << endl;}void movimentacao(int n) {    if (n == 0) {        barco = !barco;    }       if (n == 1) { // Levando a galinha        if (margem[0] == barco) {            cout << "A galinha esta na outra margem" << endl;        }        else {            margem[0] = !margem[0];            barco = !barco;        }    }    if (n == 2) { // Levando a raposa        if (margem[1] == barco) {            cout << "A raposa esta na outra margem" << endl;        }        else {            margem[1] = !margem[1];            barco = !barco;        }    }    if (n == 3) { // Levando o cachorro        if (margem[2] == barco) {            cout << "O cachorro esta na outra margem" << endl;        }        else {            margem[2] = !margem[2];            barco = !barco;        }    }    desenho();}int main() {    int estado = 0;    int n;    do {        // Processamento das opções de impressão na tela        cout << "JOGO DA TRAVESSIA DO RIO: PARA GANHAR O JOGO voce DEVE ATRAVESSAR OS 3 ANIMAIS PARA A OUTRA MARGEM DO RIO, SEM UM ATACAR O OUTRO!" << endl << endl;        cout << "Digite 1 - Galinha" << endl;        cout << "Digite 2 - raposa" << endl;        cout << "Digite 3 - cachorro" << endl;        cout << "Digite 0 - nada" << endl << endl;        cout << "QUAL ANIMAL voce QUER LEVAR: A GALINHA, O CACHORRO OU A RAPOSA ?" << endl; // Impressão da pergunta na tela do console: Quem vai atravessar primeiro?        cin >> n; // Lê do teclado a opção escolhida        // chamar função de movimentação        movimentacao(n);        estado = travessia();    } while( estado == 2);    if(estado == 1)        cout << "voce GANHOU!" << endl;    // Ganhou    else        cout << "voce PERDEU!" << endl;    // Perdeu    return 0;}
 

Simplifiquei o teu código.

Vê se tá rodando certo aí... não testei muito bem.

Acho que o erro tava na parte de trazer um bicho de volta no barco. Pra simplificar, a única coisa que eu fiz foi adicionar a opção '0', pra não movimentar nada.

Postado

Obrigado!

 

Teu codigo tá muito mais simples, infinitamente melhor. 
Mas o erro ainda persiste. 

Acho que está na galinha, porque cada vez que digito a opção 1 - galinha o jogo encerra.

 

Vou continuar tentando e muito obrigado por tentar fazer o jogo a tarde toda haha

 

valeu!

Postado
ESTA ATUALIZADO MAS POUCO MELHOROU 

 

TROQUEI ANIMAIS EM CODIGO:

\\if(raposaE == 1 && barco == 1 || raposaD == 1 && barco == 0)

\\if(galinhaE == 1 && barco == 1 || galinhaD == 1 && barco == 0)

\\if(cachorroE == 1 && barco == 1 || cachorroD == 1 && barco == 0)

 

 

 

#include <iostream> 

using namespace std; 

 

int TravessiaRio (bool galinha, bool cachorro, bool raposa) //cria a função travessia do rio com as variáveis bool (verdadeiro ou falso)

 

{

 

if(cachorro == 1 && galinha == 0 && raposa == 1 ||

cachorro == 0 && galinha == 1 && raposa == 1 ||

 

cachorro == 0 && galinha == 1 && raposa == 0 ||

cachorro == 1 && galinha == 0 && raposa == 0)

{

return 0;

}

else if(cachorro == 0 && galinha == 0 && raposa == 0)

{

return 1;

}

// código da função

return 2; // estado jogando

}

 

void movimentacao(bool & galinhaE, bool & cachorroE, bool & raposaE, bool & barco, bool & galinhaD, bool & cachorroD, bool & raposaD, int n);

void desenho(bool galinhaE, bool cachorroE, bool raposaE, bool barco);

 

int main()

{

 

bool galinhaE=1, cachorroE=1, raposaE=1; // Atribui valores às variáveis para o processamento

bool galinhaD=0, cachorroD=0, raposaD=0; // Atribui valores às variáveis para o processamento

bool barco = 0;

 

int estado = 2; // Cria a variável estado = 2, que significa jogando

int n; // Cria a variável número digitado conforme animal a ser: "Levar" ou "Trazer" para outra margem

 

desenho(galinhaE,cachorroE,raposaE,barco);

 

do // saídas na tela do console

{

// Processamento das opções de impressão na tela 

cout << "JOGO DA TRAVESSIA DO RIO: PARA GANHAR O JOGO voce DEVE ATRAVESSAR OS 3 ANIMAIS PARA A OUTRA MARGEM DO RIO, SEM UM ATACAR O OUTRO!" << endl << endl;

cout << "Digite 1 - Galinha" << endl;

cout << "Digite 2 - Cachorro" << endl;

cout << "Digite 3 - Raposa" << endl << endl;

 

 

cout << "QUAL ANIMAL voce QUER LEVAR: A GALINHA, O CACHORRO OU A RAPOSA ?" << endl; // Impressão da pergunta na tela do console: Quem vai atravessar primeiro?

cin >> n; // Lê do teclado a opção escolhida

 

// chamar função de movimentação

movimentacao(galinhaE, cachorroE, raposaE, barco, galinhaD, cachorroD, raposaD, n);

desenho(galinhaE,cachorroE,raposaE,barco);

 

if(n != 0)

{

cout << "Deseja trazer algum animal de volta? (s/n)" << endl;

char opcao;

cin >> opcao;

if(opcao == 's')

{

movimentacao(galinhaE, cachorroE, raposaE, barco, galinhaD, cachorroD, raposaD, n);

desenho(galinhaE,cachorroE,raposaE,barco);

}

}

 

cout << "-----------------------------" << endl; // Entrada

 

// Jogando

estado = TravessiaRio(galinhaE,cachorroE,raposaE);

 

 

}

while( estado == 2); // Laço de repetição: Equanto o estado for jogando = 2 

 

 

if(estado == 1) 

{

cout << "voce GANHOU!" << endl; // Ganhou

}

else

{

cout << "voce PERDEU!" << endl;// Perdeu

}

 

system("pause"); // Pausa o programa na Tela.

return 0; // Retornando 0 para o int main.

}

 

 

void movimentacao(bool &galinhaE, bool &cachorroE, bool &raposaE, bool &barco, bool &galinhaD, bool &cachorroD, bool &raposaD, int n)

{

// Movimento do barco

if(barco == 1)

{

barco = 0;

}

else

{

barco = 1;

}

 

desenho(galinhaE,cachorroE,raposaE,barco);

 

if(n == 1) // Levando a galinha

{

// Se barco e galinha estiverem na mesma margem

if(raposaE == 1 && barco == 1 || raposaD == 1 && barco == 0)

{

cout << "Levou a galinha" << endl;

if(galinhaE == 1)

{

galinhaE = 0; // Galinha para a margem esquerda

galinhaD = 1; // Galinha para a margem direita

}

else

{

galinhaE = 1; // Galinha para a margem direita

galinhaD = 0; // Galinha para a margem esquerda

}

}

else

{

cout << "A galinha esta na outra margem" << endl;

}

}

else if(n == 2) // Levando o cachorro

{

// Se barco e cachorro estiverem na mesma margem

if(galinhaE == 1 && barco == 1 || galinhaD == 1 && barco == 0)

{

cout << "Levou o cachorro" << endl;

if(cachorroE == 1)

{

cachorroE = 0; // Cachorro para a margem esquerda

cachorroD = 1; // Cachorro para a margem direita

}

else

{

cachorroE = 1; // Cachorro para a margem direita

cachorroD = 0; // Cachorro para a margem esquerda

}

}

else

{

cout << "O cachorro esta na outra margem" << endl;

}

}

else if (n == 3) // Levando a raposa

{

// Se barco e raposa estiverem na mesma margem

if(cachorroE == 1 && barco == 1 || cachorroD == 1 && barco == 0)

{

if(raposaE == 1)

{

cout << "Levou a raposa" << endl;

raposaE = 0; // Raposa para a margem esquerda

raposaD = 1; // Raposa para a margem direita

}

else

{

raposaE = 1; // Raposa para a margem direita

raposaD = 0; // Raposa para a margem esquerda

}

}

else

{

cout << "A raposa esta na outra margem" << endl;

}

 

}

 

}

 

void desenho(bool galinhaE, bool cachorroE, bool raposaE, bool barco)

{

// Movimento do barco

if(barco == 1)

{

cout << "                             <|" << endl;

cout << "                 ___________\\_|_/" << endl;

}

else

{

cout << "                 <|" << endl;

cout << "                \\_|_/___________" << endl;

}

 

// Impressão na tela do console de todas as situações possíveis de travessia

cout << "MARGEM ESQUERDA | | MARGEM DIREITA" << endl << endl;

 

if ( galinhaE == 1)


cout << "GALINHA | | " << endl;

}

else

{

cout << " | | GALINHA " << endl;

}

 

if (cachorroE == 1)

{

cout << "CACHORRO | | " << endl;

 

}

else 

{

cout << " | | CACHORRO " << endl;

}

 

if (raposaE == 1)

{

cout << "RAPOSA | | " << endl << endl;

}

else 

{

cout << " | | RAPOSA " << endl << endl;

}

}
Postado

Acho que agora ta certo:

#include <iostream>using namespace std;int margem[3] = { 1, 1, 1 }; // galinha, raposa, cachorroint barco = 0;int travessia() {    int soma = margem[0] + (margem[1] * 2) + (margem[2] * 3);    if (soma == 0) return 1;    if (soma == 1 && barco == 1) return 2;    if (soma == 2) return 2;    if (soma == 3 && barco == 0 && margem[0] == 1) return 2; // erro tava aqui    if (soma == 3 && barco == 1 && margem[0] == 0) return 2; //    if (soma == 4) return 2;    if (soma == 5 && barco == 0) return 2;    if (soma == 6) return 2;    return 0;}void desenho() {    if(barco == 1)        cout << "\t\t__________<_>" << endl;    else        cout << "\t\t<_>__________" << endl;    if ( margem[0] == 1)        cout << "GALINHA  \t|           |" << endl;    else        cout << "\t\t|           | GALINHA " << endl;    if (margem[2] == 1)        cout << "CACHORRO\t|           |" << endl;    else        cout << "\t\t|           | CACHORRO " << endl;    if (margem[1] == 1)        cout << "RAPOSA   \t|           |" << endl << endl;    else        cout << "\t\t|           | RAPOSA " << endl << endl;}void movimentacao(int n) {    if (n == 0) {        barco = !barco;    }       if (n == 1) { // Levando a galinha        if (margem[0] == barco) {            cout << "A galinha esta na outra margem" << endl;        }        else {            margem[0] = !margem[0];            barco = !barco;        }    }    if (n == 2) { // Levando a raposa        if (margem[1] == barco) {            cout << "A raposa esta na outra margem" << endl;        }        else {            margem[1] = !margem[1];            barco = !barco;        }    }    if (n == 3) { // Levando o cachorro        if (margem[2] == barco) {            cout << "O cachorro esta na outra margem" << endl;        }        else {            margem[2] = !margem[2];            barco = !barco;        }    }    desenho();}int main() {    int estado = 0;    int n;    desenho();    do {        // Processamento das opções de impressão na tela        cout << "JOGO DA TRAVESSIA DO RIO: PARA GANHAR O JOGO voce DEVE ATRAVESSAR OS 3 ANIMAIS PARA A OUTRA MARGEM DO RIO, SEM UM ATACAR O OUTRO!" << endl << endl;        cout << "Digite 1 - Galinha" << endl;        cout << "Digite 2 - raposa" << endl;        cout << "Digite 3 - cachorro" << endl;        cout << "Digite 0 - nada" << endl << endl;        cout << "QUAL ANIMAL voce QUER LEVAR: A GALINHA, O CACHORRO OU A RAPOSA ?" << endl; // Impressão da pergunta na tela do console: Quem vai atravessar primeiro?        cin >> n; // Lê do teclado a opção escolhida        // chamar função de movimentação        movimentacao(n);        estado = travessia();    } while( estado == 2);    if(estado == 1)        cout << "voce GANHOU!" << endl;    // Ganhou    else        cout << "voce PERDEU!" << endl;    // Perdeu    return 0;}
O erro tava na parte da travessia. Esqueci de considerar o caso do cachorro ficar sozinho numa margem, com o barco na outra margem.

Enfim, testei o codigo acima e funcionou.

raposa -->

<-- nada

galinha -->

<-- raposa

cachorro -->

<-- nada

raposa -->

Postado

Lendo seu trabalho, particularmente falando, ficou difícil interpretar seu código, porém

se você tem conhecimento em vetores, eu pensei agora nesta solução para

verificar as margens:

//Software of example - simple_code.c#include <stdio.h>#define BOOLEANO _BoolBOOLEANO MargemChck( char * );//Here this prime functionint main( void ){   char margem_esq[4] = {1,1,1,0};   char margem_dir[4] = {0,0,0,1};   //Defina o índice do vetor como sendo slots   //para os personagens, coloque o predadores em ordem crescente   //Se os 2 predadores estiverem juntos sem o barqueiro,   //então perdeu. Obs que o último slot no vetor é do barqueiro.   if( MargemChck( margem_esq ) && !margem_esq[3] )      printf( "Perdeu !!!\n" );   return ( 0 );}BOOLEANO MargemChck( char *margem ){   int check, x;   for( x = 0; x < 3; x++ )   {      check = margem[ x ];      if( check == margem[ x + 1] )         return 1;   }   return 0;}
Postado

VALEUZÃO GALERA!!!!!! Acho que passei! Consegui entender mais com vocês!!!

Don't Panic cara, obrigado!!! Dps eu falo contigo direitinho.

 

Obrigado a todos que disponibilizaram seu tempo pra me ajudar!!!

 

Abraços,

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!