From b2f1d9c337a104f1f2f52d87f03f53c5431313f2 Mon Sep 17 00:00:00 2001 From: WILFRIED NJANGUI Date: Sun, 14 Apr 2019 13:58:16 +0200 Subject: [PATCH] implementation of tower_of_hanoi algorithm (#756) --- maths/Hanoi.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 maths/Hanoi.py diff --git a/maths/Hanoi.py b/maths/Hanoi.py new file mode 100644 index 000000000..dd04d0fa5 --- /dev/null +++ b/maths/Hanoi.py @@ -0,0 +1,24 @@ +# @author willx75 +# Tower of Hanoi recursion game algorithm is a game, it consists of three rods and a number of disks of different sizes, which can slide onto any rod + +import logging + +log = logging.getLogger() +logging.basicConfig(level=logging.DEBUG) + + +def Tower_Of_Hanoi(n, source, dest, by, mouvement): + if n == 0: + return n + elif n == 1: + mouvement += 1 + # no print statement (you could make it an optional flag for printing logs) + logging.debug('Move the plate from', source, 'to', dest) + return mouvement + else: + + mouvement = mouvement + Tower_Of_Hanoi(n-1, source, by, dest, 0) + logging.debug('Move the plate from', source, 'to', dest) + + mouvement = mouvement + 1 + Tower_Of_Hanoi(n-1, by, dest, source, 0) + return mouvement