Ejemplo n.º 1
0
	bool TowerHanoi::move(int from, int to) {
		if (!this->towers[from]->empty()) {
			Disc* objFrom = this->towers[from]->front();
			if (!this->towers[to]->empty()) {
				Disc* objTo = this->towers[to]->front();
				if (objFrom->getCount() < objTo->getCount()) {
					this->towers[to]->push(this->towers[from]->pop());
					if ((to > 0) && (this->towers[to]->size() == this->discs)) {
						this->win = true;
					}
					return true;
				}
			} else {
				this->towers[to]->push(this->towers[from]->pop());
				return true;
			}
		}
		return false;
	}