Exemple #1
0
main()
{
      int perm[max];
      int n;
      scanf("%d", &n);
      //int pmain[2][6]; // In general pmain[no of entries][no. of rearrangements assuming distinct numbers, i.e fac[n]]
      int i;
      for(i=0; i<=n-1; ++i)
      {
               scanf("%d", &perm[i]);
               }
      int k;
      k= perm[1];
      permutator(perm, n, max);
      follower(perm, n, 0, max);     
      
      
      
      
      
      
      
      
      
      
      
      
      
      getch();
}
int main(int argc,char** argv){
		int found = 0, arrived_home = 0;
		int use_http = 0;
		char address[200];
		int port = 55555;
		strcpy(address, "localhost");
    
		if(argc >= 4){
            use_http = atoi(argv[1]);
            strncpy(address, argv[2], 200);
            port = atoi(argv[3]);
		}else{
            printf("[INFO] Usage: 'prog 1 address port' to start it with http connection\n");
		}

	    //initalization
		init(use_http, address, port);
	  
		//install signal handler to exit gently
		signal(SIGINT,sigint_handler);
    
		//scheduling
		while(!end_game && !arrived_home){
			if(robot_rank == 0){
				// Leader mode
				if(found == 0){ 
					found = leader();
                }else{
                    arrived_home = go_back_home();
                    send_lead(next);
                }
            }else{
                 // Follower mode
                 while(robot_rank > 0 && !end_game){
					follower();
				 }//######################aggiunger end game e stop anche nel leader e go back home etc
                 //follower call back called at each action messagge
            }
		}

		if(end_game){
            printf("[STATUS] Game ended\n");
		}else{
            printf("[STATUS] Back home\n");
		}
       
		reset_motors();
		destroy_sensors(); 
		destroy_motors();
		destroy_bluetooth();
		free(positions);
}
Exemple #3
0
void
keepdogs()
{
	struct monst *mtmp;

	for(mtmp = fmon; mtmp; mtmp = mtmp->nmon)
	    if(dist(mtmp->mx,mtmp->my) < 3 && follower(mtmp)
		&& !mtmp->msleep && !mtmp->mfroz) {
		relmon(mtmp);
		mtmp->nmon = mydogs;
		mydogs = mtmp;
		unpmon(mtmp);
		keepdogs();	/* we destroyed the link, so use recursion */
		return;		/* (admittedly somewhat primitive) */
	}
}
Exemple #4
0
int main(int argc, char **argv)
{
	init_raft(argv[1]);

	while (1) {
		switch (role) {
		case FOLLOWER:
			follower();
			break;
		case CANDIDATE:
			candidate();
			break;
		case LEADER:
			leader();
			break;
		default:
			break;
		}
	}
	return 0;
}
Exemple #5
0
void Cocklebur::process() {

    CockLeaderElection cockLeaderElection(this);
    Leader leader(this);
    startCockServer( &leader );

    while(true) {

	switch( d_cur_node_mode ) { 

	case LOOKING:
	    cout<<"_DEBUG: Enter looking process."<<endl;
	    cockLeaderElection.lookForLeader(); 
	    break;
	case FOLLWING:
	    cout<<"_DEBUG: Enter following process."<<endl;
	    // apply lease from leader
	    {
		Follower follower(this);
		follower.following();
	    }
	    break;
	case LEADERING:
	    cout<<"_DEBUG: Enter leadering process."<<endl;
	    // recevie heartbeat from followers and observers
	    {
		leader.reset();
		leader.leadering();
	    }
	    break;
	default:
	    cout<<"_DEBUG: No match mode for "<<d_cur_node_mode<<endl;
	    break;
	}
    }
}