+
+void Bot::sendInformation(){
+ cout << "inf\\" << endl;
+ cout << "inf/" << endl;
+}
+
+void Bot::getInformation(){
+ string input;
+ do{
+ getline(cin,input);
+ }while(input != "from/");
+}
+
+void Bot::sendPlan(){
+ cout << "plan\\" << endl;
+ cout << "plan/" << endl;
+}
+
+void Bot::getPlans(){
+ string input;
+ //ignore From-plan
+ do{
+ getline(cin,input);
+ }while(input != "from/");
+}
+
+void Bot::vote(){
+ cout << "vote\\" << endl;
+ cout << "vote: " << _name << endl;
+ priority_queue<pair<int,string> > players;
+ for (hash_map<string,int>::const_iterator player = _winningPlans.begin();
+ player != _winningPlans.end(); ++player){
+ players.push(pair<int,string>(-player->second, player->first));
+ }
+ while (players.size() > 0){
+ const pair<int,string>& player = players.top();
+ cout << "vote: " << player.second << endl;
+ //cerr << "voted for " << player.second << " with " << player.first << " previously won plans" << endl;
+ players.pop();
+ }
+ cout << "vote/" << endl;
+}
+
+void Bot::voteResult(){
+ string input;
+ getline(cin,input);
+ if (input != "nowinner:"){
+ string winner = value<string>(input);
+ if (winner != _name)
+ ++_winningPlans[winner];
+ }
+}