void solve( boolean light[], boolean heavy[], char left[], char right[], int outcome ) { int i, j; char scale[MAXL + MAXL]; j = 0; for ( i = 0; left[i] != '\0'; i++ ) scale[j++] = left[i]; for ( i = 0; right[i] != '\0'; i++ ) scale[j++] = right[i]; scale[j] = '\0'; if ( outcome == -1 ) /* scale is down */ { clear_comp( light, scale ); clear_comp( heavy, scale ); clear_items( heavy, left ); clear_items( light, right ); } else if ( outcome == 0 ) /* scale is even */ { clear_items( light, scale ); clear_items( heavy, scale ); } else /* scale is up */ { clear_comp( light, scale ); clear_comp( heavy, scale ); clear_items( heavy, right ); clear_items( light, left ); } }
void LogCompStr::clear() { FOOTMARK(); clear_read(); clear_comp(); clear_result(); clear_extra(); fix(); }
void LogCompStr::MakeResult() { FOOTMARK(); // setting result_read_clause and result_read_str result_read_str.clear(); const size_t count = extra.hiragana_clauses.size(); result_read_clause.resize(count + 1); for (size_t i = 0; i < count; ++i) { result_read_clause[i] = DWORD(result_read_str.size()); result_read_str += lcmap(extra.hiragana_clauses[i], LCMAP_HALFWIDTH | LCMAP_KATAKANA); } result_read_clause[count] = DWORD(result_read_str.size()); result_clause = comp_clause; result_str = comp_str; clear_read(); clear_comp(); clear_extra(); fix(); }