void OnPrivmsgChannel(User *u, Channel *c, const Flux::vector ¶ms) { //Flux::vector MessageParams = StringVector(params, ' '); Flux::string msg; for(unsigned i=0; i < params.size(); ++i) msg += params[i]+' '; Flux::string cmd = params.empty()?"":params[0]; if(cmd.equals_ci("!encyclopedia")) { SetQuery(1, params); Brain(u,query); } if(msg.search_ci(Config->BotNick+", what do you know about ")) { SetQuery(6, params); Brain(u, query); } else if(msg.search_ci(Config->BotNick+", what is a ") ^ msg.search_ci(Config->BotNick+", what is the") ^ msg.search_ci(Config->BotNick+", tell me about ") ^ msg.search_ci(Config->BotNick+", who are the ") ^ msg.search_ci(Config->BotNick+", what is an ")) { SetQuery(4, params); Brain(u, query); } else if(msg.search_ci(Config->BotNick+", what is ") ^ msg.search_ci(Config->BotNick+", what are ") ^ msg.search_ci(Config->BotNick+", who is ") ^ msg.search_ci(Config->BotNick+", what's a ") ^ msg.search_ci(Config->BotNick+", what's an ")) { SetQuery(3, params); Brain(u, query); } else if(msg.search_ci(Config->BotNick+", tell me what you know about ")) { SetQuery(7, params); Brain(u, query); } }
//! Default constructor creates a random creature. Creature::Creature() { fitness_ = -1.0f; int n_joints = body_.GetTotalNumberOfJoints(); brain_ = Brain(n_joints + 4 + 3*(n_joints+1), n_joints); }