mumu
写手
写手
  • 铜币0枚
  • 威望0点
  • 贡献值0点
阅读:679回复:0

变态代码的意思。

楼主#
更多 发布于:2001-10-21 01:13
string colors("BGR"), comb(4, '.'), l(comb), guess;

  typedef map<int,int> M;

  struct Color {
    Color( M& cm, M& gm, int& color )
      : cm_(cm), gm_(gm), color_(color=0) { }
    void operator()( char c )
      { color_ += min( cm_[c], gm_[c] ); }
    M &cm_, &gm_;
    int& color_;
  };

  struct Count {
    Count( int& color, int& exact )
      : color_(color), exact_(exact=0) { }
    char operator()( char c, char g )
      { return ++cm_[c], ++gm_[toupper(g)],
               exact_ += c == toupper(g), '.'; }
   ~Count()
      { for_each( colors.begin(), colors.end(),
                  Color( cm_, gm_, color_ ) ); }
    M cm_, gm_;
    int &color_, &exact_;
  };

  char ChoosePeg()
    { return colors[rand() % colors.size()]; }

  int main() {
    int color, exact = 0;
    srand( time(0) ),
      generate( comb.begin(), comb.end(), ChoosePeg );
    while( exact < comb.length() ) {
      cout << "\n\nguess--> ", cin >> guess;
      transform( comb.begin(), comb.end(),
                 guess.begin(), l.begin(),
                 Count( color, exact ) );
      cout << color << ' ' << exact;
    }
    cout << " - solved!\n";
  }//大家才才看

王小波说:“中年妇女在中国是一种自然灾害,这倒不是因为她们不好看,而是因为她们故意要恶心人。” 一天,我乘坐公交车,一位MM突然转过头来对我说:“你帅吗?”我说:“我不帅!”MM突然给我一巴掌,并说:“我最讨厌说谎的人了!” 如果你更热爱金钱而非自由,更习惯于被奴役的安宁而畏惧令人充满活力的争取自由的抗争,那么,请你静静地走开。我们不会乞求你的建议或是帮助。伏下身去讨好那喂养你的人吧。但愿身上的锁链不会给你造成太多的痛苦,但愿未来的人们不会记起你曾经是我们的国人 Samuel Adams: 18世纪美国独立革命重要领袖,著有“殖民者的权利”
游客

返回顶部