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

微信菜单栏那些网站怎么做cms管理手机网站模板

微信菜单栏那些网站怎么做,cms管理手机网站模板,竞价恶意点击立案标准,福州软件优化网站建设参考链接#xff1a; 闲谈2048小游戏和数组的旋转及翻转和转置 目录 2048 一、方阵类 二、随机插入1或2 三、 合并和递增 四、 判断和移动 五、 键盘控制 完整源代码 玩法过程 2048 上回说到2048小游戏中数组的各种旋转、翻转的方法#xff0c;就是为代码编程作准… 参考链接 闲谈2048小游戏和数组的旋转及翻转和转置 目录 2048  一、方阵类 二、随机插入1或2 三、 合并和递增 四、 判断和移动 五、 键盘控制 完整源代码 玩法过程 2048  上回说到2048小游戏中数组的各种旋转、翻转的方法就是为代码编程作准备的有了这些再就加上二维数组各行列上元素的合并、能否被合并的判断、成功失败的判断等等以及再加上键盘按键的控制小游戏就基本完成了。 一、方阵类 方阵就是高宽相同的矩阵2048用方阵就行了写代码也省事一点方阵的类如下 from random import sample class Matrix: ...     def __init__(self, order4): ...         self.order order ...         self.matrix self.new() ...     def __repr__(self): ...         m, n [], len(str(2**max(sum(self.matrix,[])))) ...         for mat in self.matrix: ...             m.append(, .join(f{2**x if x else 0:{n}} for x in mat)) ...         return ],\n [.join(m).join([[[,]]]) ...     def new(self): ...         n self.order ...         m sample([0]*(n*n-2)sample([0,1,1],2),n*n) ...         return  [m[i*n:i*nn] for i in range(n)] ...  ...      Matrix() [[0, 0, 2, 0],  [0, 0, 0, 0],  [0, 0, 2, 0],  [0, 0, 0, 0]] Matrix() [[0, 0, 0, 0],  [0, 0, 0, 0],  [0, 0, 2, 0],  [0, 0, 0, 0]] 在方阵中随机产生1~2个1sample([0,1,1],2) 生成的1个还是2个比例为2:1 在__repr__方法中显示时这些1作为2的指数所以显示为2^12。 二、随机插入数字 def insert(self):         n self.order         m [i for i,n in enumerate(sum(self.matrix,[])) if not n]         if m:             i sample(m, 1)[0]             self.matrix[i//n][i%n] sum(sample([1,1,1,2],1)) 或者 def insert(self):         n self.order         m [(i,j) for j in range(n) for i in range(n) if not self.matrix[i][j]]         if m:             i, j sample(m, 1)[0]             self.matrix[i][j] sum(sample([1,1,1,2],1)) 为加快数字的拼合速度从5队开始除了只插入1和2可以考虑加入更大的数字 self.matrix[i][j] sum(sample([1,1,1,2]*3([1,2,3,3][i for i in range(n4,n,-1)] if n4 else []),1)) 如 n 5 时拟插入的各数字比例为 n 5 t [1,1,1,2]*3[1,2,3,3][i for i in range(n4,n,-1)] for i in set(t): ...     print([i,t.count(i)/20]) ...  ...      [1, 0.5] [2, 0.2] [3, 0.1] [6, 0.05] [7, 0.05] [8, 0.05] [9, 0.05]  三、 合并和递增 ......         for i,array in enumerate(self.matrix):             self.matrix[i] Matrix.update(array)     ......     def update(array):         split lambda a: [_ for _ in a if _][_ for _ in a if not _]         array split(array)         for i,a in enumerate(array):             if i and a and aarray[i-1]:                 array[i-1] 1                 array[i] 0         return split(array) 四、 判断和移动 略……写得有点复杂可以到完整代码中阅读。 五、 键盘控制 引入keyboard库控制键盘示例如下 import keyboard def keys0(): print(Left key pressed) def keys1(): print(Right key pressed) def keys2(): print(Up key pressed) def keys3(): print(Down key pressed) def restart(): print(Enter key pressed) # 添加热键 keyboard.add_hotkey(left, keys0) keyboard.add_hotkey(right, keys1) keyboard.add_hotkey(up, keys2) keyboard.add_hotkey(down, keys3) keyboard.add_hotkey(enter, restart) # 等待用户按下esc键 print(Waiting for ESC to exit...) keyboard.wait(esc) # 在这里移除所有热键 print(Removing all hotkeys...) keyboard.unhook_all_hotkeys()Waiting for ESC to exit... Left key pressed Right key pressed Up key pressed Down key pressed Enter key pressed Removing all hotkeys...   注最后一行代码keyboard.unhook_all_hotkeys()很关键一定都有否则即使按了ESC键退出程序热键还是驻留在内存里键盘还会响应keyboard.add_hotkey()添加的热键。 完整源代码 import keyboard from random import sampleclass Matrix:def __init__(self, order4):self.over Falseself.order orderself.matrix self.new()self.victory Falsedef __repr__(self):m, n [], len(str(2**max(sum(self.matrix,[]))))for mat in self.matrix:m.append(, .join(f{2**x if x else 0:{n}} for x in mat))return ],\n [.join(m).join([[[,]]])def new(self):n self.orderm sample([0]*(n*n-2)sample([0,1,1],2),n*n)return [m[i*n:i*nn] for i in range(n)]def show(self):if self.over or self.victory:print(Enter to restart...)else:print(self)print()def insert(self):n self.orderm [(i,j) for j in range(n) for i in range(n) if not self.matrix[i][j]]if m:i, j sample(m, 1)[0]self.matrix[i][j] sum(sample([1,1,1,2],1))def full(self):return all(sum(self.matrix,[]))def move(self, direction0):if self.over or self.victory: returndirection % 4if direction 0: #leftif self.cannotmove(0): returnelif direction 1: #rightif self.cannotmove(1): returnself.matrix self.flipH()elif direction 2: #upif self.cannotmove(2): returnself.matrix self.rotL()elif direction 3: #downif self.cannotmove(3): returnself.matrix self.rotR()for i,array in enumerate(self.matrix):self.matrix[i] Matrix.update(array)if direction 1:self.matrix self.flipH()elif direction 2:self.matrix self.rotR()elif direction 3:self.matrix self.rotL()indexmax max(sum(self.matrix,[]))if self.order2 and indexmax4 or self.order3 and indexmax7 or indexmaxself.order7:self.victory Trueprint(self)print(Win! Enter to restart...)returnself.insert()self.over self.cannotmove()if self.over:print(self)print(Gave over!)def cannotmove(self, direction 4):m, n self.matrix, self.rotR()p, q self.rotL(), self.flipH()if direction0:return all(n[0]) and Matrix.cannotupdate(m)elif direction1:return all(n[-1]) and Matrix.cannotupdate(q)elif direction2:return all(m[0]) and Matrix.cannotupdate(n)elif direction3:return all(m[-1]) and Matrix.cannotupdate(p)else:return (self.full() and self.cannotmove(0) and self.cannotmove(1)and self.cannotmove(2) and self.cannotmove(3))def cannotupdate(matrix):return all([mMatrix.update(m) for m in matrix])def update(array):split lambda a: [_ for _ in a if _][_ for _ in a if not _]array split(array)for i,a in enumerate(array):if i and a and aarray[i-1]:array[i-1] 1array[i] 0return split(array)def flipH(self):m, n self.matrix, self.orderreturn [[m[i][n-j-1] for j in range(n)] for i in range(n)]def flipV(self):m, n self.matrix, self.orderreturn [[m[n-j-1][i] for i in range(n)] for j in range(n)]def rotL(self):m, n self.matrix, self.orderreturn [[m[j][n-i-1] for j in range(n)] for i in range(n)]def rotR(self):m, n self.matrix, self.orderreturn [[m[n-j-1][i] for j in range(n)] for i in range(n)]def move(i):mat.move(i)mat.show() def keys0(): move(0) def keys1(): move(1) def keys2(): move(2) def keys3(): move(3) def restart():global matif mat.victory:mat.order 1mat Matrix(mat.order)mat.show()if mat.over:if mat.order3:mat.order - 1mat Matrix(mat.order)mat.show()if __name__ __main__:print(《2048小游戏》)print(上下左右前头控制方向按ESC退出...) mat Matrix(2)mat.show()keyboard.add_hotkey(left, keys0)keyboard.add_hotkey(right, keys1) keyboard.add_hotkey(up, keys2)keyboard.add_hotkey(down, keys3)keyboard.add_hotkey(enter, restart)keyboard.wait(esc) # 等待用户按下esc键退出print(bye!)keyboard.unhook_all_hotkeys() # 退出后移除所有热键玩法过程 《2048小游戏》 上下左右前头控制方向按ESC退出... [[0, 0],  [0, 2]] [[0, 0],  [2, 2]] [[0, 4],  [0, 4]] [[0, 2],  [0, 8]] [[2, 2],  [8, 0]] [[4, 2],  [8, 0]] [[4, 4],  [8, 2]] [[8, 2],  [8, 2]] [[ 0,  0],  [16,  4]] Win! Enter to restart... Enter to restart... [[0, 2, 0],  [0, 0, 2],  [0, 0, 0]] [[0, 0, 0],  [2, 0, 0],  [0, 2, 2]] [[4, 0, 0],  [0, 0, 2],  [0, 0, 4]] [[0, 2, 0],  [0, 0, 2],  [4, 0, 4]] [[0, 0, 2],  [0, 0, 2],  [4, 0, 8]] [[0, 0, 2],  [0, 2, 2],  [0, 4, 8]] [[0, 0, 0],  [0, 2, 4],  [2, 4, 8]] [[2, 0, 0],  [2, 4, 0],  [2, 4, 8]] [[2, 0, 0],  [2, 0, 0],  [4, 8, 8]] [[ 0,  2,  2],  [ 0,  0,  2],  [ 0,  4, 16]] [[ 0,  0,  0],  [ 2,  2,  4],  [ 0,  4, 16]] [[ 0,  0,  0],  [ 0,  4,  4],  [ 4,  4, 16]] [[ 2,  0,  0],  [ 0,  0,  4],  [ 4,  8, 16]] [[ 2,  0,  0],  [ 2,  0,  4],  [ 4,  8, 16]] [[ 2,  0,  0],  [ 4,  0,  4],  [ 4,  8, 16]] [[ 0,  4,  0],  [ 2,  0,  4],  [ 8,  8, 16]] [[ 0,  2,  4],  [ 0,  2,  4],  [ 0, 16, 16]] [[ 2,  2,  4],  [ 0,  2,  4],  [ 0,  0, 32]] [[ 0,  0,  0],  [ 2,  0,  8],  [ 2,  4, 32]] [[ 0,  0,  0],  [ 2,  0,  8],  [ 4,  4, 32]] [[ 0,  0,  2],  [ 0,  2,  8],  [ 0,  8, 32]] [[ 0,  0,  2],  [ 0,  2,  8],  [ 2,  8, 32]] [[ 2,  0,  4],  [ 2,  8,  0],  [ 2,  8, 32]] [[ 0,  0,  2],  [ 2,  0,  4],  [ 4, 16, 32]] [[ 2,  0,  2],  [ 2,  4,  0],  [ 4, 16, 32]] [[ 0,  0,  4],  [ 4,  4,  2],  [ 4, 16, 32]] [[ 2,  0,  4],  [ 0,  4,  2],  [ 8, 16, 32]] [[ 2,  2,  4],  [ 0,  4,  2],  [ 8, 16, 32]] [[ 0,  4,  4],  [ 2,  4,  2],  [ 8, 16, 32]] [[ 2,  0,  4],  [ 2,  8,  2],  [ 8, 16, 32]] [[ 0,  2,  4],  [ 4,  8,  2],  [ 8, 16, 32]] [[ 2,  4,  2],  [ 4,  8,  2],  [ 8, 16, 32]] [[ 2,  4,  2],  [ 4,  8,  4],  [ 8, 16, 32]] Gave over! Enter to restart... 注二阶方阵玩出16就过关三阶方阵玩出128就过关四阶就要到2048才能过关五阶则要到4096才过关六阶以上类推。演示时玩到三阶方阵就over了如果三阶方阵过关会自动升级到四阶方阵以此类推。 本文完
http://www.pierceye.com/news/703147/

相关文章:

  • 营销手机网站目前专业做水果的网站有哪些
  • 莆田仿站定制模板建站网站设计应该考虑的重要因素
  • 简述网站制作过程企业网络推广网站建设
  • 外贸营销网站建设介绍wordpress分库技术
  • 做竞品分析的网站安卓小程序开发入门
  • 做网站的外包公司可以进吗做旅游网站赚钱吗
  • 网站网页设计基本理论教育学校网站源码 php
  • 吉林省建设厅网站专家新华社官网
  • 代做吧机械网站天津建站管理系统价格
  • 开发网站公司都需要什么岗位人员有了网站怎么写文章
  • 白水网站建设郑州网站推广优化公司
  • 做网站的参考文献专业建设报告
  • asp网站搭建工具中英文网站前端怎么做
  • 微信公众号 做不了微网站wordpress怎么转移
  • 主营网站开发游戏推广员每天做什么
  • c 做网站用什么框架长沙网络建设的网站
  • 专业的网站建设网络网站连接跳转怎么做
  • 南山网站设计方案安徽六安特产
  • 设计型网站案例深圳广告投放公司
  • 能源网站模板头条发布视频成功显示404
  • 郑州网站制作企业建设网站多长时间
  • 建站网站知乎wordpress面包屑
  • 用CMS做网站的好处网站流量消耗计算
  • asp 网站 模板网站建设的公司选择哪家好
  • 广州市越秀区建设局网站字体logo设计在线生成
  • 展示网站模版源码软件开发工具包sdk
  • 佛山网站建站网站程序免费下载
  • 课程设计报告 网站开发网络营销代运营外包公司
  • 手机html5网站模板网站怎么做查询功能
  • 有哪些做外贸的网站可做笔记的阅读网站