Search in sources :

Example 1 with FieldEncoder

use of common.tetfu.encorder.FieldEncoder in project solution-finder by knewjade.

the class Tetfu method encodeField.

private void encodeField(ColoredField prevField, ColoredField currentField) {
    FieldEncoder encoder = new FieldEncoder(prevField, currentField);
    boolean isChanged = encoder.encode();
    if (isChanged) {
        // フィールドを記録して、リピートを終了する
        encodedValues.addAll(encoder.getEncodedValues());
        lastRepeatIndex = -1;
    } else if (lastRepeatIndex < 0 || encodedValues.get(lastRepeatIndex) == ENCODE_TABLE_SIZE - 1) {
        // フィールドを記録して、リピートを開始する
        encodedValues.addAll(encoder.getEncodedValues());
        encodedValues.add(0);
        lastRepeatIndex = this.encodedValues.size() - 1;
    } else if (encodedValues.get(lastRepeatIndex) < (ENCODE_TABLE_SIZE - 1)) {
        // フィールドは記録せず、リピートを進める
        Integer currentRepeatValue = encodedValues.get(lastRepeatIndex);
        encodedValues.set(lastRepeatIndex, currentRepeatValue + 1);
    }
}
Also used : FieldEncoder(common.tetfu.encorder.FieldEncoder)

Aggregations

FieldEncoder (common.tetfu.encorder.FieldEncoder)1