Несколько программ, бесполезно пылятся на моём жестком диске несколько лет, они могли бы быть кому нибудь интересны . Буду их по немного выкладывать здесь.
Например решение ханойской башни.
Есть три параметра:
- Количество колец
- Задержка для каждого шага
- На какую сторону перекладывать
from os import systemfrom time import sleepstack1=[]stack2=[]stack3=[]def fill(s1,x):i=xwhile i>0:s1.append(i)i=i-1def move(row,direct):if row==1:if direct==1:stack2.append(stack1.pop())if direct==0:stack3.append(stack1.pop())if row==2:if direct==1:stack3.append(stack2.pop())if direct==0:stack1.append(stack2.pop())if row==3:if direct==1:stack1.append(stack3.pop())if direct==0:stack2.append(stack3.pop())def request(row,direct):if row==1:if direct==1:s1=stack1s2=stack2if direct==0:s1=stack1s2=stack3if row==2:if direct==1:s1=stack2s2=stack3if direct==0:s1=stack2s2=stack1if row==3:if direct==1:s1=stack3s2=stack1if direct==0:s1=stack3s2=stack2if s1==[]:return 0elif s2==[]:return 1v1=s1.pop()s1.append(v1)v2=s2.pop()s2.append(v2)if v1>v2:return 0elif v1<v2:return 1else:return -1print "XYNTA"def draw():try:system('cls')except:system('clear')print stack1print stack2print stack3def countstep(rang):j=2result=1rang=rang+1while j<rang:result=result*2+1j=j+1print '\n\nMESSAGE: Counting will take',result+2,'steps.'sleep(2)return result+2def solve(start,numer,direct,timesleep):i=1j=0if numer%2==0:if direct==2: dir=0elif direct==3: dir=1else:if direct==2: dir=1elif direct==3: dir=0parity=startnumer=countstep(rang)for i in range(1,numer):draw()print ('\n\n')print 'Step #:',isleep(timesleep)if i%2==0:var1=parity+1if var1>3: var1=1var2=parity-1if var2<1: var2=3if request(var1,1)==1:move(var1,1)continueelif request(var1,0)==1:move(var1,0)continueelif request(var2,1)==1:move(var2,1)continueelif request(var2,0)==1:move(var2,0)continueelse:if dir==1:move(parity,1)parity=parity+1if parity>3: parity=1continueelif dir==0:move(parity,0)parity=parity-1if parity<1: parity=3continuerang=input("Enter range(1-XX):")timesleep=input("Input Sleep Time(0.0-X.X):")side=input("Input OUT side(2 or 3):")fill(stack1,rang)solve(1,rang,side,timesleep)exit=input('\nPress any key for exit ')
много надо времени чтобы питон освоить?
ОтветитьУдалитьСам язык сверх легкий, разве что конструкции массива-цикла особенные.
ОтветитьУдалитьХаню~кские башни :3. Покормил колечком, протри башенку.
ОтветитьУдалитьdef Hanoi(n, A, C, B):
ОтветитьУдалитьif n != 0:
Hanoi(n - 1, A, B, C)
print 'Move the plate from', A, 'to', C
Hanoi(n - 1, B, C, A)