Python程序开发之简单小程序实例
(11)小 游戏 -跳动的小球
一、项目功能
用户控制挡板来阻挡跳动的小球。
二、项目分析
根据项目功能自定义两个类,一个用于控制小球在窗体中的运动,一个用于接收用户按下左右键时,挡板在窗体中的运动。在控制小球的类中,我们还需要考虑当小球下降时,碰到挡板时的位置判断。
三、程序源代码
源码部分截图:
源码:
#!/usr/bin/python3.6
# -*- coding: GBK -*-
#导入相应模块
from tkinter import *
import random
import time
#自定义小球的类 Ball
class Ball:
# 初始化
def __init__(self,canvas,paddle,color):
#传递画布值
self.canvas=canvas
#传递挡板值
self.paddle=paddle
#画圆并且保存其ID
self.id=canvas.create_oval(10,10,25,25,fill=color)
self.canvas.move(self.id,245,100)
#小球的水平位置起始列表
start=[-3,-2,-1,1,2,3]
#随机化位置列表
random.shuffle(start)
self.x=start[0]
self.y=-2
self.canvas_heigh=self.canvas.winfo_height()#获取窗口高度并保存
self.canvas_width=self.canvas.winfo_width()
#根据参数值绘制小球
def draw(self):
self.canvas.move(self.id,self.x,self.y)
pos=self.canvas.coords(self.id)#返回相应ID代表的图形的当前坐标(左上角和右上角坐标)
#使得小球不会超出窗口
pad=self.canvas.coords(self.paddle.id)#获取小球挡板的坐标
if pos[1]=self.canvas_heigh or(pos[3]>=pad[1] and pos[2]>=pad[0] and pos[2]
Python程序开发之简单小程序实例
(3)-打印99乘法口诀表
一、项目功能
在屏幕中打印格式化的九九乘法口诀表。
二、项目分析
按九九乘法口诀的运算顺序,打印的口诀表共有9行9列,第1行只有1列,第2行有2列……,第9行共有9列,如下所示:
1 1
1 2 2 2
1 3 2 3 3 3
……
……
1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 9
要按格式控制输出,需定义2个循环,其中一个循环(我们称其为外循环,在其内定义变量i)嵌套另一个循环(我们称其为内循环,在其内定义变量j),外循环(变量i)控制行,循环次数大于等于1且小于10,内循环(变量j)控制列,循环次数取决于外循环变量i的值。
三、程序源代码
#!/usr/bin/python3.6
# -*- coding: GBK -*-
print("九九乘法口诀表")
for i in range(1, 10):
print()
for j in range(1, i+1):
print ("%d*%d=%d" % (j, i, i*j), end=" " )
四、代码解释:
在程序的第一行为引用python版本,本实例为python3.6
第二行是程序编码引用,因为在程序中包含有中文字符,所以必须引用GBK,否则就会报错。
第三行为输出标题“九九乘法口诀表”
第四行至第七行为程序主体,由两个循环嵌套组成,在循环内的第五行,为一个控制行格式输出语句print(),用于换行 *** 作。
五、运行后的输出结果
下一篇:《Python程序开发之简单小程序实例(4)》
流程是这样的:先初始化蓝牙适配器,然后获取本机蓝牙适配器的状态,然后开始搜索,当停止搜索以后在开始搜索,就会触发蓝牙是配置状态变化的事件,搜索完成以后获取所有已经发现的蓝牙设备,就可以将devices中的设备Array取出来了。然后就可以得到所有已经连接的设备了,至于链接功能,还没有真机可测,所以没有测试。
我的电脑上蓝牙连接的设备:
以下是案例代码:
// pages/bluetooth/bluetooth.js
Page({
data:{},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数
},
//初始化蓝牙适配器
openBluetooth:function(){
wx.openBluetoothAdapter({
success: function(res){
console.log(res.errMsg)
// success
wx.showToast({
title:"初始化蓝牙适配器成功",
duration:2000
})
},
})
},
//关闭蓝牙模块
closeBluetooth:function(){
wx.openBluetoothAdapter()
wx.closeBluetoothAdapter({
success: function(res){
// success
console.log("success"+res)
}
})
},
//获取本机蓝牙适配器状态
getBluetoothAdapterState:function(){
wx.getBluetoothAdapterState({
success: function(res){
// success
console.log("res:"+res)
console.log("errMsg:"+res.errMsg)
}
})
},
//监听蓝牙适配器状态变化事件
onBluetoothAdapterStateChange:function(){
wx.onBluetoothAdapterStateChange(function(res) {
console.log(`adapterState changed, now is`, res)
})
},
// 开始搜寻附近的蓝牙外围设备
startBluetoothDevicesDiscovery:function(){
wx.startBluetoothDevicesDiscovery({
success: function (res) {
console.log(res)
}
})
},
// 停止搜寻附近的蓝牙外围设备
stopBluetoothDevicesDiscovery:function(){
wx.stopBluetoothDevicesDiscovery({
success: function (res) {
console.log(res)
}
})
},
//获取所有已发现的蓝牙设备
getBluetoothDevices:function(){
wx.getBluetoothDevices({
success: function(res){
// success
console.log(res)
},
})
},
//监听寻找到新设备的事件
onBluetoothDeviceFound:function(){
wx.onBluetoothDeviceFound(function(res) {
// callback
console.log(res)
})
},
//根据 uuid 获取处于已连接状态的设备
getConnectedBluetoothDevices:function(){
wx.getConnectedBluetoothDevices({
success: function (res) {
console.log(res)
}
})
},
//连接低功耗蓝牙设备
createBLEConnection:function(){
wx.createBLEConnection({
deviceId: 'AC:BC:32:C1:47:80',
success: function(res){
// success
console.log(res)
},
fail: function(res) {
// fail
},
complete: function(res) {
// complete
}
})
},
//断开与低功耗蓝牙设备的连接
closeBLEConnection:function(){
wx.closeBLEConnection({
deviceId: 'AC:BC:32:C1:47:80',
success: function (res) {
console.log(res)
}
})
},
//监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等
onBLEConnectionStateChanged:function(){
wx.onBLEConnectionStateChanged(function(res) {
console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)
})
},
//获取蓝牙设备所有 service(服务)
getBLEDeviceServices:function(){
wx.getBLEDeviceServices({
deviceId: '48:3B:38:88:E3:83',
success: function(res){
// success
console.log('device services:', res.services.serviceId)
},
fail: function(res) {
// fail
},
complete: function(res) {
// complete
}
})
},
//获取蓝牙设备所有 characteristic(特征值)
getBLEDeviceCharacteristics:function(){
wx.getBLEDeviceCharacteristics({
deviceId: '48:3B:38:88:E3:83',
serviceId: 'serviceId',
success: function(res){
// success
},
fail: function(res) {
// fail
},
complete: function(res) {
// complete
}
})
}
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)