挂一个无耻搬运工:码农教程。
真的打心底里瞧不起为了蹭热度全网照抄代码的某些人。
再次此声明:代码不是python语言,求某些搬运工不要到处搬运害人。

 def setup():
size(600,600)
global x, y, vx, vy, bx, by, curBall, aliveBall
global COLOR, c, bc
#球需要有速度,位置,颜色三个属性
#对应x,y坐标、x,y速度、c #上方球由于固定,可以只有位置和颜色属性
#对应bx,by和bc x, y = width/2, height-15
#初始化球在中下位置,速度为0,颜色随机给一个
vx, vy = 0, 0
bx, by = [], []
curBall = []
aliveBall = []
COLOR = [color(227,41,54),color(41,188,227),color(41,227,48),color(250,239,13)]
#COLOR颜色列表,c和bc表示列表中的第几个颜色,而不是直接表示颜色
c = int(random(len(COLOR)))
bc = []
for i in range(20):
for j in range(10):
bx.append(i*30)
by.append( j*30)
curBall.append(len(curBall))#显示的球
aliveBall.append(len(aliveBall))#活着的球
bc.append(int(random(len(COLOR))))#死了的球 def draw():
global x, y, vx, vy, bx, by, curBall, aliveBall
global COLOR, c, bc background(255)
def findDead(i):
d = [i]#打中了第i号球,d[]记录接下来找到的应该死掉的球
def tmp(i):
for j in curBall:
#找和i相邻且同色的球,
#首先排除掉已经找到的球,然后需要颜色编号相同,其次需要距离小于两球半径之和
if j not in d and bc[j]==bc[i] and dist(bx[i],by[i],bx[j],by[j])<31:
d.append(j)#确认过眼神,找到对的球j,用小本本记下来
#接下来再找刚刚找到的球的下一个应该死掉的球
tmp(j)
tmp(i)
#这样一直找下一个该死的泡泡龙
#就得到了所有该死的球 (逃
return d #画会动的球
fill(COLOR[c])
ellipse(x,y,30,30) for i in curBall:
#画每个还没死的球
fill(COLOR[bc[i]])
ellipse(bx[i], by[i], 30, 30)
#检查有没有被撞到
if dist(bx[i], by[i], x, y)<30:
if bc[i] == c:
#某个同色球被撞到
#找它旁边该死的球,以及旁边该死的球的旁边的该死的球,以及*******
tmp = findDead(i)
#找到了这一次所有该死的球
#把他们从生死簿上重新做标记
#地狱+1
#人间-1
for t in tmp:
aliveBall.remove(t)
#不管有没有撞到该死的球,都应该飞回原点 (逃
x, y = width/2, height-15
vx, vy = 0, 0
#顺便换个马甲再来
c = int(random(len(COLOR)))
curBall = aliveBall[:]
#更新一下,现在显示的球全是没死的球
x += vx
y += vy
#左右碰壁就反弹
if x>width-15 or x<15:
vx = -vx
# 上面碰壁也反弹
if y<15:
vy = -vy
#下面碰壁就还原
if y>height-15:
x, y = width/2, height-15
vx, vy = 0, 0
#换个马甲
c = int(random(len(COLOR))) def mousePressed():
global vx, vy
#按下鼠标就发射,给个速度就可
vx = (mouseX-width/2)/100.0
vy = (mouseY-height+15)/100.0

processing-python-泡泡龙的更多相关文章

  1. 【320】Python 2.x 与 3.x 的区别

    通过代码移植的报错进行梳理! 1. print 函数的区别 Python 2.x 中可以加空格或者括号,但是 Python 3.x 只能是括号的 # Python 2.x >>> p ...

  2. [转]如何像Python高手(Pythonista)一样编程

    本文转自:http://xianglong.me/article/how-to-code-like-a-pythonista-idiomatic-python 最近在网上看到一篇介绍Pythonic编 ...

  3. [译] 如何像 Python 高手一样编程?

    转自:http://www.liuhaihua.cn/archives/23475.html Harries 发布于 7天前 分类:编程技术 阅读(15) 评论(0) 最近在网上看到一篇介绍Pytho ...

  4. .pyc & Python

    .pyc & Python Python bytecode / 字节码 Python compiles the .py files and saves it as .pyc files , s ...

  5. [转]Haroopad Markdown 编辑器代码语法高亮支持

    代码语法高亮 书写格式为: ` ` ` language_key if (condition){ return true } ` ` ` 在 ` ` ` (三个反引号)之间的是代码,其中languag ...

  6. Embedding Lua in C: Using Lua from inside C.

    Requirments:     1: The Lua Sources.    2: A C compiler - cc/gcc/g++ for Unix, and Visual C++ for Wi ...

  7. haroopad 语法高亮问题

    <!DOCTYPE html> Untitled.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4p ...

  8. pandas 之 字符串处理

    import numpy as np import pandas as pd Python has long been a popular raw data manipulation language ...

  9. 简书 markdown 代码高亮标记

    SyntaxHighlight language language_key 1C 1c ActionScript actionscript Apache apache AppleScript a pp ...

  10. 【转】我们为什么要使用 Markdown

    目录 从前码字时我们面临着什么困境 标记语言显神威 到底什么是 Markdown 所以为什么我们要使用 Markdown Markdown 简明语法 段落和换行 标题 区块引用 列表 强调 代码标识和 ...

随机推荐

  1. Intellij IDEA搭建JSP+Tomcat开发环境

    1.新建项目 然后填入项目名称和选择项目路径,填完点击完成. 2.添加WEB框架 别问我为什么不一开始就直接新建WEB框架,因为我也是看的别人的教程0.0 不过还遇到了一些新问题,后面会讲到 3.配置 ...

  2. pat 1077 Kuchiguse(20 分) (字典树)

    1077 Kuchiguse(20 分) The Japanese language is notorious for its sentence ending particles. Personal ...

  3. Flex修改皮肤样式

    Flex修改皮肤大致有三种方式: (以button为例) 第一种:修改外观 1.flex项目中新建mxml外观.

  4. 驰骋工作流系统-Java共工作流引擎配置定时任务

    关键词:工作流定时任务  流程引擎定时任务设置  工作流系统定时任务配置  开源工作流引擎 开源工作流系统 一.定时任务的作用 发送邮件,发送短信. 处理节点自动执行的任务.比如:一个节点的待办工作是 ...

  5. 23种GoF设计模式的分类

    GoF设计模式一共有23个.一般可以按目的和作用范围来进行划分,具体划分方法如下: 第一,这些模式按目的(即完成什么样任务)来划分为创建型.结构型和行为型这三种模式: 创建型:用来创建对象.单例.原型 ...

  6. linux 内核版本和发行版本区别

    内核版本:我的理解是,内核是系统的心脏,是linux中最基层的代码.版本号如 Linux version 3.10.0-514.el7.x86_64 查看内核版本可使用.uname -a 或者cat ...

  7. JAVA合并多个word文档根据文章标题生成目录

    此产品版本是免费版的,我也是在用免费,除了只能单次识别25张一下的word和生成pdf有限制,其他的功能都和正式版差不多. 如果你几十个文档,每个文档几页,输出出来超过25页,那没关系,依然可以使用. ...

  8. SpringMVC 前端传递list到后台

    ---恢复内容开始--- 1.前端获取传入后台的list 2.ajax写法: $.ajax({ type: 'post', url: url, async:false, dataType:" ...

  9. jenkins + maven + nexus + [ svn 或 GitLab 或 GitHub ]

    目录 介绍 DevOps平台四大模块 针对DevOps开源项目 Jenkins 介绍 Maven 介绍 maven的核心概念介绍 SVN介绍 Nexus介绍 Maven私服的 个特性: 流程图 环境搭 ...

  10. CCNA 之 十二 Frame Relay 帧中继

    Fram Relay 帧中继 帧中继简介 VC.LMI.DLCI的概念 帧中继映射 Inverse-ARP的操作 帧中继配置 帧中继简介 分组交换广域网接入方式的一个代表,分组交换是以分组的形式在广域 ...