国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

詳解python百行有效代碼實現(xiàn)漢諾塔小游戲(簡約版)

瀏覽:35日期:2022-07-06 16:54:48

直接上代碼:

#左中右塔用一個列表存儲left = list()center = list()right = list()'''初始化函數(shù)'''def init(): size = input('(請友善輸入整數(shù),未寫判斷!)請輸入層數(shù):') #初始化塔列表,如5層 左邊塔放 1-3-5-7-9,中間和右邊放5個-1 for i in range(1,int(size) + 1): left.append(i*2-1) center.append(-1) right.append(-1) return int(size)'''打印樣式函數(shù)'''def printStyling(i,size,ta): if ta[i] != -1: # 打印前空格 for kong in range(int(size - (ta[i] - 1) / 2)): print(' ', end='') # 打印塔元素 for le in range(ta[i]): print('X', end='') # 打印后空格 for kong in range(int(size - (ta[i] - 1) / 2)): print(' ', end='') # 左塔這一層為空格 else: # 打印前面空格 for kong in range(size): print(' ', end='') # 打印中間的棒棒 print('|', end='') # 打印后面的空格 for kong in range(size): print(' ', end='')'''控制臺打印結(jié)果'''def show(size): #修飾 print('-'*35) #循環(huán)層數(shù)等于size for i in range(size): # 打印左邊塔 printStyling(i,size,left) # 打印中間塔 printStyling(i,size,center) # 打印右邊塔 printStyling(i,size,right) #每行打印一個換行 print() #修飾 print('-' * 35)'''判斷可不可以移動takeOff減少,putOn增加,size層數(shù),tSize和pSize剩余空間'''def judge(takeOff,putOn,size,tSize,pSize,count): # 如果左塔的空間空的,就是沒有元素可移動 if takeOff == size: print('操作無效!') return 0 # 如果中塔為空,可以移動 if pSize == size: # 中間的最后一個元素賦上左塔的第一個元素的值 putOn[pSize - 1] = takeOff[tSize] # 左塔的第一個元素賦值-1 takeOff[tSize] = -1 # 左塔的剩余空間+1 tSize += 1 # 中塔的剩余空間-1 pSize -= 1 #步數(shù)+1 count += 1 #移動成功,返回剩余空間和步數(shù) return tSize,pSize,count # 如果中塔最上方元素比左塔最上方元素大,即可以移動 elif putOn[pSize] > takeOff[tSize]: # 中塔當(dāng)前最上方元素的再上一個元素(-1)賦上左塔最上方元素的值 putOn[pSize - 1] = takeOff[tSize] # 左塔最上方元素賦值-1 takeOff[tSize] = -1 # 左塔剩余空間+1 tSize += 1 # 中塔剩余空間-1 pSize -= 1 #步數(shù)+1 count += 1 # 移動成功,返回剩余空間和步數(shù) return tSize,pSize,count # 否則不可以移動 else: print('操作無效!') return 0'''主要運行函數(shù)'''def main(): #初始化游戲 size = init() # 存放最初的盤剩余空間 lSize左塔 cSize中塔 rSize右塔 lSize = 0 cSize = size rSize = size #存放操作步數(shù) count = 0 #打印游戲介紹 print('將左塔完整地移到右塔就是勝利!') print('左-1 中-2 右-3 退出請輸入:quit') print(’例如輸入:'1-2'就是將左塔的最上元素放到中塔’) print('%d層的最佳步數(shù)是%d'%(size,pow(2,size)-1)) #游戲進行 while True: print('當(dāng)前移動了%d步'%(count)) #顯示當(dāng)前塔的狀態(tài) show(size) #判斷右塔是否沒有剩余空間,沒有即勝利,并退出游戲 if rSize == 0: if count == pow(2,size)-1:print('恭喜你使用最少步數(shù)完成漢諾塔!') else:print('恭喜你只移動了%d步完成漢諾塔小游戲!'%(count)) break #獲取玩家操作 select = input('請操作:') #左塔移中塔 if select == '1-2': result = judge(left,center,size,lSize,cSize,count) if result == 0:continue else:lSize,cSize,count = result #左塔移右塔,下面同樣 elif select == '1-3': result = judge(left, right, size, lSize, rSize,count) if result == 0:continue else:lSize, rSize,count = result elif select == '2-1': result = judge(center, left, size, cSize, lSize,count) if result == 0:continue else:cSize, lSize,count = result elif select == '2-3': result = judge(center, right, size, cSize, rSize,count) if result == 0:continue else:cSize, rSize,count = result elif select == '3-1': result = judge(right, left, size, rSize, lSize,count) if result == 0:continue else:rSize, lSize,count = result elif select == '3-2': result = judge(right, center, size, rSize, cSize,count) if result == 0:continue else:rSize, cSize ,count= result #輸入quit退出游戲 elif select == 'quit': break #如果輸入的是其他不識別的文字,就拜拜 else: print('操作有誤!') continuemain()

運行結(jié)果:

詳解python百行有效代碼實現(xiàn)漢諾塔小游戲(簡約版)

詳解python百行有效代碼實現(xiàn)漢諾塔小游戲(簡約版)

詳解python百行有效代碼實現(xiàn)漢諾塔小游戲(簡約版)

詳解python百行有效代碼實現(xiàn)漢諾塔小游戲(簡約版)

到此這篇關(guān)于詳解python百行有效代碼實現(xiàn)漢諾塔小游戲(簡約版)的文章就介紹到這了,更多相關(guān)python 漢諾塔 內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产精品极品 | 成年人免费网站在线观看 | 色伦网| 欧美一级片在线免费观看 | 久久精品国产亚洲精品2020 | 亚洲香蕉久久一区二区三区四区 | 不卡一区在线观看 | 国产精品爱久久久久久久小 | 乱人伦中文字幕视频 | 天堂8在线天堂资源bt | 成人观看网站a | 一级成人毛片免费观看欧美 | 一区二区三区中文国产亚洲 | 欧美成人午夜在线全部免费 | 成人国产一区二区三区精品 | 91香蕉视频成人 | 91国内精品久久久久怡红院 | 久久久久久久国产精品 | 男女无遮挡拍拍拍免费1000 | 久久伊人免费视频 | 99视频在线免费看 | 大量真实偷拍情侣视频野战 | 欧美成人极品怡红院tv | 亚洲综合色一区二区三区另类 | 久久精品视频3 | 欧美激情精品久久久久久久九九九 | 一本色道久久综合亚洲精品 | 成年人免费网站在线观看 | 色视频在线免费 | 在线观看99 | 亚洲美女高清aⅴ视频免费 亚洲美女黄色片 | 蘑菇午夜三级 | 美女图片131亚洲午夜 | 日本一级大黄毛片免费基地 | 看黄免费网站 | 亚洲自拍偷拍网 | 欧美成人伊人十综合色 | 尤蜜网站在线进入免费 | 在线成人aa在线看片 | 欧美做a欧美| 手机在线免费毛片 |