コード例 #1
0
ファイル: field.cpp プロジェクト: SlashLife/tictactoe
void tictactoe::field::print(std::ostream &os, empty_tile_caption_callback on_empty) const {
    const std::string::size_type
        caption_length = num_digits(this->size()),
        player_state_padding_length = caption_length / 2; // truncation by int division is intentional
    const std::string
        player_state_padding = std::string(player_state_padding_length, ' '),
        X(player_state_padding + ((caption_length % 2) ? "X" : "><") + player_state_padding),
        O(player_state_padding + ((caption_length % 2) ? "O" : "()") + player_state_padding),

        row_separator("\n +" + repeat_string(std::string(2 + caption_length, '-') + "+", order()) + " \n");
    const char
        * const field_separator(" | ");

    for(size_type index=0; index < size(); ++index) {
        if (0 == index % order()) {
            // first field in a new row
            os << row_separator << field_separator;
        }

        switch(tiles[index]) {
        case tile::empty:
            os << on_empty(caption_length, index);
            break;
        case tile::player1:
            os << X;
            break;
        case tile::player2:
            os << O;
            break;
        // no default case - issue warning if cases are not specifically handled
        }
        os << field_separator;
    }
    os << row_separator;
}
コード例 #2
0
ファイル: ls.c プロジェクト: abzde/dock9
string arrange_string(string str, int width)
{
   int i, j, maxi, len;
   string stripped_colours;

   if (!width) return "";

   len = strlen(stripped_colours = strip_colours(str));

   if (len < width)
       return str + repeat_string(" ", width - len);
   if (len == width) return str;

   /* Full str indexed by i. Visible chars in stripped_colours indexed by j */
   j = 0;
   maxi = strlen(str);

   for (i = 0 ; i < maxi ; i++)
   {
       if (str[i] == stripped_colours[j])
       {
           j++;
           if(j >= width) break;
       }
   }

   return str[0..i];
}
コード例 #3
0
ファイル: rankd.c プロジェクト: lostsnow/dtxy
string query_rank(object ob)
{
    string rank=_query_rank(ob);
    string s1,s2,s3;
    int len, len1, len2;
    
    if(sscanf(rank,"%s【%s】%s",s1,s2,s3)!=3) return rank;
    len=14-sizeof(s2);
    if(len<1) return rank;

    len1=len/2;
    len2=len-len1;
    if(len1) s2=repeat_string(" ",len1)+s2;
    if(len2) s2+=repeat_string(" ",len2);
    
    return s1+"【"+s2+"】"+s3;
}
コード例 #4
0
Strdeq_t repeat_rclass(const RTree_t *nptr)
{
   Strdeq_t opsd; /* output string deque */
   Intdeq_t ideq = get_series(nptr); /* next rule string deque */
   Strdeq_t nrsd = rule_interpreter(nptr->next);
   Intdeqitr_t i = ideq.begin();
   print_deque(nrsd);
   for( ; i != ideq.end(); ++i)
   {
      Strdeqitr_t s = nrsd.begin();
      for( ; s != nrsd.end(); ++s)
         opsd.push_back(repeat_string((*s).data(), *i));
   }
   return opsd;
}
コード例 #5
0
ファイル: 13.c プロジェクト: thefallentree/fluffos
void do_tests() {
  sprintf("%.9" + repeat_string("9", 8000) + "f", MAX_FLOAT);
}
コード例 #6
0
ファイル: generate_cpp.cpp プロジェクト: RickMoynihan/circa
 void unindent()
 {
     currentIndent--;
     repeat_string(" ", currentIndent * kSpacesPerIndent, &indentStr);
 }
コード例 #7
0
ファイル: generate_cpp.cpp プロジェクト: RickMoynihan/circa
 SourceWriter() : currentIndent(0), startNewLine(true) {
     repeat_string(" ", currentIndent * kSpacesPerIndent, &indentStr);
 }