diff options
author | Otto Moerbeek <otto@cvs.openbsd.org> | 2003-12-09 12:49:02 +0000 |
---|---|---|
committer | Otto Moerbeek <otto@cvs.openbsd.org> | 2003-12-09 12:49:02 +0000 |
commit | d29dfe98545e37462892fc09086f7e3a26113fd9 (patch) | |
tree | 16b0b4ed95c5ec602b56c48faa67577426b4bbb5 /regress/usr.bin/bc/t18.in | |
parent | ca9cca296a75d6ec551ed6d989d5dda291cf8ce5 (diff) |
Towers of Hanoi regression test.
BSD license with permission from author Amit Singh <amit_s at acm dot org>.
Diffstat (limited to 'regress/usr.bin/bc/t18.in')
-rw-r--r-- | regress/usr.bin/bc/t18.in | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/regress/usr.bin/bc/t18.in b/regress/usr.bin/bc/t18.in new file mode 100644 index 00000000000..1f989a228b8 --- /dev/null +++ b/regress/usr.bin/bc/t18.in @@ -0,0 +1,45 @@ +/* $OpenBSD: t18.in,v 1.1 2003/12/09 12:49:01 otto Exp $ */ +/* + * Copyright (c) 2003 Amit Singh <amit_s@acm.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * The Towers Of Hanoi + * bc version + * http://hanoi.kernelthread.com + */ + +define moveit(i, j) { + print "move " + print i + print " --> " + print j + print "\n" +} + +define dohanoi(n, h, d, o) { + if (n > 0) { + silence = dohanoi(n-1, h, o, d) + silence = moveit(h, d) + silence = dohanoi(n-1, o, d, h) + } +} + +define hanoi(n) { + silence = dohanoi(n, 1, 3, 2) +} + +hanoi(5) + |