Example #1
0
void WalkTestLights::HandleDynLights ()
{
  if (flashlight)
  {
    iSector* oldsector = flashlight->GetMovable()->GetSectors()->Get (0);
    iSector* newSector = walktest->views->GetCamera ()->GetSector();
    if (oldsector != newSector)
    {
      iLightList* ll = oldsector->GetLights();
      ll->Remove (flashlight);
    }
    if (oldsector != newSector)
    {
      iLightList* ll = walktest->views->GetCamera ()->GetSector ()->GetLights ();
      ll->Add (flashlight);
    }
    flashlight->GetMovable()->SetTransform (FlashlightShift (walktest->views->GetCamera ()->GetTransform ()));
    flashlight->GetMovable()->UpdateMove();
  }
  
  size_t i;
  for (i = 0 ; i < dynamic_lights.GetSize () ; i++)
  {
    iLight* dyn = dynamic_lights[i];
    csRef<WalkDataObject> dao (
        CS::GetChildObject<WalkDataObject>(dyn->QueryObject()));
    if (dao)
      if (HandleDynLight (dyn))
      {
        dynamic_lights.DeleteIndex (i);
	i--;
      }
  }
}
Example #2
0
void sxle(int A[100],int n)
{
	int i,j;
	for(i=0;i<n-1;i++)
 	for(int j=i;j<n;j++)
 	if(A[j]%2!=0&&A[i]>A[j]&&A[i]%2!=0)
	dao(&A[i],&A[j]);
}
Example #3
0
int main()
{int a,b,c,d;
d=0;
int ans[10000];int cc,ccc;
cc=1;
    while(scanf("%d+%d=%d",&a,&b,&c)!=EOF){
           // printf("%d",dao(a));
    if (dao(a)+dao(b)==dao(c))
    ans[cc]=1;
    else
       ans[cc]=0;
       cc++;
      if(a==0 && b==0 && c==0 )break;

       }
     for(ccc=1;ccc<cc;ccc++){
        if (ans[ccc]==1)
        printf("True\n");
      else
        printf("False\n");
}
    return 0;
}
Example #4
0
/* main */
int main (int argc, char **argv) {
    char buf[100];
    const char *commands[]={"-c", "-p", "-t", "-d", "-a", NULL};
    db_t db;
    db.next = NULL;
    pdb_t dblist;
    int i;
    FILE *f;
    TRY (f = fopen(DB,"a+"));
    if (argc<2) {
	usage:  printf ("Usage: %s [commands]\n"
        "-c  Create new entry.\n"
        "-p  Print the latest entry.\n"
        "-t  Print all entries sorted by title.\n"
        "-d  Print all entries sorted by date.\n"
        "-a  Print all entries sorted by author.\n",argv[0]);
        fclose (f);
        return 0;
    }
    for (i = 0; commands[i] && strcmp(argv[1],commands[i]); i++);
    switch (i) {
        case CREATE:
			printf("-c  Create a new entry.\n");
			printf("Title           :");
			if((scanf(" %25[^\n]",db.title     )) < 0)break;
			printf("Author Firstname:");
			if((scanf(" %25[^\n]",db.first_name)) < 0)break;
			printf("Author Lastname :");
			if((scanf(" %25[^\n]",db.last_name )) < 0)break;
			printf("Date 10-12-2000 :");
			if((scanf(" %10[^\n]",buf          )) < 0)break;
			printf("Publication     :");
			if((scanf(" %99[^\n]",db.publ      )) < 0)break;
			db.date=str2time (buf);
			dao (CREATE,f,&db,NULL);
			break;
        case PRINT:
			printf ("-p  Print the latest entry.\n");
			while (!feof(f)) dao (READLINE,f,&db,NULL);
			dao (PRINT,f,&db,NULL);
			break;
        case TITLE:
			printf ("-t  Print all entries sorted by title.\n");
			dblist = dao (READ,f,&db,NULL);
			dblist = dao (SORT,f,dblist,by_title);
			dao (PRINT,f,dblist,NULL);
			dao (DESTROY,f,dblist,NULL);
			break;
        case DATE:
			printf ("-d  Print all entries sorted by date.\n");
			dblist = dao (READ,f,&db,NULL);
			dblist = dao (SORT,f,dblist,(int (*)(const void *,const  void *)) by_date);
			dao (PRINT,f,dblist,NULL);
			dao (DESTROY,f,dblist,NULL);
			break;
        case AUTH:
			printf ("-a  Print all entries sorted by author.\n");
			dblist = dao (READ,f,&db,NULL);
			dblist = dao (SORT,f,dblist,by_last_name);
			dao (PRINT,f,dblist,NULL);
			dao (DESTROY,f,dblist,NULL);
			break;
        default: {
            printf ("Unknown command: %s.\n",strlen(argv[1])<10?argv[1]:"");
            goto usage;
    }   }
    fclose (f);
    return 0;
}
Example #5
0
/* Data Access Object (DAO) */
static pdb_t dao (int cmd, FILE *f, pdb_t in_db, sort sortby) {
    pdb_t *pdb=NULL,rec=NULL,hd=NULL;
    int i=0,ret;
    char buf[100];
    switch (cmd) {
        case CREATE:
			fprintf (f,"\"%s\",",in_db->title);
			fprintf (f,"\"%s\",",in_db->first_name);
			fprintf (f,"\"%s\",",in_db->last_name);
			fprintf (f,"\"%s\",",time2str(&in_db->date));
			fprintf (f,"\"%s\" \n",in_db->publ);
			break;
        case PRINT:
			for (;in_db;i++) {
				printf ("Title       : %s\n",     in_db->title);
				printf ("Author      : %s %s\n",  in_db->first_name, in_db->last_name);
				printf ("Date        : %s\n",     time2str(&in_db->date));
				printf ("Publication : %s\n\n",   in_db->publ);
				if (!((i+1)%3)) {
					printf ("Press Enter to continue.\n");
					ret = scanf ("%*[^\n]");
					if (ret<0) return rec; /* handle EOF */
					else getchar();
				}
				in_db=in_db->next;
			}
			break;
        case READLINE:
			if((fscanf(f," \"%[^\"]\",",in_db->title     ))<0)break;
			if((fscanf(f," \"%[^\"]\",",in_db->first_name))<0)break;
			if((fscanf(f," \"%[^\"]\",",in_db->last_name ))<0)break;
			if((fscanf(f," \"%[^\"]\",",buf              ))<0)break;
			if((fscanf(f," \"%[^\"]\" ",in_db->publ      ))<0)break;
			in_db->date=str2time (buf);
			break;
        case READ:
			while (!feof(f)) {
				dao (READLINE,f,in_db,NULL);
				TRY (rec=malloc(sizeof(db_t)));
				*rec=*in_db; /* copy contents */
				rec->next=hd;/* to linked list */
				hd=rec;i++;
			}
			if (i<2) {
				puts ("Empty database. Please create some entries.");
				fclose (f);
				exit (0);
			}
			break;
        case SORT:
			rec=in_db;
			for (;in_db;i++) in_db=in_db->next;
			TRY (pdb=malloc(i*sizeof(pdb_t)));
			in_db=rec;
			for (i=0;in_db;i++) {
				pdb[i]=in_db;
				in_db=in_db->next;
			}
			qsort (pdb,i,sizeof in_db,sortby);
			pdb[i-1]->next=NULL;
			for (i=i-1;i;i--) {
				pdb[i-1]->next=pdb[i];
			}
			rec=pdb[0];
			FREE (pdb);
			pdb=NULL;
			break;
        case DESTROY: {
            while ((rec=in_db)) {
                in_db=in_db->next;
                FREE (rec);
    }   }   }
    return rec;
}