bird

python基础学习笔记(十)

会有一股神秘感。 提交于 2020-04-01 02:09:16
魔法方法、属性 ------------------------ 准备工作 为了确保类是新型类,应该把 _metaclass_=type 入到你的模块的最开始。 class NewType(Object):   mor_code_here class OldType:   mor_code_here 在这个两个类中NewType是新类,OldType是属于旧类,如果前面加上 _metaclass_=type ,那么两个类都属于新类。 构造方法 构造方法与其的方法不一样,当一个对象被创建会立即调用构造方法。创建一个python的构造方法很简答,只要把init方法,从简单的init方法,转换成魔法版本的_init_方法就可以了。 class FooBar: def __init__(self): self.somevar = 42 >>> f =FooBar() >>> f.somevar 42 重写一个一般方法 每一个类都可能拥有一个或多个超类(父类),它们从超类那里继承行为方法。 class A: def hello(self): print 'hello . I am A.' class B(A):   pass >>> a = A() >>> b = B() >>> a.hello() hello . I am A. 因为B类没有hello方法,B类继承了A类,所以会调用A

HTML游戏开发

感情迁移 提交于 2020-03-27 01:26:17
3 月,跳不动了?>>> 一.综合案例——拼图游戏 游戏介绍: 拼图游戏将一幅图片分割成若干拼块并将它们随机打乱顺序。当将所有拼块都放回原位置时,就完成了拼图(游戏结束)。 在“游戏”中,单击滑块选择游戏难易,“容易”为3行3列拼图游戏,中间为一个4行4列拼图游戏,“难”为5行5列拼图游戏。拼块以随机顺序排列,玩家用鼠标单击空白块的四周来交换它们的位置,直到所有拼块都回到原位置。 拼图游戏运行结果: 代码: index.html <!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>拼图游戏</title> <style> .picture{ border:1px solid black; } </style> </head> <body> <div id="title"> <h2>拼图游戏</h2> </div> <div id="slider"> <form> <label>低</label> <input type="range" id="scale" value="4" min="3" max="5" step="1"> <label>高</label> </form> <br> </div> <div id="main"

Flappy Bird添加分享微信朋友圈功能

寵の児 提交于 2020-03-24 01:18:45
3 月,跳不动了?>>> 前段时间Flappy Bird很火, 之后很快就下架了。由于想在朋友圈炫炫,但又只有查看google排行功能,无聊之下,只能自己改一下它的功能了。 要快速弄,只能破解他的代码,然后植入自己的功能了,思路大概这样子: 使用Apktool解包flappy bird apk 然后解包微信Api,将解包后的smali代码拷贝到flappy bird 解包的smali目录下 添加微信分享的java代码,然后解包成smali 将以上微信smali代码,添加到FlappyBird GameActivity.smali 里的p()函数里,这个函数就是点击排行按钮调用的 函数。 以上做好之后,重新打包签名就能使Flappy Bird享有为微信分享功能了。 下载连接: http://t.cn/8F3eitV 来源: oschina 链接: https://my.oschina.net/u/1460484/blog/204415

HTML5Flappy Bird

放肆的年华 提交于 2020-03-24 01:03:51
3 月,跳不动了?>>> bird.js: var c = canvas.getContext("2d"); //三个类,Bird类,Obstacle类,FlappyBird类(游戏主要函数) function Bird(x, y, image) { this.x = x, this.y = y, this.width = image.width / 2, this.height = image.height, this.image = image; this.draw = function(context, state) { if (state === "up") context.drawImage(image, 0, 0, this.width, this.height, this.x, this.y, this.width, this.height); else{ context.drawImage(image, this.width, 0, this.width, this.height, this.x, this.y, this.width, this.height); } } }; function Obstacle(x, y, h, image) { this.x = x, this.y = y, this.width = image.width / 2, this

6.HTML5--制作Flappy Bird

社会主义新天地 提交于 2020-03-24 01:01:20
3 月,跳不动了?>>> var canvas = document.getElementById("canvas"); var c = canvas.getContext("2d"); //三个类,Bird类,Obstacle类,FlappyBird类(游戏主要函数) function Bird(x, y, image) { this.x = x, this.y = y, this.width = image.width / 2, this.height = image.height, this.image = image; this.draw = function(context, state) { if (state === "up") context.drawImage(image, 0, 0, this.width, this.height, this.x, this.y, this.width, this.height); else{ context.drawImage(image, this.width, 0, this.width, this.height, this.x, this.y, this.width, this.height); } } }; function Obstacle(x, y, h, image) { this.x = x, this.y =

基于canvas的游戏制作

♀尐吖头ヾ 提交于 2020-03-24 00:32:37
3 月,跳不动了?>>> 使用canvas画布设计游戏 一、目录 1、Canvas介绍 2、案例 二、canvas介绍 什么是Canvas元素 HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。画布是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法,可以创建丰富的图形引用。 创建Canvas元素 <canvas id="canvas" width="宽度" height="高度" style="border: 2px solid #000;background: #fff;"></canvas> 三、案例实操 1、人物拼图游戏 运行结果: 代码: 难度选择: <form> <label>低</label> <input type="range" id="scale" value="4" min="3" max="5" step="1"> <label>高</label> </form> 创建画布: <canvas id="puzzle" width="480px" height="480px"></canvas> 链接js: <script src="slinding.js"></script> js代码: 1、调用getContext()方法获取上下文,并画图。 2、创建一个和背景大小一样的画布

A bird&apos;s eye view of ZooKeeper, including design concepts and architecture(zookeeper鸟瞰图)

半城伤御伤魂 提交于 2020-03-10 19:06:42
ZooKeeper ZooKeeper: A Distributed Coordination Service for Distributed Applications Design Goals Data model and the hierarchical namespace Nodes and ephemeral nodes Conditional updates and watches Guarantees Simple API Implementation Uses Performance Reliability The ZooKeeper Project ZooKeeper: A Distributed Coordination Service for Distributed Applications Zookeeper: 分布式应用的分布式协调服务 ZooKeeper is a distributed, open-source coordination service for distributed applications. It exposes a simple set of primitives that distributed applications can build upon to implement higher level services for

纯函数式编程的效率

房东的猫 提交于 2020-02-28 10:27:44
有谁知道纯功能编程而不是强制性编程(即允许副作用)发生时,最糟糕的渐近减速可能是什么? 从itowlson的评论中澄清 :是否存在最知名的非破坏性算法比最知名的破坏性算法渐近恶化的问题? #1楼 本文 声称, 联合查找算法 的已知纯功能实现都比它们发布的 算法 具有更差的渐进复杂度,后者具有纯功能接口,但内部使用可变数据。 其他答案声称永远没有任何区别,例如,纯功能代码的唯一“缺点”是它可以并行化,这一事实使您对功能编程社区在这些问题上的了解程度/客观性有所了解。 编辑: 下面的评论指出,对纯函数式编程的优缺点的偏颇的讨论可能不会来自“函数式编程社区”。 好点子。 也许我看到的倡导者只是在评论中说是“文盲”。 例如,我认为该 博客文章 是由可以说是功能编程社区代表的人撰写的,并且由于它是“懒惰评估的要点”列表,因此,它是提及任何缺点的好地方懒惰和纯函数式编程可能具有。 解雇以下人员是一个不错的选择(从技术上讲是正确的,但偏向于不搞笑): 如果严格函数在严格语言中具有O(f(n))复杂度,那么在懒惰语言中函数也具有O(f(n))复杂性。 为什么要担心? :) #2楼 我建议阅读 Haskell的性能 ,然后看一下功能语言与程序/ OO语言的 基准游戏 性能。 #3楼 根据 Pippenger [1996]的研究 ,当将纯功能的Lisp系统(具有严格的评估语义,而不是惰性的

架构师内功心法,软件架构设计的七大原则精选案例

不羁岁月 提交于 2020-02-28 06:01:39
一、软件架构设计的七大原则简介 1.1 开闭原则(Open-Closed Principle,OCP) 开闭原则是一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。所谓的开闭也是对扩展和修改两个行为的一个原则。强调是用抽象扩展架构,用实现扩展细节。可以提高软件系统的可复用性及可维护性。开闭原则,是面向对象设计中最基础的设计原则。它指导我们如何建立稳定灵活的系统,例如: 版本更新,我们尽可能不修改代码,但是可以增加新功能。 在现实生活中也有很多开闭原则的例子,比如,很多互联网公司都实行弹性的工作时间,规定每天工作8小时。意思就是说,对于工作日每天工作8小时这个规定是关闭的,但是你什么时候来,什么时候走是开放的。早来早走,晚来晚走。 实现开闭原则的核心思想就是面向抽象编程,以某新华书店的图书为例,首先创建一个课程接口类: public class IBook { Integer getId(); String getName(); Double getPrice(); } 我们来创建一个计算机图书的类ComputerBook: public class ComputerBook implements IBook { private Integer id; private String name; protected Double price; public

Python里面这些点,据说80%的新手都会一脸懵逼

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-27 07:25:55
Python虽然语法简单,通俗易懂,但是再简单它也是一门语言,就像一棵大树,总有一些树枝是弯弯绕绕的,让新手看完之后一脸懵逼,今天我们就来说说这几个点,反正我学的时候是很困惑的! 01.函数里面的 *args 1).可变参数 这个是什么鬼,尤其是有其他c,c++语言基础的人,看到这个点,一定懵逼了,难道是指针,两个**又是什么鬼? 其实这个Python里面的函数入参的几种形式,假如你来设计一个语言,一个函数fun(),里面要传参数进来,要考虑扩展性:变量会有很多种形态,有可能是变量,也可能是数组,也可能是结构体,或者是哈希数组。 比如你有一个累加功能的函数: 每次调用函数都要传一个列表或者元组进去,非常死板,不灵活,如果我要传多个列表,多个变量,我又不想改接口,但是改成下面这样就灵活很多: *args:表示可变参数,就是传入的参数个数是可变的,可以是1个、2个到任意个或者0个,其实就是把一堆参数当作一个数组(Python列表或者元组传递进来)。 专门建立的Python学习扣QUN:⑦⑧④⑦⑤⑧②①④ 从零基础开始到Python各领域的项目实战教程、开发工具与电子书籍。与你分享企业当下对于python人才需求及学好python的高效技巧,不停更新最新教程! 02.关键字参数 **kwargs 关键字参数可以让你输入0或者多个含参数名的参数,并且自动组装为一个字典 你函数的接口设定为*