#include "harjoitus.h"

void alusta(int leveys, int korkeus)
{
  SRGP_begin ("Laivanupotus", leveys*RUUTU+50, 2*korkeus*RUUTU+120, 6, FALSE);
  
  SRGP_loadCommonColor (2, "red");
  SRGP_loadCommonColor (3, "blue");
  SRGP_loadCommonColor (4, "green");
  SRGP_loadCommonColor (5, "yellow");
  SRGP_loadCommonColor (6, "grey");

  SRGP_loadFont (1, "lucidasans-bold-8");
  SRGP_loadFont (2, "lucidasans-bolditalic-18");
  SRGP_loadFont (3, "lucidasanstypewriter-bold-24");

  SRGP_setFillStyle (SOLID);
 
  SRGP_inquireCanvasDepth ();
  SRGP_enableSynchronous ();
   
  SRGP_useCanvas (SCREEN_CANVAS);
}


void lopeta()
{
  SRGP_end();   /* Poistaa ikkunan */
}


void piirustus (int varinumero, char suunta, int pituus, int alkux, int alkuy)
{  
  int i;

  SRGP_setColor (varinumero);
  

  for(i=1; i<=pituus; i++) {
    SRGP_fillRectangleCoord (RUUTU*(alkux-1)+28, RUUTU*(alkuy-1)+28, 
			     RUUTU*(alkux-1)+37, RUUTU*(alkuy-1)+37);
    
    switch (suunta)
      {
      case 'o': 
	alkux = alkux+1;
	break;
      case 'v':
	alkux = alkux-1;
	break;
      case 'a':
	alkuy = alkuy-1;
	break;
      case 'y':
	alkuy = alkuy+1;
	break;
      }  
  }
}


void koordinaatisto (int leveys, int korkeus)
{
  int i;

  SRGP_setColor (SRGP_BLACK);
  SRGP_setLineWidth (2);

  SRGP_rectangleCoord(REUNA, REUNA, (leveys*RUUTU+REUNA),
		      (korkeus*RUUTU+REUNA));
  
  for(i=40; i<(leveys*RUUTU+REUNA); i=i+RUUTU) {
    SRGP_lineCoord (i, REUNA, i, (korkeus*RUUTU+REUNA)); 
  }
  
  for(i=40; i<(korkeus*RUUTU+REUNA); i=i+RUUTU) {
    SRGP_lineCoord(REUNA, i, (leveys*RUUTU+REUNA), i);
  }

  SRGP_rectangleCoord(REUNA, (korkeus*RUUTU+2*REUNA),(leveys*RUUTU+REUNA),
		      (korkeus*RUUTU*2+2*REUNA));

  for(i=40; i<(leveys*RUUTU+REUNA); i=i+RUUTU) {
    SRGP_lineCoord(i, (korkeus*RUUTU+2*REUNA), i, (korkeus*RUUTU*2+2*REUNA));
  }

  for(i=(korkeus*RUUTU+2*REUNA); i<(korkeus*2*RUUTU+2*REUNA); i=i+RUUTU) {
    SRGP_lineCoord(REUNA, i, (leveys*RUUTU+REUNA), i);
  }

  SRGP_setFont (3);
  SRGP_setColor (SRGP_BLACK);
  SRGP_text ((SRGP_defPoint (90, 2*korkeus*RUUTU+70)), "Peli");

  SRGP_setColor (2);
  SRGP_setFont (2);
  SRGP_text ((SRGP_defPoint (10, 2*korkeus*RUUTU+90)), "Laivanupotus");
}

void numerointi (int leveys, int korkeus)
{ 
    
  int i, j;
  char buffer[4]={'\0'};
  
  SRGP_setColor (SRGP_BLACK);
  SRGP_setFont (1);
  
  for(i=1, j=REUNA+4; i<=korkeus && j<=korkeus*RUUTU+REUNA; i++, j+=RUUTU) {
    sprintf (buffer, "%d", i);
    SRGP_text ((SRGP_defPoint (8, j)), buffer);
  }
  
  for(i=1, j=REUNA+4; i<=leveys && j<=leveys*RUUTU+REUNA; i++, j+=RUUTU) {
    sprintf (buffer, "%d", i); 
    SRGP_text ((SRGP_defPoint (j, 12)), buffer);
  }
  
  for(i=1, j=2*REUNA+korkeus*RUUTU+4; i<=korkeus && j<=2*REUNA+2*RUUTU*korkeus; 
      i++, j+=RUUTU) {
    sprintf (buffer, "%d", i);
    SRGP_text ((SRGP_defPoint (8, j)), buffer);
  }
  
  for(i=1, j=REUNA+4; i<=leveys && j<=leveys*RUUTU+25; i++, j+=RUUTU) {
    sprintf (buffer, "%d", i); 
    SRGP_text ((SRGP_defPoint (j, korkeus*RUUTU+REUNA+12)), buffer);
  }
}

void tekstialoitus()
{
  printf("\n");
  printf("\n");
  printf("\n");

  printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
  printf("\n");
  printf("         L A I V A N U P O T U S  - P E L I          \n");
  printf("\n");
  printf("* * * * * * * * * * * * * * * * * * * * * * * * * * *\n");

  printf("\n");
  printf("\n");
  printf("\n");
  
}

void piippaus()
{
  SRGP_beep ();
}


void alaruutu (int x, int y, int varinumero)
{
  SRGP_setColor (varinumero);
  
  SRGP_fillRectangleCoord (RUUTU*(x-1)+28, RUUTU*(y-1)+28, 
			   RUUTU*(x-1)+37, RUUTU*(y-1)+37);
}

void ylaruutu (int x, int y, int varinumero, int korkeus)
{
  SRGP_setColor (varinumero);
  SRGP_fillRectangleCoord (RUUTU*(x-1)+28,(25+korkeus*RUUTU+25)+
			   (RUUTU*(y-1)+3), RUUTU*(x-1)+37,
			   (25+korkeus*RUUTU+25)+(RUUTU*(y-1)+12));
}































