- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
#Ханойские башни, для ручного решения.
start = [3,2,1]
a, b, c = [s for s in start], [], []
def printTower( n ):
s = ''
if n.lower() == 'a':
s = a
elif n.lower() == 'b':
s = b
elif n.lower() == 'c':
s = c
else:
raise
print(n.upper()+':',s)
def printTowers():
printTower('a')
printTower('b')
printTower('c')
def getLast( n ):
if n.lower() == 'a':
return 1000 if len(a)==0 else a[-1]
elif n.lower() == 'b':
return 1000 if len(b)==0 else b[-1]
elif n.lower() == 'c':
return 1000 if len(c)==0 else c[-1]
else:
raise
def getTower( n ):
if n.lower() == 'a':
return a
elif n.lower() == 'b':
return b
elif n.lower() == 'c':
return c
else:
raise
def moveTower():
fromP = input('С какой башни двигать?').lower()
toP = input('На какую башню двигать?').lower()
lastF = getLast(fromP)
lastT = getLast(toP)
if lastT>lastF:
getTower(toP).append(getTower(fromP).pop())
else:
raise
printTowers()
printTowers()
while b!=start:
moveTower()
Принял слабого снотворного и сел читать Корнилова (Программирование шахмат и других логических игр) (думал быстро усну, книга очень скучная).
Когда пришёл в себя увидел на экране ЭТО.
P.S. Оно работает.
CPPGovno 23.08.2011 06:39 # 0
guest 23.08.2011 07:40 # −2
Lure Of Chaos 23.08.2011 11:13 # +5
guest 23.08.2011 11:49 # +1
guest8 09.04.2019 11:22 # −999