void justine::sampleclient::MyShmClient::start ( boost::asio::io_service& io_service, const char * port ) { #ifdef DEBUG foo(); #endif boost::asio::ip::tcp::resolver resolver ( io_service ); boost::asio::ip::tcp::resolver::query query ( boost::asio::ip::tcp::v4(), "localhost", port ); boost::asio::ip::tcp::resolver::iterator iterator = resolver.resolve ( query ); boost::asio::ip::tcp::socket socket ( io_service ); boost::asio::connect ( socket, iterator ); int id = init ( socket ); pos ( socket, id ); unsigned int g {0u}; unsigned int f {0u}; unsigned int t {0u}; unsigned int s {0u}; std::vector<Gangster> gngstrs; for ( ;; ) { std::this_thread::sleep_for ( std::chrono::milliseconds ( 200 ) ); car ( socket, id, &f, &t, &s ); gngstrs = gangsters ( socket, id, t ); if ( gngstrs.size() > 0 ) g = gngstrs[0].to; else g = 0; if ( g > 0 ) { std::vector<osmium::unsigned_object_id_type> path = hasDijkstraPath ( t, g ); if ( path.size() > 1 ) { std::copy ( path.begin(), path.end(), std::ostream_iterator<osmium::unsigned_object_id_type> ( std::cout, " -> " ) ); route ( socket, id, path ); } } } }
void justine::sampleclient::ShmClient::start ( boost::asio::io_service& io_service, const char * port ) { foo(); boost::asio::ip::tcp::resolver resolver ( io_service ); boost::asio::ip::tcp::resolver::query query ( boost::asio::ip::tcp::v4(), "localhost", port ); boost::asio::ip::tcp::resolver::iterator iterator = resolver.resolve ( query ); boost::asio::ip::tcp::socket socket ( io_service ); boost::asio::connect ( socket, iterator ); int id = init ( socket ); pos ( socket, id ); bool fto {false}, ffrom {true}; for ( ;; ) { std::this_thread::sleep_for ( std::chrono::milliseconds ( 200 ) ); gangsters ( socket, id ); unsigned int f {0u}; unsigned int t {0u}; unsigned int s {0u}; car ( socket, id, &f, &t, &s ); if ( (t == 2969934868 || f == 2969934868) && !fto ) { route1 ( socket, id ); std::swap<bool> ( fto, ffrom ); } else if ( t == 1348670117 && !ffrom ) { route2 ( socket, id ); std::swap<bool> ( fto, ffrom ); } } }
void justine::sampleclient::MyShmClient::start10 ( boost::asio::io_service& io_service, const char * port ) { #ifdef DEBUG foo(); #endif boost::asio::ip::tcp::resolver resolver ( io_service ); boost::asio::ip::tcp::resolver::query query ( boost::asio::ip::tcp::v4(), "localhost", port ); boost::asio::ip::tcp::resolver::iterator iterator = resolver.resolve ( query ); boost::asio::ip::tcp::socket socket ( io_service ); boost::asio::connect ( socket, iterator ); std::vector<Cop> cops = initcops ( socket ); bool pursuit {false}; unsigned int g {0u}; unsigned int f {0u}; unsigned int t {0u}; unsigned int s {0u}; std::vector<Gangster> gngstrs; for ( ;; ) { std::this_thread::sleep_for ( std::chrono::milliseconds ( 200 ) ); for ( auto cop:cops ) { car ( socket, cop, &f, &t, &s ); if ( true ) { gngstrs = gangsters ( socket, cop, t ); if ( gngstrs.size() > 0 ) g = gngstrs[0].to; else g = 0; if ( g > 0 ) { if(dst(f, gngstrs[0].to) == 0) continue; std::vector<osmium::unsigned_object_id_type> path = hasDijkstraPathMy ( t, gngstrs ); if ( path.size() > 1 && pursuit==false ) { route ( socket, cop, path ); pursuit = true; } } } if(pursuit) { std::vector<osmium::unsigned_object_id_type> pathPur = hasDijkstraPath ( t, gngstrs[0].to ); if ( distanceMy(pathPur) < 150 || distanceMy(pathPur) > 1000 ) { route ( socket, cop, pathPur ); } else { std::vector<osmium::unsigned_object_id_type> pathPur2 = hasDijkstraPath ( t, gngstrs[0].from ); if ( pathPur2.size() > 0 && distanceMy(pathPur2) < distanceMy(pathPur) ) { route ( socket, cop, pathPur2 ); } } } if ( t == g ) pursuit = false; } } }
void justine::sampleclient::MyShmClient::start10 ( boost::asio::io_service& io_service, const char * port ) { #ifdef DEBUG foo(); #endif boost::asio::ip::tcp::resolver resolver ( io_service ); boost::asio::ip::tcp::resolver::query query ( boost::asio::ip::tcp::v4(), "localhost", port ); boost::asio::ip::tcp::resolver::iterator iterator = resolver.resolve ( query ); boost::asio::ip::tcp::socket socket ( io_service ); boost::asio::connect ( socket, iterator ); std::vector<Cop> cops = initcops ( socket ); unsigned int g {0u}; unsigned int f {0u}; unsigned int t {0u}; unsigned int s {0u}; std::vector<Gangster> gngstrs; int groupNum = 5, gngIt = 0; unsigned copGroups[groupNum]; for ( ;; ) { std::this_thread::sleep_for ( std::chrono::milliseconds ( 200 ) ); for (size_t copIt = 0; copIt < cops.size(); ++copIt) { car ( socket, cops[copIt], &f, &t, &s ); if(copIt < groupNum) { gngstrs = gangsters ( socket, cops[copIt], t ); if(gngstrs.size() > 0) copGroups[copIt] = gngstrs[0].to; } if(copIt != 0) { for(int j = 0; j < copIt; ++j) { if(copGroups[j] == copGroups[copIt]) { ++gngIt; copGroups[copIt] = gngstrs[gngIt].to; } } } if(copGroups[copIt % groupNum] > 0) { std::vector<osmium::unsigned_object_id_type> path = hasDijkstraPath ( t, copGroups[copIt % groupNum] ); if ( path.size() > 1 ) { std::copy ( path.begin(), path.end(), std::ostream_iterator<osmium::unsigned_object_id_type> ( std::cout, " -> " ) ); route ( socket, cops[copIt], path ); } } } } }