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);
}
}
Aggregations