Exemple #1
0
double SCL::flux(const Point<DIM>& p,
                 double u_l, double u_r,
                 const std::vector<double>& n) const 
{
  std::vector<double> f_l((*_f_)(p, u_l));
  std::vector<double> f_r((*_f_)(p, u_r));
  double alpha0 = (*_v_)(p, u_l);
  double alpha1 = (*_v_)(p, u_r);
  double alpha = std::max(alpha0, alpha1);
  return 0.5*((innerProduct(f_l, n) + innerProduct(f_r, n)) -
              alpha*(u_r - u_l));
}
void RogueScene::logMessage(const char * pszFormat, ...)
{
    char szBuf[kMaxLogLen+1] = {0};
    va_list ap;
    va_start(ap, pszFormat);
    vsnprintf(szBuf, kMaxLogLen, pszFormat, ap);
    va_end(ap);
    
    CCLOG("logMessage: %s", szBuf);
    
    auto pGameLogNode = getChildByTag(RogueScene::kGameLogTag);
    // とりあえず子要素がないなら無理
    if (!pGameLogNode || pGameLogNode->getChildrenCount() <= 0)
    {
        return;
    }
    
    auto pGameLogText = static_cast<LabelTTF*>(pGameLogNode->getChildren().at(0)); // TODO: 1子しかaddしてないから動く。ちゃんとしないと・・・
    if (pGameLogText)
    {
        // TODO: 別クラスにしてログをlistで保持する。デフォルトの表示は1件だけで、center寄せ表示でいいかと
        auto pMessage = String::create(szBuf);
        
        pMessage->append("\n");

        std::string nowString = pGameLogText->getString();
        
        int count = f_r(nowString, '\n');
        
        // 3行まで表示
        if (count >= 3)
        {
            int size = nowString.size();
            unsigned int loc = nowString.find_last_of('\n', size);
            CCLOG("logMessage: loc = %d size = %d", loc, size);
            if (loc != std::string::npos)
            {
                nowString.erase(loc, nowString.size() - loc);
            }
        }
        pMessage->append(nowString);
        pGameLogText->setString(pMessage->getCString());
        pGameLogText->setVerticalAlignment(cocos2d::TextVAlignment::TOP);
        pGameLogText->setHorizontalAlignment(cocos2d::TextHAlignment::LEFT);
        pGameLogText->setPosition(Point(pGameLogText->getFontSize() / 4 + pGameLogText->getContentSize().width / 2, pGameLogNode->getContentSize().height - pGameLogText->getContentSize().height / 2 - pGameLogText->getFontSize() / 4));
    }
}
Exemple #3
0
// -------------------------------------------------------
// test
int main()
{
  auto print = [](auto v) {  std::cout << v << std::endl; };

  print (f_r (-1)); // (f-r -1)
  print (f_r (0));  // (f-r  0)
  print (f_r (1));  // (f-r  1)
  print (f_r (2));  // (f-r  2)
  print (f_r (3));  // (f-r  3)
  print (f_r (4));  // (f-r  4)
  print (f_r (5));  // (f-r  5)
  print ("");
  print (f_i (-1)); // (f-i -1)
  print (f_i (0));  // (f-i  0)
  print (f_i (1));  // (f-i  1)
  print (f_i (2));  // (f-i  2)
  print (f_i (3));  // (f-i  3)
  print (f_i (4));  // (f-i  4)
  print (f_i (5));  // (f-i  5)  
}
Exemple #4
0
N f_r (N n)
{
    return n < 3 ? n :
           f_r(n-1) + 2*f_r(n-2) + 3*f_r(n-3);
}
std::size_t f_r(const std::string& s, char c)
{
    std::string::size_type pos = s.find(c);
    return (pos == std::string::npos) ? 0 : (1 + f_r(s.substr(pos+1), c));
}