Warning: session_start(): open(/var/lib/php/sessions/sess_aqlea4gd4kov33407q7smoa3f7, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
persistable sclass UpDownSequence extends RandomAccessAbstractList {
new BitBuffer moves; // up is true
*(S s) {
for (c : characters(upper(s)))
if (c == 'U') add(UpDown.up);
else if (c == 'D') add(UpDown.down);
}
public UpDown get(int i) {
ret UpDown.fromBool(moves.get(i));
}
public bool add(UpDown move) {
moves.add(move.bit);
true;
}
toString { ret join(countIterator moveChar(size())); }
S moveChar(int i) { ret moves.get(i) ? "U" : "D"; }
public int size() { ret moves.size(); }
void addUp { add(UpDown.up); }
void addDown { add(UpDown.down); }
static UpDownSequence fromCellNumbers(L cellNumbers) {
new UpDownSequence seq;
if (nempty(cellNumbers)) {
int cn = first(cellNumbers);
for (int i = 1; i < l(cellNumbers); i++) {
int cn2 = cellNumbers.get(i);
int cn3 = clamp(cn2, cn-10, cn+10);
while (cn3 > cn) {
ping();
++cn;
seq.addUp();
}
while (cn3 < cn) {
ping();
--cn;
seq.addDown();
}
cn = c2;
}
}
ret seq;
}
}