Exemplo n.º 1
0
// 08110F14
void game_continue(task_id c) {
	quest_logger_filter_disable();
	prev_quest_display_number = 0;

	for (uint i=0; i<4; i++)
		if (sav1i->questlog[i].active)
			prev_quest_display_number++;

	if (prev_quest_display_number > 0) {
		help_system_enabled = 0;
		flashback();
	} else
		set_callback2(&c2_8056938);

	task_del(c);
}
Exemplo n.º 2
0
int main()
{
   int asc[1000],key[1000];  //asc数组放的是域名的ASCII码,key数组放的是key值
   char str[1000][50],bs_str[1000][50];      //用于存储域名,其中bs_str是存放排好序的域名
   //读取文件
   FILE *fp;      
   fp=fopen("list.txt","r");
   //读取每个域名
   int i;
   for(i=0;i<1000;i++)
   {
      fgets(str[i],50,fp);
      strcpy(bs_str[i],str[i]);  //把str复制到bs_str
      flashback(bs_str[i]);
   }
   fclose(fp);  //关闭文件

   //初始化啊ASCII值数组
   for(i=0;i<1000;i++)
   {  asc[i] = ASC_value(str[i]);}
   
   ini_count(asc); //计算count的值

   //计算初始话key数组
   int temp;
   for(i=0;i<1000;i++)
   {
      temp=asc[i]-count;
      key[temp]=i;
   }
   
   //测试hash是否重复
   int flag=0;
   for(i=0;i<1000;i++)
   {
     if(key[i]==NULL) flag++;
   }
   //printf("HASH重复数量: %d\n",flag);

   //测试时间
   clock_t start,finish;
   char c[50];   //存储输入的域名
   int ans;      //输入域名的key值
   //输入域名
   //printf("输入域名:\n");
   //scanf("%s",c);
   c[50] = "sina.com.cn";
   //fp = fopen("list.txt","r");
   //hash部分
   start = clock();  //开始时间
   for(i=0;i<10000;i++)
   {
   //fgets(c,50,fp);
   ans = ASC_value(c);
   ans = ans-count;
   if(ans < 0)
   {printf("查找失败\n");}
    // exit(0); }
   else
   { printf("查找结果:");
   ans = key[ans];
   puts(str[ans]);
   }
   }
   finish = clock();   //结束时间
   //fclose(fp);
   double hash_time;
   //bubble(bs_str);
   //flashback(c);
   hash_time = (double)(finish - start);
   //printf("hash耗时: %f\n",hash_time);

   //二分查找部分
   bubble(bs_str);
   start = clock();   //开始时间
   /*for(i=0;i<10;i++)
   {
      puts(bs_str[i]);
   }*/
   //FILE *fp1;
   //fp1 = fopen("list.txt","r");
   for(i=0;i<10000;i++)
   {
   //fgets(c,50,fp1);
   //printf("redafile \n");
   flashback(c);
   //printf("flashback \n");
   //puts(c);
   ans = bs_check(bs_str,c);
   if(ans < 0)
   {
      printf("查找失败\n");
     // exit(0);
   }
   else
   {
      printf("查找结果:");
      puts(bs_str[ans]);
   }
   }
   finish = clock();  //结束时间
   double bs_time;
   //fclose(fp1);
   bs_time = (double)(finish - start);
   printf("hash耗时: %f\n",hash_time);
   printf("二分耗时: %f\n",bs_time);

   return 0;
}