diff --git a/tests/tower_of_hanoi.aer b/tests/tower_of_hanoi.aer new file mode 100644 index 0000000..bb61511 --- /dev/null +++ b/tests/tower_of_hanoi.aer @@ -0,0 +1,22 @@ +class Hanoi { + + public void towerOfHanoi(int $diskCount, int $fromPole, int $toPole, int $viaPole) { + if($diskCount == 1) { + printf('Move disk from pole ' + $fromPole + ' to pole ' + $toPole + "\n"); + } else { + $this->towerOfHanoi($diskCount - 1, $fromPole, $viaPole, $toPole); + $this->towerOfHanoi(1, $fromPole, $toPole, $viaPole); + $this->towerOfHanoi($diskCount - 1, $viaPole, $toPole, $fromPole); + } + } + +} + +class Program { + + public void main() { + object $hanoi = new Hanoi(); + $hanoi->towerOfHanoi(4, 1, 2, 3); + } + +} diff --git a/tests/tower_of_hanoi.exp b/tests/tower_of_hanoi.exp new file mode 100644 index 0000000..78b47b3 --- /dev/null +++ b/tests/tower_of_hanoi.exp @@ -0,0 +1,15 @@ +Move disk from pole 1 to pole 3 +Move disk from pole 1 to pole 2 +Move disk from pole 3 to pole 2 +Move disk from pole 1 to pole 3 +Move disk from pole 2 to pole 1 +Move disk from pole 2 to pole 3 +Move disk from pole 1 to pole 3 +Move disk from pole 1 to pole 2 +Move disk from pole 3 to pole 2 +Move disk from pole 3 to pole 1 +Move disk from pole 2 to pole 1 +Move disk from pole 3 to pole 2 +Move disk from pole 1 to pole 3 +Move disk from pole 1 to pole 2 +Move disk from pole 3 to pole 2