Programação Orientada à Procedimentos II Programação Orientada à Procedimentos I Processamento Paralelo Lógica de Programação Introdução à Computação Informática Básica

 

 

Informática Básica
Introdução à Computação
Lógica de Programação
Programação Orientada à Procedimentos I
Programação Orientada à Procedimentos II

Processamento Paralelo


Uma Possível Solução ...




Elabore um programa em C, que simule um carrinho de corrida andando numa pista em forma de caracol. Quando o carrinho completar o trajeto,pergunte ao usuário se o mesmo deseja executar o programa novamente. Caso ele não o queira, interrompa o programa. Solte sua criatividade e abuse das cores e dos sons!



#include "conio.h" 
#include "stdio.h" 
#include "dos.h"
void main()
{
	int x1, y1, come1, fim1;
	int x2, y2, come2, fim2;
	int x3, y3, come3, fim3;
	int x4, y4, come4, fim4;
	int i, cont, menu, coluna, linha, tem, cor;
	char op, perg;
	do
	{
	clrscr();
	textattr(15);
	coluna=22;
	linha=14;
		// menu
		for(menu=21; menu<=59; menu++)
		{
			gotoxy(menu, 5); cprintf("Ä¿");
			gotoxy(menu,20); cprintf("ÄÙ");
		}
		gotoxy(20,5); cprintf("Ú"); gotoxy(20,20); cprintf("À");
		for(menu=6; menu<=19; menu++)
		{
			gotoxy(20,menu); cprintf("³");
			gotoxy(60,menu); cprintf("³");
		}

		// escolha do veiculo
		do
		{
			gotoxy(25,6); cprintf("ÜÜÛÛÛÛÜÜ");
			gotoxy(25,7); cprintf("ßßoßßßoß");
			gotoxy(23,8); cprintf("1-) Carrinho");

			gotoxy(47,6); cprintf("ÛÛÛÛÛÜÛÜ");
			gotoxy(47,7); cprintf("ßooßßßoß");
			gotoxy(45,8); cprintf("2-) CaminhÆo");

			gotoxy(23,10); cprintf("Escolha    \b\b\b");
			scanf("%c",&op);
		}while((op!='1') && (op!='2'));

		// tempo do carrinho
		do
		{
			gotoxy(23,12); cprintf("Tempo:    \b\b\b"); 
			scanf("%d",&tem);
		}while(tem>100);

		// escolha da cor
		do
		{
			for(cont=1; cont<=15; cont++)
			{
				textattr(cont);
				if(cont<=9)
				{
					gotoxy(coluna,linha); 
					cprintf(" %d-) ²",cont);
					coluna=coluna+7;
				}
				if(cont>=10)
				{
					gotoxy(coluna,linha); 
					cprintf("%d-) ²",cont);
					coluna=coluna+7;
				}

				if(coluna>53)
				{
					linha++;
					coluna=22;
				}
			}

			gotoxy(23,18); cprintf("Cor:    \b\b\b"); 
			scanf("%d",&cor);
		}while(cor>15);

		// limpa a tela
		clrscr();

		//valor das vaiareis da corrinho
		y1= 2; come1= 1; fim1=70;
		x2=71; come2= 3; fim2=23;
		y3=23; come3=71; fim3= 2;
		x4= 2; come4=22; fim4= 5;
		textattr(cor);

		//pista
		for(i=1; i<=79; i++)
		{
		  gotoxy(i, 1); cprintf("Ä¿");
		  gotoxy(i,25); cprintf("Ä");
		  if(i<70)
		  {
		    gotoxy(i,4); cprintf("Ä¿");
		    if(i>10)
		    {
		      gotoxy(i,22); cprintf("ÄÙ");
		      if(i<61)
		      {
			gotoxy(i,7); cprintf("Ä¿");
			if(i>19)
			{
			  gotoxy(i,19); cprintf("ÄÙ");
			  if(i<52)
			  {
			    gotoxy(i,10); cprintf("Ä¿");
			    if(i>28)
			    {
			      gotoxy(i,16); cprintf("ÄÙ");
			      if(i<43)
			      {
				gotoxy(i,13); cprintf("Ä¿");
		}}}}}}}}
		for(i=2; i<=24; i++)
		{
		  gotoxy(80,i); cprintf("³");
		  if(i>4)
		  {
		    gotoxy(1,i); cprintf("³");
		    if(i<22)
		    {
		      gotoxy(70,i); cprintf("³");
		      if(i>7)
		      {
			gotoxy(10,i); cprintf("³");
			if(i<19)
			{
			  gotoxy(61,i); cprintf("³");
			  if(i>10)
			  {
			    gotoxy(19,i); cprintf("³");
			    if(i<16)
			    {
			      gotoxy(52,i); cprintf("³");
			      if(igt;13)
			      {
				gotoxy(28,i); cprintf("³");
		}}}}}}}}
		gotoxy(1 ,4); cprintf("Ú"); 
		gotoxy( 1,25); cprintf("À");
		gotoxy(10,7); cprintf("Ú"); 
		gotoxy(10,22); cprintf("À");
		gotoxy(19,10); cprintf("Ú"); 
		gotoxy(19,19); cprintf("À");
		gotoxy(28,13); cprintf("Ú"); 
		gotoxy(28,16); cprintf("À");
		gotoxy(43,16); cprintf("Á");

		// escolha do veiculo
		switch(op)
		{
			case '1':
			// largada
			gotoxy(1,2); cprintf("ÜÜÛÛÛÛÜÜ");
			gotoxy(1,3); cprintf("ßßoßßßoß"); textattr(4);
			gotoxy(11,2); cprintf("3"); 
			gotoxy(80,25); sound(100); delay(1000); 
			nosound();
			gotoxy(13,2); cprintf("2"); 
			gotoxy(80,25); sound(200); delay(1000); 
			nosound();
			gotoxy(15,2); cprintf("1"); 
			gotoxy(80,25); sound(300); delay(1500); 
			nosound();
			gotoxy(11,2); cprintf("Largada!!"); 
			gotoxy(80,25); sound(1000); 
			delay(200); nosound();
			// carrinho
			for(cont=1; cont<=4; cont++)
			{
			  for(x1=come1; x1<=fim1; x1++)
			  {
			    delay(tem);
			    gotoxy(x1,y1); textattr(0); cprintf("Û");
			    textattr(cor); cprintf("ÜÜÛÛÛÛÜÜ");
			    gotoxy(x1,y1+1); textattr(0); cprintf("Û");
			    textattr(cor); cprintf("ßßoßßßoß"); 
					gotoxy(80,25);
			  }
			  for(y2=come2; y2<=fim2; y2++)
			  {
			    delay(tem); textattr(0);
			    gotoxy(x2,y2-1); cprintf("ÛÛÛÛÛÛÛÛ"); 
					textattr(cor);
			    gotoxy(x2,y2); cprintf("ÜÜÛÛÛÛÜÜ");
			    gotoxy(x2,y2+1); cprintf("ßoßßßoßß"); 
					gotoxy(80,25);
			  }
			  for(x3=come3; x3>=fim3; x3--)
			  {
			    delay(tem);
			    gotoxy(x3,y3); cprintf("ÜÜÛÛÛÛÜÜ");
			    textattr(0); cprintf("Û"); textattr(cor);
			    gotoxy(x3,y3+1); cprintf("ßoßßßoßß");
			    textattr(0); cprintf("Û");
			    gotoxy(60,17); cprintf("Û"); gotoxy(60,18);
			    cprintf("Û"); textattr(cor); gotoxy(80,25);
			  }
			  for(y4=come4; y4>=fim4; y4--)
			  {
			    delay(tem);
			    gotoxy(x4,y4); cprintf("ÜÜÛÛÛÛÜÜ");
			    gotoxy(x4,y4+1); cprintf("ßßoßßßoß");
			    textattr(0); gotoxy(x4,y4+2); 
					cprintf("ÛÛÛÛÛÛÛÛ");
			    textattr(cor); gotoxy(80,25);
			  }
			  come1=come1+1; y1=y1+3; fim1=fim1-9;
			  come2=come2+3; x2=x2-9; fim2=fim2-3;
			  come3=come3-10; y3=y3-3; fim3=fim3+9;
			  come4=come4-3; x4=x4+9; fim4=fim4+3;
			  if(cont>=2)
			  {
			    come1=come1+8;
			  }
			  if(cont>=3)
			  {
			    come3=come3+2;
			    fim3=fim3+3;
			  }

			}
				break;

			case '2':
			// largada
			gotoxy(1,2); cprintf("ÛÛÛÛÛÜÛÜ");
			gotoxy(1,3); cprintf("ßooßßßoß"); textattr(4);
			gotoxy(11,2); cprintf("3"); gotoxy(80,25); 
			sound(100); delay(1000); 
			nosound();
			gotoxy(13,2); cprintf("2"); gotoxy(80,25); 
			sound(200); delay(1000); 
			nosound();
			gotoxy(15,2); cprintf("1"); gotoxy(80,25); 
			sound(300); delay(1500); 
			nosound();
			gotoxy(11,2); cprintf("Largada!!"); 
			gotoxy(80,25); sound(1000); 
			delay(200); nosound();
			// carrinho
			for(cont=1; cont<=4; cont++)
			{
			  for(x1=come1; x1<=fim1; x1++)
			  {
			    delay(tem);
			    gotoxy(x1,y1); textattr(0); cprintf("Û");
			    textattr(cor); cprintf("ÛÛÛÛÛÜÛÜ");
			    gotoxy(x1,y1+1); textattr(0); cprintf("Û");
			    textattr(cor); cprintf("ßooßßßoß"); 
					gotoxy(80,25);
			  }
			  for(y2=come2; y2<=fim2; y2++)
			  {
			    delay(tem); textattr(0);
			    gotoxy(x2,y2-1); cprintf("ÛÛÛÛÛÛÛÛ"); 
					textattr(cor);

			    gotoxy(x2,y2);   cprintf("ÜÛÜÛÛÛÛÛ");
			    gotoxy(x2,y2+1); cprintf("ßoßßßooß"); 
					gotoxy(80,25);
			  }
			  for(x3=come3; x3>=fim3; x3--)
			  {
			    delay(tem);
			    gotoxy(x3,y3); cprintf("ÜÛÜÛÛÛÛÛ");
			    textattr(0); cprintf("Û"); textattr(cor);
			    gotoxy(x3,y3+1); cprintf("ßoßßßooß");
			    textattr(0); cprintf("Û");
			    gotoxy(60,17); cprintf("Û"); gotoxy(60,18);
			    cprintf("Û"); textattr(cor); gotoxy(80,25);
			  }
			  for(y4=come4; y4>=fim4; y4--)
			  {
			    delay(tem);
			    gotoxy(x4,y4); cprintf("ÛÛÛÛÛÜÛÜ");
			    gotoxy(x4,y4+1); cprintf("ßooßßßoß");
			    textattr(0); gotoxy(x4,y4+2); 
					cprintf("ÛÛÛÛÛÛÛÛ");
			    textattr(cor); gotoxy(80,25);
			  }
			  come1=come1+1; y1=y1+3; fim1=fim1-9;
			  come2=come2+3; x2=x2-9; fim2=fim2-3;
			  come3=come3-10; y3=y3-3; fim3=fim3+9;
			  come4=come4-3; x4=x4+9; fim4=fim4+3;
			  if(cont>=2)
			  {
			    come1=come1+8;
			  }
			  if(cont>=3)
			  {
			    come3=come3+2;
			    fim3=fim3+3;
			  }
			}
				break;


		}
	textattr(cor); delay(500);
	gotoxy(43,14); cprintf("³");
	delay(500);
	gotoxy(43,15); cprintf("³");
	textattr(15);
	gotoxy(30,24); cprintf("Denovo? (s) sim (n) nÆo "); 
	scanf("%s",&perg);
	}while((perg!='N') && (perg!='n'));
}