int hpx_main(int argc, char** argv_init) { hpx::new_<test_server>(hpx::find_here(), moveonly()).get(); HPX_TEST_EQ(constructed_from_moveonly.load(), 1); moveable o; hpx::new_<test_server>(hpx::find_here(), o).get(); HPX_TEST_EQ(constructed_from_moveable.load(), 1); hpx::new_<test_server>(hpx::find_here(), moveable()).get(); HPX_TEST_EQ(constructed_from_moveable.load(), 2); return hpx::finalize(); }
void flood(int x, int y, int flooded[200][200]) { int front=1,rear=0; flooded[x][y]=0; memset(visited, false, sizeof(visited)); queueX[0]=x, queueY[0]=y, visited[x][y]=true; while(rear<front) { if(!(move[queueX[rear]][queueY[rear]]&1)) { if(moveable(queueX[rear],queueY[rear]-1)) { queueX[front]=queueX[rear]; queueY[front]=queueY[rear]-1; if(!visited[queueX[front]][queueY[front]]) { visited[queueX[front]][queueY[front]]=true; flooded[queueX[front]][queueY[front]]=flooded[queueX[rear]][queueY[rear]]+1; front++; } } } if(!(move[queueX[rear]][queueY[rear]]&2)) { if(moveable(queueX[rear]-1,queueY[rear])) { queueX[front]=queueX[rear]-1; queueY[front]=queueY[rear]; if(!visited[queueX[front]][queueY[front]]) { visited[queueX[front]][queueY[front]]=true; flooded[queueX[front]][queueY[front]]=flooded[queueX[rear]][queueY[rear]]+1; front++; } } } if(!(move[queueX[rear]][queueY[rear]]&4)) { if(moveable(queueX[rear],queueY[rear]+1)) { queueX[front]=queueX[rear]; queueY[front]=queueY[rear]+1; if(!visited[queueX[front]][queueY[front]]) { visited[queueX[front]][queueY[front]]=true; flooded[queueX[front]][queueY[front]]=flooded[queueX[rear]][queueY[rear]]+1; front++; } } } if(!(move[queueX[rear]][queueY[rear]]&8)) { if(moveable(queueX[rear]+1,queueY[rear])) { queueX[front]=queueX[rear]+1; queueY[front]=queueY[rear]; if(!visited[queueX[front]][queueY[front]]) { visited[queueX[front]][queueY[front]]=true; flooded[queueX[front]][queueY[front]]=flooded[queueX[rear]][queueY[rear]]+1; front++; } } } rear++; } }
void status_machine_imp::self_moveable(int status) { moveable(status,status); }
void status_machine_imp::bidirec_moveable(int first ,int second) { moveable(first,second); moveable(second,first); }