void prog() { char word[25],meaning[100],hword[25]; int menuchoice,rep,l,h; node *temp; node *t; FILE *fp; clrscr(); temp=treefromfile(); if(temp==NULL) { printf("File does not exist or dictionary is empty..."); getch(); } while(1) { clrscr(); menuchoice=showmenu(); // scanf("%d",&menuchoice); switch(menuchoice) { case 1:{ frame(); printf("\nEnter word : \n"); scanf("%s",word); printf("\nEnter meaning : " ); flushall(); gets(meaning); if(temp==NULL) { temp=maketree(word,meaning); } else { addword(temp,word,meaning); } break; } case 2:{ frame(); if(temp==NULL) { printf("\nThe dictionary is empty...\n"); } else { printf("\nFind meaning of : \n"); flushall(); gets(word); t=csearch(temp,word); if(t==NULL) { printf("\nWord not found...\n"); printf("\nDo you want to add this word to database: \n1>yes\n2>No\n"); scanf("%d",&rep); if(rep==1) { frame(); printf("\nEnter word : %s\n",word); //scanf("%s",word); printf("\nEnter meaning : " ); flushall(); gets(meaning); if(temp==NULL) { temp=maketree(word,meaning); } else { addword(temp,word,meaning); } } else { printf("\nReturning to main menu...\n"); } } else { printf("\n%s : ",t->word); puts(t->meaning); } } getch(); break; } case 3:{ frame(); if(temp==NULL) printf("Dictionary is empty..."); else displayall(temp); getch(); break; } case 4:{ clrscr(); printf("\n\n\tEnter word: "); scanf("%s",word); printf("\n\tEnter meaning: "); gets(meaning); change(temp,word,meaning); break; } case 5: { clrscr(); frame(); printf("\nHow many last searched words to be displayed:"); scanf("%d",&h); fp=fopen("c:\\history.txt","r" ); if(fp==NULL) { printf("\nUnable to read history file...\n"); printf("\n\n\tThere is no history of searched words...\n"); } else { gotoxy(1,20); for(l=0;l<15;l++) { printf("||||"); } gotoxy(1,1); printf("\n\t\tHISTORY\n\n"); printf("\nLast %d words which were searched are:\n\n",h); for(l=0;l<h;l++) { fscanf(fp,"%s",hword); printf("\t%d>\t%s",l+1,hword); } } fclose(fp); getch(); break; } case 6:{ filefromtree(temp); end(); exit(1); break; } default:{ printf("Wrong!! Enter Again"); delay(1000); prog(); break; } } } }
int gameloop(void) { int viewx, viewy, ex = 0, option, redraw = 1, nx, ny, mb; viewx = men.x - (WIN_X-1)/2 /*10*/; if( viewx < 0 ) viewx = 0; if( viewx > DIM_X-WIN_X+1/*40*/ ) viewx = DIM_X-WIN_X+1/*40*/; viewy = men.y - (WIN_Y-1)/2 /*5*/; if( viewy < 0 ) viewy = 0; if( viewy > DIM_Y-WIN_Y+1/*20*/ ) viewy = DIM_Y-WIN_Y+1/*20*/; while(ex==0) { if(redraw > 0) { display_map( viewx, viewy ); redraw = 0; } displaymen( viewx, viewy ); processing( viewx, viewy ); clearmen( viewx, viewy); mb = m_button(); if(mb==1) { if(m_ypos() < 180) { nx = ((men.x - viewx)*16) - m_xpos(); ny = ((men.y - viewy)*16) - m_ypos(); if( (nx > 0) & (checkmap( men.x-1, men.y ) > 0) ) men.x--; if( (nx < -16) & (checkmap( men.x+1, men.y ) > 0) ) men.x++; if( (ny > 0) & (checkmap( men.x, men.y-1 ) > 0) ) men.y--; if( (ny < -16) & (checkmap( men.x, men.y+1 ) > 0) ) men.y++; redraw=1; } else { nx = m_xpos(); if( nx > 220 & nx < 240 ) fenceit( viewx, viewy ); if( nx > 240 & nx < 260 ) homeit(viewx, viewy ); if( nx > 260 & nx < 280 ) { displayall(); redraw = 2; } if( nx > 280 & nx < 300 ) ex=1; } delay(250); } if(bioskey(1)!=0) { option = bioskey(0); } else { option = 0; } switch(option) { case 283: ex = 1; break; case 19712: if( (men.x < DIM_X-1/*59*/) & (checkmap( men.x + 1 , men.y ) > 0) ) men.x++; redraw = 1; break; case 19200: if( (men.x > 0) & (checkmap( men.x - 1 , men.y ) > 0) ) men.x--; redraw = 1; break; case 20480: if( (men.y < DIM_Y/*30*/) & (checkmap( men.x , men.y + 1 ) > 0) ) men.y++; redraw = 1; break; case 18432: if( (men.y > 0) & (checkmap( men.x , men.y - 1 ) > 0) ) men.y--; redraw = 1; break; case 18688: displayall(); redraw = 2; break; case 20992: fenceit( viewx, viewy ); break; case 18176: homeit( viewx, viewy ); break; default: break; } check_greble( viewx, viewy ); if( redraw == 1 ) { redraw = 0; if( ( men.x - 2 ) < viewx ) { viewx = men.x - (WIN_X-1)/2 /*10*/; if( viewx < 0 ) viewx = 0; redraw = 1; } if( ( men.x + 2 ) > ( viewx + WIN_X-1/*20*/ ) ) { viewx = men.x - (WIN_X-1)/2 /*10*/; if( viewx > DIM_X-WIN_X+1/*40*/ ) viewx = DIM_X-WIN_X+1/*40*/; redraw = 1; } if( ( men.y - 2 ) < viewy ) { viewy = men.y - (WIN_Y-1)/2 /*5*/; if( viewy < 0 ) viewy = 0; redraw = 1; } if( ( men.y + 2 ) > ( viewy + WIN_Y-1/*10*/ ) ) { viewy = men.y - (WIN_Y-1)/2 /*5*/; if( viewy > DIM_Y-WIN_Y+1 /*20*/ ) viewy = DIM_Y-WIN_Y+1 /*20*/; redraw = 1; } } } }