Following C program demonstrate how to maintain score in a Game. Score of respective arrow key press event will be increased by one on every arrow key press event.
#include <stdio.h>
#include <windows.h>
COORD c = {0, 0};
void setxy (int x, int y)
{
 c.X = x; c.Y = y; // Set X and Y coordinates
 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
int main() 
{ 
  int i, j, x=25, y=10, ch1, ch2;
  int  score_x1=5, score_y1=4, up=1, down=1, right=1, left=1; 
  printf("Press UP, DOWN, RIGHT, LEFT Arrow Key..\n");
  printf("Press X to exit game... \n"); 
 
  setxy(5,3); //Top border line...
  for(i=0; i<44; i++)
    printf("%c", 196);
 
  setxy(5,5);//Bottom border line...
  for(i=0; i<44; i++)
    printf("%c", 196);
  //Verticle lines
  setxy(5,4);
  printf("| Left:0   | Right:0   | Up:0   | Down:0   |");
 
  ch1 = getch(); 
  ch2 = 0;
 //When accepting arrow key, function must be called twice; first call  returns 0/0xE0; second call returns actual key code
 
 
  if (ch1 == 0xE0) 
  {  
    setxy(x,y);
    while(ch2 != 'X')
    {
     ch2 = getch();  
     switch(ch2) 
     { 
       case 72: //Up
         setxy(x,--y);
         printf("%c",2);
         setxy(score_x1+28,score_y1);
         printf("%d",up++);
         break; 
   case 80: //Down
         setxy(x,++y);
         printf("%c",2);
         setxy(score_x1+39,score_y1);
         printf("%d",down++);
         break; 
   case 75: //Left
         setxy(--x,y);
         printf("%c",2);
         setxy(score_x1+7,score_y1);
         printf("%d",left++);
         break; 
   case 77: //Right
         setxy(++x,y);
         printf("%c",2);
         setxy(score_x1+19,score_y1);
         printf("%d",right++);     break; 
   default: break; 
   }
  }
 } 
  return 0; 
}
//Design and developed by cprogrampracticals.blogspot.in
|  | 
| Fig.: Game Score Management |