Exemple #1
0
/* The main function body of main screen which displays the main screen
creating the opening screen display */
mainscreen()
{
	int maxx, maxy, in, area;

	// get maximum x, y coordinates of the screen
	maxx = getmaxx();
	maxy = getmaxy();

	// setbkcolor sets the current background color using the palette
	setbkcolor(RED);

	// Draws a rectangle (graphics mode)
	rectangle(0, 0, maxx, maxy);

	// sets the line style and text justification in screen
	changetextstyle(1,0,0);

	// displaying the output text on main screen
	outtextxy(220, 20, "WELCOME");
	outtextxy(240,60,"	  TO ");
	outtextxy(220,100," BRICKS");
	changetextstyle(7, HORIZ_DIR, 3);
	bell(3);
	outtextxy(110, 150, "Press any key to continue...");

	// Flushes the standard input device
	fflush(stdin);
	getch();
	closegraph();

}
Exemple #2
0
void InitialScreen ( void )
{
   CriaJanelaGrafica(MENUPRINCIPAL,MPRINC,0, "PRINCIPAL");
   CriaJanelaGrafica(MENUSECUNDARIO,MSECUND,0,"RESULTADOS");
           setcolor(COR_MODURA);
	setviewport ( 10 , 10 , 709 , 337 , 1 );
	Moldura ();
	setviewport ( 30 , 30 , 689 , 317 , 1 );
	Moldura ();
	setviewport ( 0 , 0 , 719 , 347 , 1 );
         setcolor(COR_TTULO);
	changetextstyle ( TRIPLEX_FONT , HORIZ_DIR , 8 );
	settextjustify ( CENTER_TEXT , TOP_TEXT );
	outtextxy ( 360 , 30 , "Pulmosoft - PC" );
	changetextstyle ( TRIPLEX_FONT , HORIZ_DIR , 1 );
	outtextxy ( 485 , 130 , "BEATRICE - EBEM  @1994 V4.0" );
           changetextstyle(DEFAULT_FONT,HORIZ_DIR,1);
	}
Exemple #3
0
void
AmbienteDados()
{
   LimpaTela();
   setcolor(1);
   CriaJanelaGrafica(0,80,0,640,344,"ENTRADA DE DADOS DO PACIENTE");
   AtivaJanelaGrafica(0);
   changetextstyle(DEFAULT_FONT,HORIZ_DIR,1);
   gprintf(10,10,"NOME: %s",Paciente.Nome);
   gprintf(10,23,"No DO PRONTUARIO: %s",Paciente.Prontuario);
   gprintf(10,36,"SEXO: %s",Paciente.Sexo);
   if (*Paciente.Sexo!=NULL)
      outtextxy(66,36, Paciente.Sexo[0]=='M' ? "asculino" : "eminino");
   gprintf(10,49,"DATA DE NASCIMENTO: %2s/%2s/%2s",Paciente.Dia,Paciente.Mes,Paciente.Ano);
   if (*PacienteIdade!=NULL)
      gprintf(300,49,"IDADE: %2s anos",PacienteIdade);
   gprintf(10,62,"ADULTO ou CRIANCA ? (A/C): %s",Paciente.Fase);
   if (*Paciente.Fase!=NULL)
      outtextxy(234,62, Paciente.Fase[0]=='A' ? "dulto" : "rianca");
   gprintf(10,75,"ALTURA (cm): %s",Paciente.Altura);
   gprintf(10,88,"PESO (Kg): %s",Paciente.Peso);
   if (SupCorp>0.0)
      gprintf(300,88,"SUPERFICIE CORPORAL: %-5.2f",SupCorp);
   gprintf(10,118,"FUMANTE ? (S/N/E): %s",Paciente.Fumante);
   if (strchr ( "Ss" , Paciente.Fumante[0] ) != NULL)
      {
      gprintf(40,131,"HA QUANTOS ANOS ? : %s",Paciente.tempfumo);
      gprintf(40,144,"No CIGARROS/DIA   : %s",Paciente.cigardia);
      }
   else if (strchr ( "Ee" , Paciente.Fumante[0] ) != NULL)
           {
           gprintf(40,131,"HA QUANTO TEMPO DEIXOU DE FUMAR ? :"" %2s ANOS  %2s MESES",Paciente.deixfumoA,Paciente.deixfumoM);
           gprintf(40,144,"QUANTOS ANOS FUMOU ? : %2s",Paciente.tempfumo);
           gprintf(40,157,"No CIGARROS/DIA : %2s",Paciente.cigardia);
           }

   gprintf(10,177,"INSTITUICAO: %s",institu);
   gprintf(10,190,"PACIENTE INTERNO OU AMBULATORIAL ? (I/A): %s",IouA);
   gprintf(10,203,"JUSTIFICATIVA PARA O EXAME: %s",justif);
   gprintf(10,216,"MEDICO REQUISITANTE: %s",medico);
   gprintf(10,229,"SERVICO REQUISITANTE: %s",servico);
   gprintf(10,242,"PACIENTE ATUALMENTE COM ALGUM DIAGNOSTICO ? (S/N): %s",temdiag);
   if (strchr ( "Ss" , temdiag[0] ) != NULL)
      gprintf(40,255,"DIAGNOSTICO: %s",diagnost);
   gprintf(10,268,"CIRURGIA PREVIA ? (S/N): %s",temcirur);
   if (strchr ( "Ss" , temcirur[0] ) != NULL)
      {
      gprintf(40,281,"CIRURGIA: %s",cirurgia);
      gprintf(40,294,"DATA: %2s/%2s/%2s",cirurgiaD,cirurgiaM,cirurgiaA);
      }
}        /* AmbienteDados */
Exemple #4
0
void MainWindow( char *header )
{
  int height;

  cleardevice();			/* Clear graphics screen	*/
  setcolor( MaxColors - 1 );		/* Set current color to white	*/
  setviewport( 0, 0, MaxXX, MaxYY, 1 );	/* Open port to full screen	*/

  height = textheight( "H" );           /* Get basic text height        */

  changetextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );
  settextjustify( CENTER_TEXT, TOP_TEXT );
  outtextxy( MaxXX/2, 2, header );
  setviewport( 0, height+4, MaxXX, MaxYY-(height+4), 1 );
  DrawBorder();
  setviewport( 1, height+5, MaxXX-1, MaxYY-(height+5), 1 );

}
Exemple #5
0
void StatusLine( char *msg )
{
  int height;

  setviewport( 0, 0, MaxXX, MaxYY, 1 );	/* Open port to full screen	*/
  setcolor( MaxColors - 1 );		/* Set current color to white	*/

  changetextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );
  settextjustify( CENTER_TEXT, TOP_TEXT );
  setlinestyle( SOLID_LINE, 0, NORM_WIDTH );
  setfillstyle( EMPTY_FILL, 0 );

  height = textheight( "H" );           /* Detemine current height      */
  bar( 0, MaxYY-(height+4), MaxXX, MaxYY );
  rectangle( 0, MaxYY-(height+4), MaxXX, MaxYY );
  outtextxy( MaxXX/2, MaxYY-(height+2), msg );
	setviewport( 1, height+5, MaxXX-1, MaxYY-(height+5), 1 );

}
Exemple #6
0
void SayGoodbye(void)
{
  struct viewporttype viewinfo; 	/* Structure to read viewport	*/
  int h, w;

  MainWindow( "== Finale ==" );

  getviewsettings( &viewinfo ); 	/* Read viewport settings	*/
  changetextstyle( TRIPLEX_FONT, HORIZ_DIR, 4 );
  settextjustify( CENTER_TEXT, CENTER_TEXT );

  h = viewinfo.bottom - viewinfo.top;
  w = viewinfo.right  - viewinfo.left;
  outtextxy( w/2, h/2, "That's all, folks!" );

  StatusLine( "Press any key to EXIT" );
  getch();

  cleardevice();			/* Clear the graphics screen	*/

}
Exemple #7
0
main()
{
	union REGS ii, oo ;

	int BallX, BallY, Base1, Base2, dx = 1, dy = -1, OldX, OldY ;
	int totallayer[5] = { 10, 20, 30, 40, 50 }, max = 50, layer = 4 ;
	int i, flag = 0, speed = 25, score = 0, chance = 4, areareq ;

	char *m1, *m2 ;

	/* Function to initialise the graphics mode */
	initgraph ( &graphdriver, &graphmode, "e:\\tc\\bgi " ) ;
	mainscreen();
	initgraph ( &graphdriver, &graphmode, "e:\\tc\\bgi " ) ;
	/* get the maximum value of x and y coordinates of the screen */
	MaxX = getmaxx() ;
	MaxY = getmaxy() ;
	/* finding the center of the screen */
	MidX = MaxX / 2 ;
	MidY = MaxY / 2 ;


	/* create opening  screen and accept the level of the  player's  */
	level = screen() ;

	/* assign the  speed to ball as per the level chosen */
	switch ( level )
	{
		case 'M' :
		case 'm' :
			speed = 15 ;
			break ;

		case 'F' :
		case 'f' :
			speed = 10 ;
	}

	/* draw the four layer of bricks, the paddle and the ball */
	rectangle ( 0, 0, MaxX, MaxY - 12 ) ;
	bricks() ;
	rectangle ( MidX - 25, MaxY - 7 - 12, MidX + 25, MaxY - 12 ) ;
	floodfill ( MidX, MaxY - 1 - 12, 12 ) ;
	circle ( MidX, MaxY - 13 - 12, 12 ) ;
	floodfill ( MidX, MaxY - 10 - 12, 12 ) ;

	/* memory allocation for storing the image of the paddle */
	areareq = imagesize ( MidX - 12, MaxY - 18, MidX + 12, MaxY - 8 ) ;
	m1 =((char*) malloc ( areareq )) ;

	/* memory allocation for storing the image of the ball */
	areareq = imagesize ( MidX - 25, MaxY - 7, MidX + 25, MaxY - 1 ) ;
	m2 =((char *) malloc ( areareq ) );

	/* if unable to alloacte the memory  */
	if ( m1 == NULL || m2 == NULL )
	{
		puts ( "Not Enough memory!!" ) ;
		exit ( 1 ) ;
	}

	/* image of the paddle and the ball is stored into allocated memory */
	getimage ( MidX - 12, MaxY - 7 - 12 - 12 + 1, MidX + 12, MaxY - 8 - 12, m1 ) ;
	getimage ( MidX - 25, MaxY - 7 - 12, MidX + 25, MaxY - 1 - 12, m2 ) ;

	/* store current position of the paddle and ball */
	Base1 = MidX - 25 ;
	Base2 = MaxY - 7 - 12 ;
	BallX = MidX - 12 ;
	BallY = MaxY - 7 - 12 + 1 - 12 ;

	/* display balls remaining ( initially 3 ) */
	gotoxy ( 45, 25 ) ;
	cout<< "Balls :"  ;
	for ( i = 0 ; i < 3 ; i++ )
	{
		circle ( 515 + i * 35, MaxY - 5, 12 ) ;
		floodfill ( 515 + i * 35, MaxY - 5, 12 ) ;
	}

	/* display starting score */
	gotoxy ( 1, 25 ) ;
	cout<< "Score:   ";
	gotoxy(16,25);
	cout<<score;

	/* select font and alignment for displaying text */
	settextjustify ( CENTER_TEXT, CENTER_TEXT ) ;
	changetextstyle ( GOTHIC_FONT, HORIZ_DIR, 4 ) ;

	while ( 1 )
	{
		flag = 0 ;

		/* saving current x and y coordinates of the ball */
		OldX = BallX ;
		OldY = BallY ;

		/* update ballx and bally to move the ball in correct direction */
		BallX = BallX + dx ;
		BallY = BallY + dy ;

		/* according to the position of ball the layer of bricks is determined */
		if ( BallY > 40 )
		{
			max = 50 ;
			layer = 4 ;
		}
		else
		{
			if ( BallY > 30 )
			{
				max = 40 ;
				layer = 3 ;
			}
			else
			{
				if ( BallY > 20 )
				{
					max = 30 ;
					layer = 2 ;
				}
				else
				{
					if ( BallY > 10 )
					{
						max = 20 ;
						layer = 1 ;
					}
					else
					{
						max = 10 ;
						layer = 0 ;
					}
				}
			}
		}

		/* if the ball hits the right boundary, move it to the left */
		if ( BallX > ( MaxX - 24 - 1 ) )
		{
			bell ( 5 ) ;
			BallX = MaxX - 24 - 1 ;
			dx = -dx ;
		}

		/* if the ball hits the left boundary, move it to the right */
		if ( BallX < 1 )
		{
			bell ( 5 ) ;
			BallX = 1 ;
			dx = -dx ;
		}

		/* if the ball hits the top boundary, move it down */
		if ( BallY < 1 )
		{
			bell (  5 ) ;
			BallY = 1 ;
			dy = -dy ;
		}

		/* if the ball is in the area of the bricks */
		if ( BallY < max )
		{
			/* if there is no brick  at the top of the ball */
			if ( bri[layer][ ( BallX + 10 ) / 32 ] == 1 )
			{
				/*  if the ball touches a brick */
				for ( i = 1 ; i <= 6 ; i++ )
				{
					/* check whether there is a brick to the right of the ball */
					if ( bri[layer][ ( BallX + i + 10 ) / 32 ] == 0 )
					{
						/* if there is a brick */
						BallX = BallX + i ;
						flag = 1 ;
						break ;
					}

					/* check whether there is a brick to the left of the ball */
					if ( bri[layer][ ( BallX - i + 10 ) / 32 ] == 0 )
					{
						BallX = BallX - i ;
						flag = 1 ;
						break ;
					}
				}

				/* if the ball does not touch a brick at the top, left or right */
				if ( !flag )
				{
					/* check if the ball has moved above the current layer */
					if ( BallY < totallayer[layer - 1] )
					{
						/* if so, change current layer appropriately */
						layer-- ;
						max = totallayer[layer] ;
					}

					/* restore the image of the ball at the old coordinates */
					putimage ( OldX, OldY, m1, OR_PUT ) ;

					/* erase the image at the old coordinates */
					putimage ( OldX, OldY, m1, XOR_PUT ) ;

					/* place the image of the ball at the new coordinates */
					putimage ( BallX, BallY, m1, XOR_PUT ) ;

					/*  delay for fewseconds*/
					delay ( speed ) ;

					/* carry on moving the ball */
					continue ;
				}
			}

			/* when ball touch the brick control comes to this point */
			bell ( 5 ) ;  /* play music */

			/* erase the touched brick  */
			delbrick ( ( BallX + 10 ) / 32, layer ) ;

			/* if the brick hit is on the extreme right */
			if ( ( BallX + 10 ) / 32 == 19 )
				line ( MaxX, 0, MaxX, 50 ) ;  /* redraw right boundary */

			/* if the brick hit is on the extreme left */
			if ( ( BallX + 10 ) / 32 == 0 )
				line ( 0, 0, 0, 50 ) ;  /* redraw left boundary */

			/* if the brick hit is in the topmost layer */
			if ( layer == 0 )
				line ( 0, 0, MaxX, 0 ) ;  /* redraw top boundary */

			/* set appropriate array element to 1 to indicate absence of brick */
			bri[layer][ ( BallX + 10 ) / 32 ] = 1 ;

			BallY = BallY + 1 ;  /* update the y coordinate */
			dy = -dy ;  /* change the current direction of the ball */
			score += 10 ;  /* increment the score by 10 */
			gotoxy ( 16, 25 ) ;
			cout<< score;  /* display latest score */

			/* if the first brick is hit during a throw*/
		}


		/* if  ball reached the bottom */
		if ( BallY > 180 - 12 )
		{

			/* if paddle missed the ball */
			if ( BallX < Base1 - 20 || BallX > Base1 + 50 )
			{
				/* continue the decrement of the ball */
				while ( BallY < 177 )
				{
					/* erase the image of the ball at the old coordinates */
					putimage ( OldX, OldY, m1, XOR_PUT ) ;

					/* put the image of the ball at the new coordinates */
					putimage ( BallX, BallY, m1, XOR_PUT ) ;

					/* introduce delay for fewseconds */
					delay ( speed ) ;

					/* saveing current x and y coordinates of the ball */
					OldX = BallX ;
					OldY = BallY ;

					/* update ballx and bally to move the ball in correct direction */
					BallX = BallX + dx ;
					BallY = BallY + dy ;
				}

				chance-- ;  /* decrement the total number of chances */
				score -= 10 ;  /* decrement 10 points for each ball lost */
				gotoxy ( 16, 25 ) ;
				cout<< score;  /* display latest score */
				bell ( 1 ) ;

				/* erase one  of the available balls */
				if ( chance )
					putimage ( 515 + ( chance - 1 ) * 35 - 12 , MaxY - 10, m1, XOR_PUT ) ;

				/* if the last ball is being played */
				if ( chance == 1 )
				{
					gotoxy ( 45, 25 ) ;
					cout<< "Last ball... careful!";
				}

				/* if all the balls are lost */
				if ( !chance )
				{
					gotoxy ( 45, 25 ) ;
					cout<<"Press any key to continue ...              " ;
					outtextxy ( MidX, MidY, "Better luck next time" ) ;
					bell ( 2 ) ;

					closegraph() ;
					restorecrtmode() ;
					closegraph();		/* Close the graphics mode */
					Initialize();		/* Intialize the graphics mode */
					setbkcolor(4);
					SayGoodbye(); 		/* Display the That's all Folks message */
					closegraph(); 		/* Return the system to text mode	*/
					exit ( 0 ) ;
				}
			}

			/* if ball is collected on paddle */
			bell ( 4 ) ;
			BallY = 180 - 12 ;  /* restore the y coordinate of ball */
			dy = -dy ;  /* move the ball upwards */
		}

		/* put the image of the ball at the old coordinates */
		putimage ( OldX, OldY, m1, OR_PUT ) ;

		/* erase the image of the ball at the old coordinates */
		putimage ( OldX, OldY, m1, XOR_PUT ) ;

		/* put the image of the ball at the upadted coordinates */
		putimage ( BallX, BallY, m1, XOR_PUT ) ;

		/* if all the bricks have been knockout */
		if ( score == 500 - ( ( 4 - chance ) * 20 ) )
		{
			outtextxy ( MidX, MidY, "Winner !!" ) ;

			if ( score < 600 )
				outtextxy ( MidX, MidY + 30, "Try to score 600" ) ;
			else
				outtextxy ( MidX, MidY + 30, " GREAT!" ) ;

			bell ( 2 ) ;

			closegraph() ;
			restorecrtmode() ;
			exit ( 0 ) ;
		}

		/* introduce delay for few seconds */
		delay ( speed ) ;

		/* if the key is pressed to move the paddle */
		if ( kbhit() )
		{
			/* interrupt issue to obtain the ascii and scan codes of key hit */
			ii.h.ah = 0 ;
			int86 ( 22, &ii, &oo ) ;

			/* put the image of the paddle at the old coordinates */
			putimage ( Base1, Base2, m2, OR_PUT ) ;

			/* erase the image of the paddle at the old coordinates */
			putimage ( Base1, Base2, m2, XOR_PUT ) ;

			/* if Esc key has been pressed */
			if ( oo.h.ah == 1 )
				exit ( 0 ) ;

			/* right arrow key */
			if ( oo.h.ah == 75 )
				Base1 = Base1 - 25 ;

			/* left arrow key */
			if ( oo.h.ah == 77 )
				Base1= Base1 + 25 ;

			/* if paddle goes beyond left boundary */
			if ( Base1 < 0 )
				Base1 = 0 ;

			/* if paddle goes beyond right boundary */
			if ( Base1 > 589 )
				Base1 = 589 ;

			/* put the image of the paddle at the proper position */
			putimage ( Base1, Base2, m2, XOR_PUT ) ;
		}

	}
	closegraph();
	Initialize();
	SayGoodbye(); 		/* Give user the closing screen 	*/
	closegraph(); 		/* Return the system to text mode	*/
	return(0);
}
Exemple #8
0
screen()
{
	int i, j, lx = 0, ly = 0, ch ;


		rectangle(1,1,600,195);
		setbkcolor(4);
		/* set the textstyle for displaying instruction */
		changetextstyle ( DEFAULT_FONT, HORIZ_DIR, 0 ) ;
		outtextxy ( 150, 55, "         Instructions        " ) ;
		changetextstyle (4, HORIZ_DIR, 5 );
		outtextxy ( 130, 0, " B R I C K S" ) ;
		changetextstyle ( DEFAULT_FONT, HORIZ_DIR, 0 ) ;
		outtextxy ( 30, 68, "Use left and right arrow keys to move paddle." ) ;
		outtextxy ( 30, 88, "If you don't collect the ball on the paddle, you lose the ball." ) ;
		outtextxy ( 30, 108, "On loosing a ball you loose 20 points." ) ;
		outtextxy ( 30, 128, "On taking a brick you gain 5 points." ) ;
		changetextstyle(7, HORIZ_DIR, 3);
		outtextxy ( 100, 148, "Press any key to continue ..." ) ;
		bell ( 3 ) ;  /* ring music */
		fflush ( stdin ) ;
		if ( getch() == 0 )
			getch() ;

		closegraph();
		initgraph ( &graphdriver, &graphmode, "e:\\tc\\bgi " ) ;
	  rectangle(2,2,620,195);
	  setbkcolor(4);
	/* display the main menu */
	while ( 1 )
	{

		changetextstyle(4,HORIZ_DIR,5);
		outtextxy ( 60, 8, "Options Available:" ) ;
		outtextxy ( 150, 55, "Play ( P )" ) ;
		outtextxy ( 150, 125, "Exit ( E )" ) ;

		ch = 0 ;

		/* continue untill you select the correct choice  */
		while ( ! ( ch == 'E' ||   ch == 'P' ) )
		{
			fflush ( stdin ) ;

			/* if a special key is hit, flush the keyboard buffer */
			if ( ( ch = getch() ) == 0 )
				getch() ;
			else
				ch = toupper ( ch ) ;    /* store the uppercase of the choice made*/
		}

		if ( ch == 'P' )
			break ;
		if (ch == 'E')
			exit ( 0 ) ;

	}

	setviewport ( 1, 125 - 12, MaxX - 1, MaxY - 1, 1 ) ;
	clearviewport() ;
	closegraph();
	initgraph ( &graphdriver, &graphmode, "e:\\tc\\bgi " ) ;
	rectangle(2,2,620,195);
	setbkcolor(4);

	/* display menu for the diffrent levels */
	changetextstyle(7,HORIZ_DIR,3);
	outtextxy ( 60, 8, "Select the level for play:" ) ;
	outtextxy ( 150,50, "Slow ( S )" ) ;
	outtextxy ( 150, 100, "Medium ( M )" ) ;
	outtextxy ( 150, 150, "Fast ( F )" ) ;

	/* accept user's choice */
	fflush ( stdin ) ;
	if ( ( ch = getch() ) == 0 )
		getch() ;

	clearviewport() ;

	/* return the choice selected by the user */
	return ( ch ) ;
}