#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#include <time.h>

char upcase (char);
int obtiaznost (int);
int zvys (int);

void main(){
  char c,cc,p;
  int pad,cel,obt,i,j,h,lev;
  char
    lava[15]={'A','S','D','F','E','W','X','T','C','Q','Z','R','V','B','G'},
    prava[13]={'J','K','L',';',',','O','N','I','P','M','U','Y','H'};
  int
    llekcia[10]={4,5,7,8,9,11,12,13,14,15},
    plekcia[10]={4,5,6,7,8,9,10,12,13};
  int
    hudba[28]={523,330,392,523,330,392,523,622,523,494,440,494,330,396,494,440,494,440,392,440,294,349,440,392,440,392,349,392};

  randomize();
  textcolor(LIGHTMAGENTA);
  pad=0; cel=0; h=0;
  clrscr();

  printf("Vyber si obtiaznost. [1-9] ");
  i=getch();
  obt=obtiaznost(i-48);

  printf("\n\nPre postup do dalsej lekcie stlac [*], koniec [Esc].");
  i=getch();
  lev=0;

  textcolor(WHITE);
 do{
  c=lava[random(llekcia[lev])]; cc=prava[random(plekcia[lev])]; p=' ';
  for(i=1;(i<obt)&&((c!=' ')||(cc!=' '));i++){
    clrscr();
    printf("  Vsetkych: %i                  Nezachytenych: %i\n",cel,pad);
    for(j=-2;(j<i);j++) printf("\n");
    printf("%30c",c);
    printf("%10c",cc);
    delay(5000);delay(5000);delay(5000);nosound();
    if (kbhit()) {
      p=upcase(getch());
      sound(hudba[h]);h=(h+1)%28;
      if (p==c) c=' ';
      if (p==cc) cc=' ';}
    if(p==27){nosound();break;}
    if(p=='*'){lev=zvys(lev);break;}
  };
    if(p!='*'){
      cel+=2;
      if(c!=' ')pad+=1;
      if(cc!=' ')pad+=1;
    };
 }while(p!=27);

 textcolor(LIGHTMAGENTA);
 clrscr();
 printf("\n\n\n\n\n\n\n\n%35cBye, bye!!",' ');
 p=getch();

}

char upcase (char x){
  if((x>96)&&(x<123)) return (x-32);
  else return x;
}

int obtiaznost (int x){
  if(x<1)x=1;
  if(x>10)x=10;
  return (20-x);
}

int zvys (int x){
  x+=1;
  if(x>9)x=9;
  return x;
}