电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

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

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

直接上代碼:

#左中右塔用一個列表存儲left = list()center = list()right = list()'''初始化函數'''def init(): size = input('(請友善輸入整數,未寫判斷!)請輸入層數:') #初始化塔列表,如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)'''打印樣式函數'''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='')'''控制臺打印結果'''def show(size): #修飾 print('-'*35) #循環層數等于size for i in range(size): # 打印左邊塔 printStyling(i,size,left) # 打印中間塔 printStyling(i,size,center) # 打印右邊塔 printStyling(i,size,right) #每行打印一個換行 print() #修飾 print('-' * 35)'''判斷可不可以移動takeOff減少,putOn增加,size層數,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 #步數+1 count += 1 #移動成功,返回剩余空間和步數 return tSize,pSize,count # 如果中塔最上方元素比左塔最上方元素大,即可以移動 elif putOn[pSize] > takeOff[tSize]: # 中塔當前最上方元素的再上一個元素(-1)賦上左塔最上方元素的值 putOn[pSize - 1] = takeOff[tSize] # 左塔最上方元素賦值-1 takeOff[tSize] = -1 # 左塔剩余空間+1 tSize += 1 # 中塔剩余空間-1 pSize -= 1 #步數+1 count += 1 # 移動成功,返回剩余空間和步數 return tSize,pSize,count # 否則不可以移動 else: print('操作無效!') return 0'''主要運行函數'''def main(): #初始化游戲 size = init() # 存放最初的盤剩余空間 lSize左塔 cSize中塔 rSize右塔 lSize = 0 cSize = size rSize = size #存放操作步數 count = 0 #打印游戲介紹 print('將左塔完整地移到右塔就是勝利!') print('左-1 中-2 右-3 退出請輸入:quit') print(’例如輸入:'1-2'就是將左塔的最上元素放到中塔’) print('%d層的最佳步數是%d'%(size,pow(2,size)-1)) #游戲進行 while True: print('當前移動了%d步'%(count)) #顯示當前塔的狀態 show(size) #判斷右塔是否沒有剩余空間,沒有即勝利,并退出游戲 if rSize == 0: if count == pow(2,size)-1:print('恭喜你使用最少步數完成漢諾塔!') 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()

運行結果:

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

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

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

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

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 数字展示在线_数字展示行业门户网站 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 | 杭州双螺杆挤出机-百科 | 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 净水器代理,净水器招商,净水器加盟-FineSky德国法兹全屋净水 | 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 阜阳成人高考_阜阳成考报名时间_安徽省成人高考网 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 桥架-槽式电缆桥架-镀锌桥架-托盘式桥架 - 上海亮族电缆桥架制造有限公司 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 顺辉瓷砖-大国品牌-中国顺辉 | 北京中创汇安科贸有限公司| 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 实木家具_实木家具定制_全屋定制_美式家具_圣蒂斯堡官网 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 学叉车培训|叉车证报名|叉车查询|叉车证怎么考-工程机械培训网 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) |