internal bool Reserve(int column, int size)
{
if ((column < 0) || ((column + size) > columns)) throw new Exception("reserve - incorrect column/size");
for (int i=column; i < column + size; i++) {
if (reserved[i]) {
// undo reserve
for (int j=i; j >= column; j--) {
reserved[j] = false;
}
return false;
}
reserved[i] = true;
}
return true;
}