magic of c language games

A SMALL GAME IN C
This magic program is basically logic behind, the
thought of the pupil.as name sujest this program is not magic at all...just try to cope with the logic of this program and try to develope more


and more magical program and kindly give ur feed back to me .

#include<stdio.h>
#include<conio.h>
int generate(void);
int fun(int);
void main()
{
 int i,a,r;
 clrscr();
 gotoxy(30,12);
 printf("Harsh Welcomes You! IN THE JARGON OF A NUMBER..");
 printf("press any key to continue....");
 getch();
 clrscr();
 gotoxy(15,8);
 printf("Just think a number between 1 to 63 in your mind");
 printf("  Think on one ");
 printf("Do not enter that number");
 printf("  I will find that number on your mind....");
 printf(" Press any key to continue...");
 getch();
 clrscr();
 gotoxy(20,7);
 printf("By Just answering few questions....");
 printf("If your number is present in the numbers");
 printf(" shown on your screen,    Then press P and if not present");
 printf(" then press N    ");
 printf(" But please be honest while entering the answer...");
 printf("Press any key to continue...");
 getch();
 clrscr();
 r=generate();
 if(r==0)
 {
  gotoxy(20,11);
  printf("You didn't think of any number between 1 to 63");
  printf(" So try again...");
 }
 else
 {
 gotoxy(30,11);
 printf("Your number is %d",r);
 printf("Surprised! But friends it is not a magic,");
 printf(" it just involves some mathematical computation....");
 printf(" so guys just try to find out the method.");
 printf(" Thank You!");
 printf(" Programmed By:prashant");                        Harsh Birla");
 }
 getch();
}

int generate()
{
 int a,i,j,f,num[6],n,r=0;
 char ch[6];
 for(j=0;j<=5;j++)
 {
  gotoxy(1,7);
  f=fun(j);
  for(i=1;i<=63;i++)
  {
   //f=fun(j);
   //printf("%d",f);
   a=i & f;
   if(a==f)
   //gotoxy(5,10);
   printf("%d",i);

  }
  printf("  Let me remind you if the number is present then");
  printf(" press P otherwise press N");
  printf(" Enter your answer:    ");

  ch[j]=getche();
  printf("Press any key to continue....");
  //clrscr();
  if(ch[j]=='p' || ch[j]=='P')
  {
   num[j]=1;
   n=fun(j);
   r=r+n;
  }
  else
  num[j]=0;
  getch();
  clrscr();
 }
/* for(j=5;j>=0;j--)
 {
 printf("%d",num[j]);

 // if(ch[j]=='p' || ch[j]=='P')
 // num[j]=1;
 // else
 // num[j]=0;
 } */
// printf("%d",r);
 return r;
}

int fun(int j)
{
 if(j==0)
 return 1;
 else
 return 2*fun(j-1);
}