当前位置: 首页 > news >正文

保山市住房和城乡建设局网站做一个店铺小程序多少钱

保山市住房和城乡建设局网站,做一个店铺小程序多少钱,助君网络科技,厦门网络营销推广目录 汉诺塔游戏 完整游戏 后期展望 汉诺塔游戏 汉诺塔#xff08;Tower of Hanoi#xff09;#xff0c;是一个源于印度古老传说的益智玩具。这个传说讲述了大梵天创造世界的时候#xff0c;他做了三根金刚石柱子#xff0c;并在其中一根柱子上从下往上按照大小顺序摞…  目录 汉诺塔游戏 完整游戏 后期展望 汉诺塔游戏 汉诺塔Tower of Hanoi是一个源于印度古老传说的益智玩具。这个传说讲述了大梵天创造世界的时候他做了三根金刚石柱子并在其中一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门将这些圆盘从下面开始按大小顺序重新摆放在另一根柱子上并规定在小圆盘上不能放大圆盘同时在三根柱子之间一次只能移动一个圆盘。当盘子的数量增加时移动步骤的数量会呈指数级增长圆盘数为n时总步骤数steps为2^n - 1。 n 64 steps 2^64 - 1 18446744073709551616 ≈ 1.845 x 10^19 汉诺塔问题是一个递归问题也可以使用非递归法来解决例如使用栈来模拟递归过程。这个问题不仅是一个数学和逻辑问题也是一个很好的教学工具可以用来教授递归、算法和逻辑思考等概念。同时汉诺塔游戏也具有一定的娱乐性人们可以通过解决不同规模的汉诺塔问题来挑战自己的智力和耐心。 本篇接着上期讲下去前2篇的链接地址 Python 一步一步教你用pyglet制作汉诺塔游戏续-CSDN博客 Python 一步一步教你用pyglet制作汉诺塔游戏-CSDN博客 完整游戏 前2期代码的基础上添加了完整的提示功能一个汉诺塔游戏作品终于完工了效果如下 信息提示功能都放在了鼠标事件中 window.event def on_mouse_press(x, y, dx, dy):     global xy, hanns, gamecompleted     if not hanns.success():         pole hanns.on_mouse_over(x, y)         if pole is not None:             xy.append(pole)             if len(xy)1:                 hanns.setdiskcolor(xy[0], (255,0,0))                 if not hanns.array[pole]:                     hanns.setdiskcolor(xy[0])                     xy.pop()                     return         if len(xy)2:             if xy[0]!xy[1]:                 info hanns.move(*xy)                 hanns.setdiskcolor(xy[0])                 if info is False:                     info1.text 起始圆盘大于目标位置的圆盘                 elif info is None:                     info1.text 所选起始位置的塔架不能为空                 else:                     info1.text f{hanns.order-hanns.array[xy[1]][-1]}号圆盘从{xy[0]1}号塔架移动到{xy[1]1}号塔架             hanns.setdiskcolor(xy[0])             xy.clear()             info2.text f当前层数{hanns.order}\t最佳步数{2**hanns.order-1}\t当前步数{hanns.steps}         if hanns.success():             if hanns.order24:                 info1.text f恭喜您完成 {hanns.order} 层汉诺塔任意点击层数加一             else:                 info1.text f太棒了您已完成 {hanns.order} 层汉诺塔游戏结束                 gamecompleted True                 return     elif not gamecompleted:         hanns Hann(window.width/2, 120, hanns.order1)         info1.text f {hanns.order} 层汉诺塔游戏开始         info2.text f当前层数{hanns.order}\t最佳步数{2**hanns.order-1}\t当前步数{hanns.steps} Hann 类中增加一个改色的方法用于标注被点击的要移动的源塔架 def setdiskcolor(self, n, colorColor[0]):         self.disk[n].cir1.color color         self.disk[n].cir2.color color         self.disk[n].rect.color color 完整代码  import pygletwindow pyglet.window.Window(800, 500, caption汉诺塔) pyglet.gl.glClearColor(1, 1, 1, 1) batch pyglet.graphics.Batch()Color (182,128,18),(25,65,160),(56,170,210),(16,188,78),(20,240,20),(240,240,20),(255,128,20),(240,20,20),(245,60,138)class Disk:def __init__(self, x, y, color(0,0,0), width200, height20):self.cir1 pyglet.shapes.Circle(xwidth/2-height/2, y, radiusheight/2, colorcolor, batchbatch)self.cir2 pyglet.shapes.Circle(x-width/2height/2, y, radiusheight/2, colorcolor, batchbatch)self.rect pyglet.shapes.Rectangle(x-width/2height/2, y-height/2, width-height, height, colorcolor, batchbatch)def move(self, dx, dy):self.cir1.x dx; self.cir1.y dyself.cir2.x dx; self.cir2.y dyself.rect.x dx; self.rect.y dyclass Hann:def __init__(self, x, y, order2, space250, thickness20, width200, height300):assert(order1)self.pole [pyglet.shapes.Line(x-i*space, y, x-i*space, yheight, widththickness, colorColor[0], batchbatch) for i in range(-1,2)]self.disk [Disk(xi*space, y, colorColor[0], widthwidththickness, heightthickness) for i in range(-1,2)]self.x, self.y x, yself.order orderself.space spaceself.thickness thicknessself.width widthself.poleheight heightself.beadheight (height-thickness*2)/orderself.step (width-thickness)/(order1)self.steps 0self.macro []coordinates [(self.x-space, self.y(i1)*self.beadheight-(self.beadheight-thickness)/2) for i in range(order)]self.beads [Disk(*xy, Color[i%81], widthself.width-i*self.step, heightself.beadheight) for i,xy in enumerate(coordinates)]self.array [[*range(order)], [], []]def move(self, pole1, pole2):if self.array[pole1]:bead self.array[pole1].pop()if self.array[pole2] and beadself.array[pole2][-1]:self.array[pole1].append(bead)return Falseelse:return Noneself.beads[bead].move((pole2-pole1)*self.space, (len(self.array[pole2])-len(self.array[pole1]))*self.beadheight)self.array[pole2].append(bead)self.steps 1self.macro.append((pole1, pole2))return Truedef setdiskcolor(self, n, colorColor[0]):self.disk[n].cir1.color colorself.disk[n].cir2.color colorself.disk[n].rect.color colordef on_mouse_over(self, x, y):for i in range(-1,2):if hanns.x-hanns.width/2 x-i*hanns.space hanns.xhanns.width/2 and hanns.y-hanns.thickness/2 y hanns.yhanns.poleheight:return i1def success(self):return len(self.array[2]) self.orderwindow.event def on_draw():window.clear()batch.draw()window.event def on_mouse_press(x, y, dx, dy):global xy, hanns, gamecompletedif not hanns.success():pole hanns.on_mouse_over(x, y)if pole is not None:xy.append(pole)if len(xy)1:hanns.setdiskcolor(xy[0], (255,0,0))if not hanns.array[pole]:hanns.setdiskcolor(xy[0])xy.pop()returnif len(xy)2:if xy[0]!xy[1]:info hanns.move(*xy)hanns.setdiskcolor(xy[0])if info is False:info1.text 起始圆盘大于目标位置的圆盘elif info is None:info1.text 所选起始位置的塔架不能为空else:info1.text f{hanns.order-hanns.array[xy[1]][-1]}号圆盘从{xy[0]1}号塔架移动到{xy[1]1}号塔架hanns.setdiskcolor(xy[0])xy.clear()info2.text f当前层数{hanns.order}\t最佳步数{2**hanns.order-1}\t当前步数{hanns.steps}if hanns.success():if hanns.order24:info1.text f恭喜您完成 {hanns.order} 层汉诺塔任意点击层数加一else:info1.text f太棒了您已完成 {hanns.order} 层汉诺塔游戏结束gamecompleted Truereturnelif not gamecompleted:hanns Hann(window.width/2, 120, hanns.order1)info1.text f {hanns.order} 层汉诺塔游戏开始info2.text f当前层数{hanns.order}\t最佳步数{2**hanns.order-1}\t当前步数{hanns.steps}xy [] order 2 hanns Hann(window.width/2, 120, order) info1 pyglet.text.Label(操作方法鼠标先后点击起始和目标位置就能移动圆盘, font_size21, color(0,0,0,255), xwindow.width/2, y50, anchor_xcenter, batchbatch) info2 pyglet.text.Label(f当前层数{order}\t最佳步数{2**order-1}\t当前步数0, font_size18, color(0,0,0,255), x80, y450, batchbatch) gamecompleted Falsepyglet.app.run()后期展望 之后有空再优化一下代码再添加上音效、回放等功能游戏效果会理想些。还能把上期的自动演示功能也加进去就更加完美了。 本文完以下仅为凑字数请忽略 自动演示功能即把以下递归函数的结果展现出来即可 def hanoi(n, start, mid, end, movesNone):     if moves is None:         moves []     if n 1:         moves.append((start, end))     else:         hanoi(n-1, start, end, mid, moves)         moves.append((start, end))         hanoi(n-1, mid, start, end, moves)     return moves   for order in (4,7,8):     moves hanoi(order, 0, 1, 2)     print(len(moves)2**order-1)     print(moves) 运行结果 True [(0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2)] True [(0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (2, 0), (1, 0), (2, 1), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (1, 0), (2, 1), (2, 0), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (2, 0), (1, 0), (2, 1), (0, 2), (0, 1), (2, 1), (2, 0), (1, 0), (1, 2), (0, 2), (1, 0), (2, 1), (2, 0), (1, 0), (2, 1), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (2, 0), (1, 0), (2, 1), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (1, 0), (2, 1), (2, 0), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (1, 0), (2, 1), (2, 0), (1, 0), (2, 1), (0, 2), (0, 1), (2, 1), (2, 0), (1, 0), (1, 2), (0, 2), (1, 0), (2, 1), (2, 0), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (2, 0), (1, 0), (2, 1), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2), (1, 0), (2, 1), (2, 0), (1, 0), (1, 2), (0, 2), (0, 1), (2, 1), (0, 2), (1, 0), (1, 2), (0, 2)] True [(0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (2, 1), (0, 1), (2, 0), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2), (0, 1), (2, 0), (2, 1), (0, 1), (0, 2), (1, 2), (1, 0), (2, 0), (1, 2), (0, 1), (0, 2), (1, 2)]
http://www.pierceye.com/news/126030/

相关文章:

  • 提交网站的入口地址网站建设灬金手指下拉十五
  • 连云港建设局网站学校网站建设管理相关规定
  • 什么网站做玩具的外贸网站监控系统
  • 从事网站美工建设厦门网站制作企业
  • 网站后台传图片南昌做网站要多少钱
  • 网站包括什么国内最大的域名交易平台
  • 做营销型网站 公司哈尔滨展览设计公司
  • 网站设计费用多少钱产品网页设计教程
  • 深圳公司网站建设设计网站推广的意义和方法
  • 网站需要哪些费用免费营销型网站模版
  • 如何做购物网站的教程wordpress酷炫插件
  • 建设信用卡网站登录网站建设和微信小程序
  • 邓州企业网站艺术设计方案
  • 广州市住房住建局网站永久免费的云电脑
  • 建设网站后如何上线不用服务器做网站
  • 建站服务论坛国外做外贸哪个网站好些
  • 营销型网站试运营调忧仿别人网站
  • 低价网站制作企业云南网站开发公司
  • 成都市建设厅网站查询十九冶成都建设有限公司网站
  • 建电商网站要多少钱建设绿色食品网站
  • 建行个人网上登录入口优化网站结构一般包括
  • 好看的网站页面WordPress知更鸟主题怎样安装
  • 如何查网站是否备案免费建网站代码
  • 曲沃网站开发新注册的公司怎么做网站
  • 企业网站无线端怎么做塑胶科技东莞网站建设
  • 图片发到哪些网站 seo阜沙网站建设
  • 企业开源建站系统大连百度首页优化
  • 通辽做网站有没有智慧软文发稿平台
  • 网站别人做的我自己怎么续费福州网站建站公司
  • 青岛高端网站开发wordpress修改logo地址