MicroPython动手做(35)——体验小游戏

eagler8, eagler8
帖子创建于2020年06月26日 拓展应用 1314 次浏览 3 个赞 3 人关注


小游戏 (体积较小、玩法简单的游戏)

小游戏是一个较模糊的概念,它是相对于体积庞大的单机游戏及网络游戏而言的,泛指所有体积较小、玩法简单的游戏,通常这类游戏以休闲益智类为主,有单机版有网页版,在网页上嵌入的多为FLASH格式。当下小游戏主要是指在线玩的flash版本游戏,统称小游戏,其实小游戏还包含单机游戏,小型游戏机等。一般游戏大小小于10m的游戏都统称为小游戏,一些街机类小游戏。因其游戏安装简便,耐玩性强,无依赖性而广受白领及小朋友的喜爱。

“小游戏”这个词的型含义其实很简单,它不是一些大的游戏,不必花费更多的时间和精力。小游戏是原始的游戏娱乐方式,小游戏本身是为了叫人们在工作,学习后的一种娱乐、休闲的一种方式,不是为了叫玩家为之花费金钱、花费精力,更不是叫玩家为他痴迷。小游戏也可以理解为“Flash游戏”,是以SWF为后缀的游戏的总称.这些游戏是通过Flash软件和 Flash 编程语言 Flash ActionScript 制作而成。由于Flash是矢量软件,所以小游戏放大后几乎不影响画面效果。Flash小游戏是一种新兴起的游戏形式,以游戏简单,操作方便,绿色,无需安装,文件体积小等优点渐渐被广大网友喜爱。

49 条评论

eagler8

2020年06月26日

1、弹球游戏

#MicroPython动手做(35)——体验小游戏
#弹球游戏

from mpython import *
import music
import time

def func():
global a, b, FMQ, loc, staart_flag, Start, X, Y
music.pitch(131, 500)
loc = 44
a = 2
b = 2
staart_flag = False
Start = True
Y = 48
X = 64
FMQ = False

def a1():
global a, b, FMQ, loc, staart_flag, Start, X, Y
if FMQ:
music.pitch(131, 500)
FMQ = False

def a3():
global a, b, FMQ, loc, staart_flag, Start, X, Y
if Start:
if button_a.value() == 0:
staart_flag = True
loc = loc - 2
if loc < 0:
loc = 0
if button_b.value() == 0:
staart_flag = True
loc = loc + 2
if loc > 88:
loc = 88

def a2():
global a, b, FMQ, loc, staart_flag, Start, X, Y
oled.fill(0)
oled.fill_rect(loc, 55, 40, 5, 1)
oled.fill_circle(X, Y, 5, 1)
oled.show()
if button_a.value() == 0 and button_b.value() == 0:
func()
while button_a.value() == 0 and button_b.value() == 0:
pass
time.sleep_ms(100)

def a4():
global a, b, FMQ, loc, staart_flag, Start, X, Y
if staart_flag:
X = X + a
Y = Y - b
if X >= 122:
a = a * -1
if X <= 5:
a = a * -1
if Y <= 5:
b = b * -1
if Y >= 48:
if not (X > loc + 50 or X < loc - 10):
b = b * -1
if X > loc + 50 or X < loc - 10:
staart_flag = False
Start = False
FMQ = True


func()
while True:
a1()
a2()
a3()
a4()

eagler8

2020年06月26日

mPython X 实验图形编程


eagler8

2020年06月26日

mPython X 实验图形编程2


eagler8

2020年06月26日

弹球游戏(实验视频)

https://v.youku.com/v_show/id_XNDcyNzU1MjkwNA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

eagler8

2020年06月26日

2、简单连连看(shworld)

玩法说明

按A键左移动

按B键右移动

按金手指T或H来选择

#MicroPython动手做(35)——体验小游戏
#简单连连看

from mpython import *
import random

#--------------------------------------------------------
#图片转换参考https://mpython.readthedocs.io/zh/master/tutorials/basics/oled.html#id3
#图片定义
#苹果
apple = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0X80,0X18,0X70,0X01,
0X80,0X00,0X0C,0X01,0X80,0X00,0X03,0X01,0X84,0X01,0XC0,0X81,0X88,0X3F,0XF0,0X61,
0X98,0X3F,0XF8,0X31,0X90,0X3F,0XFC,0X31,0XB0,0X3F,0XFC,0X19,0XB0,0X3F,0XFE,0X19,
0XB0,0X0F,0XF6,0X19,0XB8,0X00,0X80,0X19,0XBC,0X00,0X00,0X19,0XBE,0X00,0X00,0X39,
0XBF,0X80,0X00,0X79,0XBF,0XE0,0X07,0XF9,0X9F,0XFF,0XFF,0XF9,0X9F,0XFF,0XFF,0XF1,
0X8F,0XFF,0XFF,0XF1,0X8F,0XFF,0XFF,0XE1,0X87,0XFF,0XFF,0XE1,0X83,0XFF,0XFF,0XC1,
0X81,0XFF,0XFF,0X81,0X81,0XFF,0XFF,0X01,0X80,0XFF,0XFE,0X01,0X80,0X7F,0XFC,0X01,
0X80,0X3F,0XF0,0X01,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
])

#樱桃
cherry = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0XC0,0X00,0X01,0X81,0XC0,0X00,0X01,0X80,0XC0,0X00,0X01,
0X80,0XC0,0X00,0X01,0X80,0XA0,0X00,0X01,0X80,0X10,0X00,0X01,0X80,0X90,0X00,0X01,
0X80,0X88,0X00,0X01,0X80,0X8C,0X00,0X01,0X80,0X84,0X00,0X01,0X80,0X83,0X00,0X01,
0X80,0X81,0X80,0X01,0X80,0X00,0XCF,0X21,0X80,0X40,0X7F,0X11,0X80,0X79,0XFF,0X19,
0X87,0XFC,0XFF,0XF9,0X8F,0XFC,0X7F,0XF9,0X9F,0XF8,0X7F,0XFD,0XBF,0XF8,0X7F,0XFD,
0XBF,0XF8,0X7F,0XFD,0XBF,0XF8,0X7F,0XFD,0XBF,0XFF,0XFF,0XFD,0XBF,0XFF,0XFF,0XF9,
0XBF,0XFF,0XFF,0XF9,0XBF,0XFF,0XFF,0XF1,0XBF,0XFF,0XFF,0XF1,0X9F,0XFF,0XFF,0XE1,
0X8F,0XFF,0X9F,0X81,0X87,0XFF,0X00,0X01,0X81,0XFC,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
])

#桑葚
mulberry = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0X21,0X00,0X01,0X80,0X10,0X00,0X01,0X81,0X08,0X80,0X01,
0X82,0X38,0X80,0X01,0X82,0X3F,0X80,0X01,0X82,0X3F,0XE0,0X01,0X86,0X3F,0XF0,0X01,
0X86,0X3F,0XF8,0X01,0X83,0XFF,0XFC,0X01,0X83,0XFF,0XFE,0X01,0X87,0XFF,0XFF,0X01,
0X8F,0XFF,0XFF,0X01,0X8F,0XFF,0XFF,0X01,0X8F,0XFF,0XFF,0X81,0X8F,0XFF,0XFF,0X81,
0X8F,0XFF,0XFF,0X81,0X8F,0XFF,0XFF,0X81,0X8F,0XFF,0XFF,0X81,0X87,0XFF,0XFF,0X81,
0X87,0XFF,0XFF,0X81,0X83,0XFF,0XFF,0XC1,0X81,0XFF,0XFF,0XC1,0X80,0XFF,0XFF,0XC1,
0X80,0XFF,0XFF,0XC1,0X80,0X7F,0XFF,0XC1,0X80,0X3F,0XFF,0X81,0X80,0X1F,0XFF,0X81,
0X80,0X0F,0XFF,0X81,0X80,0X03,0XFF,0X01,0X80,0X01,0XFC,0X01,0XFF,0XFF,0XFF,0XFF,
])

#草莓
strawberry = bytearray([\
0XFF,0XFF,0XFF,0XFF,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,
0X80,0X00,0X00,0X01,0X80,0X00,0XC0,0X01,0X80,0X03,0XE8,0X01,0X80,0X0D,0XE4,0X01,
0X80,0X1F,0XFE,0X01,0X80,0X3F,0XFF,0X01,0X80,0X7F,0XFF,0X01,0X80,0XFF,0XDF,0X81,
0X81,0XFF,0XFF,0XF9,0X83,0XFF,0XFF,0XC1,0X83,0XFF,0XFF,0XC1,0X87,0XFF,0XFF,0XC1,
0X8F,0XFF,0XFF,0XE1,0X9F,0X7F,0XFF,0XE1,0XBF,0XFF,0XFF,0XE1,0XBF,0XFF,0XFF,0XE1,
0XBF,0XFE,0XFF,0XE1,0XBF,0XDF,0XFF,0XE1,0XBF,0XFF,0XFF,0XC1,0X9F,0XFF,0XFE,0XC1,
0X9F,0XFF,0XBF,0X81,0X8F,0XFF,0XFF,0X01,0X81,0XFF,0XFC,0X01,0X80,0X07,0XF0,0X01,
0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0X80,0X00,0X00,0X01,0XFF,0XFF,0XFF,0XFF,
])

#打勾
tick = bytearray([\
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X00,0X03,0XC0,0X00,0X00,0X03,
0XC0,0X00,0X00,0X03,0XC0,0X00,0X00,0X63,0XC0,0X00,0X00,0XE3,0XC0,0X00,0X01,0XE3,
0XC0,0X00,0X03,0XE3,0XC0,0X00,0X07,0XE3,0XC0,0X00,0X0F,0XE3,0XC0,0X00,0X1F,0XE3,
0XC0,0X00,0X1F,0XF3,0XC0,0X00,0X3F,0XF3,0XC0,0X00,0X7F,0XC3,0XC0,0X00,0X7F,0X83,
0XC0,0XC0,0XFF,0X03,0XC1,0XE0,0XFE,0X03,0XC7,0XE1,0XFC,0X03,0XCF,0XF1,0XF8,0X03,
0XCF,0XF3,0XF0,0X03,0XC3,0XFB,0XE0,0X03,0XC1,0XFF,0XC0,0X03,0XC0,0X7F,0X80,0X03,
0XC0,0X3F,0X80,0X03,0XC0,0X1F,0X00,0X03,0XC0,0X0E,0X00,0X03,0XC0,0X06,0X00,0X03,
0XC0,0X04,0X00,0X03,0XC0,0X00,0X00,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
])


#--------------------------------------------------------
#函数定义
#生成8个随机水果下标
#默认数组[0,1,2,3],循环2次,就有个8了,如何避免每次生成重复的呢,下面请看
def getFruitRand():
fruitsIndex=[0,1,2,3]
fruitsIndex_random=[]
for i in range(2): #对[0,1,2,3]循环2次加入到fruitsIndex_random中
fruitsIndex_=fruitsIndex.copy() #这里不直接用fruitsIndex,因为下面有del删除,我们拷贝一份副本
for j in range(4): #循环4次
rand=random.randint(0,len(fruitsIndex_)-1) #随机0-3,因j从0开始最大为3,而len(fruitsIndex)返回的是4,所以-1
randIndex=fruitsIndex_[rand] #取随机下标,范围在0-3中, fruitsIndex=[0,1,2,3]
fruitsIndex_random.append(randIndex) #添加到fruitsIndex_random中
del(fruitsIndex_[rand]) #这里核心,添加完成后删除掉fruitsIndex中的内容
#删除掉后,随机就肯定不会出现重复的了
#比如每次都随机删除最后一个
#循环第一次fruitsIndex_长度为[0,1,2,3]
#循环第二次fruitsIndex_长度为[0,1,2]
#循环第三次fruitsIndex_长度为[0,1]
#循环第四次fruitsIndex_长度为[0]
#这样随机肯定不会重复
#返回得到的8位随机水果下标fruitsIndex_random
return fruitsIndex_random



#显示8个水果图片
#isShow主要控制是否最后oled.show(),因为我可能会再show()之前插入一些文字
#fruitsIndex传输的8位随机水果下标,如[2,1,3,0,2,0,1,3]
def showFruit(fruitsIndex,isShow=True):
i=0
for index in fruitsIndex: #遍历fruitsIndex下标,i计次,从0开始
if i<4: #控制一行显示4个
if index==-1: #下标为何出现-1,在其他函数中连连看完成会置下标-1
oled.Bitmap(32*i, 0, tick, 32, 32, 1) #显示打勾图片(x每次递增32,因为每张图32*32,屏宽128)
else: #否则显示水果图
oled.Bitmap(32*i, 0, fruits[index], 32, 32, 1)
if i>=4: #如果显示第5个图了,换行显示,y坐标变成32
if index==-1: #以此类题,显示打勾图片
oled.Bitmap(32*(i-4), 32, tick, 32, 32, 1)
else:
oled.Bitmap(32*(i-4), 32, fruits[index], 32, 32, 1)
i=i+1 #i递增

#是否显示输出
if isShow:
oled.show()

#按键A触发事件,向左移动判断
def on_button_a_down(_):
global cursor_X,cursor_Y,chose1XY,isFinish #引用全局变量
time.sleep_ms(10) #防抖,可以不写
if button_a.value() == 1: return #按钮按下状态
if isFinish==True: #如果全部连完了,重新开始游戏
start()
return
oled.fill(0) #清空屏幕显示
showFruit(fruitsIndex,False) #显示水果,传入随机的8个水果下标
cursor_X=cursor_X-32 #全局光标坐标-32(因图片宽高为32)
if cursor_X<0 and cursor_Y==8: #如果光标在第一行且X到最左端了,那么换到第二行最右侧
cursor_X=100 #换到第二行最右侧
cursor_Y=40
if cursor_X<4 and cursor_Y==40: #如果光标在第二行且X在最左端了,那么换到第一行最右侧
cursor_X=100
cursor_Y=8

if chose1XY: #如果第1个位置已经选中状态
oled.DispChar('选中', chose1XY[0], chose1XY[1]) #显示那个"光标"的文字位置
oled.DispChar('光标', cursor_X, cursor_Y) #否则显示"光标"文字
oled.show() #显示生效


#按键B触发事件,向右移动判断
def on_button_b_down(_):
global cursor_X,cursor_Y,chose1XY,isFinish #按键B与按键A没有区别,就是到极端时换行不同
time.sleep_ms(10)
if button_b.value() == 1: return
if isFinish==True:
start()
return
oled.fill(0)
showFruit(fruitsIndex,False)
cursor_X=cursor_X+32
if cursor_X>128 and cursor_Y==40:
cursor_X=4
cursor_Y=8
if cursor_X>128 and cursor_Y==8:
cursor_X=4
cursor_Y=40

if chose1XY :
oled.DispChar('选中', chose1XY[0], chose1XY[1])
oled.DispChar('光标', cursor_X, cursor_Y)
oled.show()


#验证是否完成8个水果的连连看
def checkIsFinish():
global isFinish #引用全局变量
i=0 #初始化i变量
for index in fruitsIndex: #遍历fruitsIndex下标情况
if index==-1: #如果为-1,i递增(在其他函数中连连看完成会置下标-1)
i=i+1
if i>=8: #如果i等于8说明8个连连看都完成了
isFinish=True #置全局变量
oled.fill(0) #清空屏幕显示
oled.DispChar('恭喜您,通关了!', 28, 15) #填充文字
oled.DispChar('按A或B重新开始', 22, 30) #填充文字
oled.show() #显示生效

#通过金手指T和H来选择水果
def choseFruit(cursor_X,cursor_Y):
global fruitsIndex,chose1Index,chose2Index,chose1XY,chose2XY
i=0
for x,y in fruitXY: #遍历8张图的预定义坐标
if cursor_X==x and cursor_Y==y: #如果当前光标位置=预定义坐标位置,即可得到水果下标
if fruitsIndex[i]==-1: #如果光标位置下标为-1,说明已是打勾状态,不重复选中
return #返回
if chose1XY: #如果第1个位置已经选中状态
chose2XY=[x,y] #把光标位置赋给第2个选择位置
chose2Index=fruitsIndex[i] #同时得到水果下标
else:
chose1XY=[x,y] #否则赋值第1个选择位置
chose1Index=fruitsIndex[i] #同时得到水果下标
i=i+1 #i递增
showFruit(fruitsIndex,False) #显示水果,不立即显示生效

if chose2XY: #如果第2个位置选中了,此时可进行匹配
if chose1Index==chose2Index and chose1XY!=chose2XY: #如果位置1和位置2的下标相同且坐标不相同(否则连自身就匹配成功了)
oled.line(chose1XY[0], chose1XY[1], chose2XY[0], chose2XY[1], 1) #画线,位置1到位置2
oled.DispChar('成功', cursor_X, cursor_Y) #填充文字
for i in range(len(fruitsIndex)): #遍历全局fruitsIndex,把该水果的下标置-1
if fruitsIndex[i]==chose2Index:
fruitsIndex[i]=-1
chose1XY=[] #清空位置1坐标
chose2XY=[] #清空位置2坐标
oled.show() #显示生效
checkIsFinish() #检测是否全部匹配完成
else:
oled.DispChar('选中', cursor_X, cursor_Y) #否则继续显示"选中"文字
oled.show() #显示生效

#开始游戏
def start():
#引用全局变量并初始化默认值,因为重新开始游戏时必须初始化
global fruitsIndex,cursor_X,cursor_Y,chose1XY,chose1Index,chose2XY,chose2Index,fruitsIndex,isFinish

#初始化变量
chose1XY=[]
chose1Index=''
chose2XY=[]
chose2Index=''
fruitsIndex=[]
cursor_X=4
cursor_Y=8
isFinish=False

oled.fill(0) #清空屏幕显示
fruitsIndex=getFruitRand() #获取随机的8个水果下标
showFruit(fruitsIndex,False) #第一次开始游戏先显示水果,传入8个随机水果下标
oled.DispChar('光标', cursor_X, cursor_Y) #第一次开始游戏,光标出现在默认的x,y4,8位置
oled.show() #显示生效




#--------------------------------------------------------
#变量定义
fruits=[apple,cherry,mulberry,strawberry] #4个图片的bitmap数组
fruitsIndex=[] #水果的下标数组,用来存放随机的8个水果
fruitXY=[[4,8],[36,8],[68,8],[100,8],[4,40],[36,40],[68,40],[100,40]] #8张图的预定义坐标,从左到右,从上到下

chose1XY=[] #位置1选择的水果坐标
chose1Index='' #位置1选择的水果下标

chose2XY=[] #位置2选择的水果坐标
chose2Index='' #位置2选择的水果下标

cursor_X=4 #全局光标坐标,默认为第一个图的位置4,8(居中显示)
cursor_Y=8

isFinish=False #是否已完成

start() #开始游戏



#--------------------------------------------------------
#按键监听
#按键A/B触发监视
button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)
button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)

#通过金手指T和H来选择水果
while True:
if(touchPad_T.read() < 100):
choseFruit(cursor_X,cursor_Y)
elif(touchPad_H.read() < 100):
choseFruit(cursor_X,cursor_Y)

eagler8

2020年06月26日

简单连连看


eagler8

2020年06月26日

3、贪吃蛇(EVE)

开机时,由6个像素点组成的贪吃蛇出现在屏幕中央,默认向右移动,按下A或B,会逆时针或顺时针转向。

//MicroPython动手做(35)——小游戏
//贪吃蛇

#include <MPython.h>
#include <SimpleList.h>

// 动态变量
volatile float mind_n_ShiWux, mind_n_ShiWuy, mind_n_FangXiange, mind_n_x, mind_n_y,
mind_n_ShenChangc, mind_n_FenShuf, mind_n_SheToux, mind_n_SheTouy,
mind_n_LieBiaod;
SimpleList<String> mind_l_X, mind_l_Y;
// 函数声明
void DF_ChiDaoShiWu();
void DF_PengBi();
void DF_KaiJiDongHua();
void DF_TanChiSheHuoDong();
void DF_ChuShiHuaChangDu();
void DF_AnJian();
// 静态常量
const uint8_t imageMatrix[][1024] = {
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfe,0x7f,0xef,0x7f,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf2,0x5f,0xfe,0x4f,0xef,0x3f,0xf3,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xf1,0x4f,0xd3,0x7f,0xf3,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0x7,0xf0,0x4f,0x80,0x7f,0xc2,0x7e,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0x87,0xf8,0x7f,0x80,0x7f,0xc2,0x7e,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf4,0x6f,0xe3,0x1f,0xce,0x5f,0xd2,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0x2f,0xf1,0x3f,0x9f,0xff,0xe1,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc6,0xef,0xec,0xdb,0xcd,0xdf,0xd2,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc6,0xef,0xec,0xdb,0xcd,0xdf,0xd2,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xe3,0xfc,0xbf,0x73,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x9f,0xbe,0x3f,0x38,0xf,0xfb,0x3c,0x30,0x80,0xe0,0x73,0xff,0xff,0xff,0xff,0xfb,0x9f,0xbe,0x3f,0x38,0xf,0xfb,0x3c,0x30,0x80,0xe0,0x73,0xff,0xff,0xff,0xff,0xe7,0xdf,0x9f,0x1e,0x39,0xef,0xe7,0xce,0x7b,0xde,0xf6,0x73,0xff,0xff,0xff,0xff,0xcf,0xff,0x4f,0x4e,0x39,0xdf,0xcf,0xef,0x7b,0xdf,0xf7,0x7b,0xff,0xff,0xff,0xff,0xcf,0xff,0x4f,0x65,0x38,0x1f,0xcf,0xe7,0x37,0xc1,0xf4,0xfb,0xff,0xff,0xff,0xff,0xcf,0xde,0xe7,0x63,0x39,0xdf,0xef,0xef,0xb7,0xdf,0xf6,0x7b,0xff,0xff,0xff,0xff,0xcf,0xde,0xe7,0x63,0x39,0xdf,0xef,0xef,0xb7,0xdf,0xf6,0x7b,0xff,0xff,0xff,0xff,0xe7,0xde,0xe7,0x73,0x39,0xf7,0xe7,0xcf,0x8f,0xdf,0x77,0x3f,0xff,0xff,0xff,0xff,0xf3,0xbc,0xf3,0x1f,0xf8,0x7,0xfb,0xbf,0xdf,0x80,0x43,0x13,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xfe,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3e,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xcf,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7,0xff,0xff,0xff,0xfe,0xff,0xfb,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x3,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xc3,0xe3,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xc7,0xe3,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xc7,0xf1,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x9c,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xf1,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xe3,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xc3,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x3,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0x0,0x3f,0xff,0xff,0xff,0xff,0xfc,0x3f,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xc,0x1f,0xff,0xff,0xfc,0x3f,0xff,0xbf,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xff,0xf0,0xf,0xff,0xff,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xe0,0x7,0xff,0xcf,0xff,0xff,0xf7,0xef,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xc3,0x87,0xff,0xef,0xff,0xff,0xe7,0xcf,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xc7,0xe3,0xff,0xf7,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xfe,0x3f,0xf,0xff,0xff,0x8f,0xe3,0xff,0xfd,0xff,0xff,0x3f,0xcf,0xbf,0xff,0xff,0xfe,0x1f,0x1f,0xff,0xff,0x8f,0xe3,0xff,0xfe,0x7f,0xfe,0xef,0x3f,0xbf,0xbf,0xff,0xff,0xc,0x1f,0xff,0xff,0x8f,0xe3,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0x1f,0xff,0xff,0x0,0x3f,0xff,0xff,0xc7,0xe3,0xff,0xff,0xf8,0x7f,0xdf,0xff,0xff,0xdf,0xff,0xff,0xc0,0xff,0xff,0xff,0xc7,0xc3,0xff,0xff,0xf7,0x7f,0xbf,0xff,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7,0xff,0xff,0xf7,0x7f,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf8,0xfd,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfe,0xe9,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x5f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xe1,0xfe,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0x3e,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x80,0x1f,0xff,0xff,0xff,0xff,0xfb,0xff,0xcf,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xff,0xff,0xf7,0xff,0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xff,0xff,0xff,0x9f,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xff,0xfe,0xff,0xfb,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xfe,0x3f,0xf,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xfe,0x1f,0x1f,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x0,0x1f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x9c,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x7f,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x3f,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x3e,0x3f,0xff,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf0,0x3f,0xff,0xff,0xfc,0x7e,0x3f,0xfc,0x3f,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xfc,0x7f,0x1f,0xff,0xbf,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xc0,0x7,0xff,0xff,0xfc,0x7f,0x1f,0xff,0xff,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0x87,0x87,0xff,0xff,0xfc,0x7f,0x1f,0xff,0xcf,0xff,0xff,0xf7,0xef,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xfc,0x7e,0x1f,0xff,0xef,0xff,0xff,0xe7,0xcf,0xff,0xff,0xff,0x8f,0xe3,0xff,0xff,0xfc,0x3e,0x3f,0xff,0xf7,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0x8f,0xe3,0xff,0xff,0xfe,0x0,0x3f,0xff,0xfd,0xff,0xff,0x3f,0xcf,0xbf,0xff,0xff,0x8f,0xe3,0xff,0xff,0xff,0x0,0x7f,0xff,0xfe,0x7f,0xfe,0xef,0x3f,0xbf,0xbf,0xff,0x8f,0xc3,0xff,0xff,0xff,0x81,0xff,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0x1f,0xff,0x87,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xdf,0xff,0xff,0xdf,0xff,0xc0,0x7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xbf,0xff,0xed,0xff,0xff,0xe0,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xf7,0xff,0xff,0xf0,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf8,0xfd,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfe,0xe9,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7d,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x9f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x1f,0xff,0xff,0xff,0xfd,0xff,0xf7,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x8f,0x87,0xff,0xff,0xff,0xf7,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xff,0xef,0xff,0xfe,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc7,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x39,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc7,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0x8f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0xf,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf6,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xc0,0xff,0xff,0x9f,0xff,0xff,0xef,0xdf,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x80,0x3f,0xff,0xdf,0xff,0xff,0xcf,0x9f,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x0,0x1f,0xff,0xef,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xfe,0x1e,0x1f,0xff,0xfb,0xff,0xff,0x7f,0x1f,0x7f,0xff,0xff,0xff,0xf1,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xfc,0xff,0xfc,0xde,0x7f,0x7f,0x7f,0xff,0xff,0xf1,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xfe,0xff,0xfb,0xff,0x7f,0xfe,0x3f,0xff,0xff,0xe1,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xf0,0xff,0xbf,0xff,0xff,0xbf,0xff,0xff,0x3,0xff,0xff,0xfe,0x3f,0x8f,0xff,0xff,0xee,0xff,0x7f,0xff,0xdb,0xff,0xff,0xff,0x7,0xff,0xff,0xfe,0x3f,0x1f,0xff,0xff,0xee,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x1f,0xff,0xff,0xfe,0x1e,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0xff,0xb9,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xf1,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfd,0xd3,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xc1,0xfe,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x1f,0xff,0xff,0xff,0xff,0xfe,0x3c,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0x83,0x7,0xff,0xff,0xff,0xff,0xef,0xff,0xf9,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0x8f,0xc7,0xff,0xff,0xff,0xff,0xbf,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xe3,0xff,0xff,0xff,0xfd,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xe3,0xff,0xff,0xff,0xfb,0xff,0xf7,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0x8f,0xc3,0xff,0xff,0xff,0xf7,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xb9,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x3f,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0x9b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1,0xff,0xf7,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0xff,0xfe,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x38,0x7f,0xf6,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7c,0x3f,0xf9,0x7f,0xff,0xff,0xfd,0x77,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xf8,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xf8,0xfe,0x3f,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xf8,0xfe,0x3f,0xff,0xdf,0xff,0xff,0xef,0xdf,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xf8,0xfe,0x3f,0xff,0xdf,0xff,0xff,0xcf,0x9f,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xfc,0x7c,0x3f,0xff,0xf7,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xfc,0x38,0x7f,0xff,0xfb,0xff,0xff,0x7f,0x5f,0x3f,0xff,0xff,0xff,0xff,0x8f,0xff,0xfe,0x0,0xff,0xff,0xfc,0xff,0xfc,0xcf,0x3f,0x3f,0x3f,0xff,0xff,0xff,0x1f,0xff,0xff,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0x3f,0xff,0xff,0xff,0x1f,0xff,0xff,0xc7,0xff,0xff,0xff,0xf0,0x7f,0xff,0xff,0xdd,0xbf,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0x7f,0xef,0xdb,0xbf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xee,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0x7d,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbd,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xfc,0xfb,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xf9,0xfb,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xfd,0xdb,0xfc,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xef,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0xe7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xbf,0xcf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xf8,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x9f,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xbf,0xff,0x7f,0xbf,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xfe,0xff,0xff,0xff,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xfe,0xff,0xff,0xef,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xff,0xfd,0xff,0xff,0xff,0xf1,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x8f,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xef,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xff,0xff,0xff,0xce,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0xff,0xf9,0xff,0xff,0xfc,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x7f,0xfd,0xff,0xff,0xfd,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x38,0x7f,0xfe,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xbf,0xff,0xef,0xe9,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfe,0x3f,0xff,0xcf,0xff,0x9d,0xe7,0xf7,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfe,0x3f,0xff,0xfc,0x7,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xfe,0x3f,0xff,0xff,0x4f,0xff,0xff,0xfb,0xb3,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xfe,0xcf,0xef,0xff,0xf9,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7c,0x3f,0xff,0xfd,0xef,0xff,0xfe,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x0,0x7f,0xff,0xff,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0xff,0xff,0xfb,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xff,0xff,0xfe,0xff,0x6f,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xdf,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x3f,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xb7,0x3f,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xef,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xe8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xef,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0xe7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xbf,0xcf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xf8,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x9f,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xbf,0xff,0x7f,0xbf,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xfe,0xff,0xff,0xef,0xdf,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xf1,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xef,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2f,0xff,0xff,0xff,0xce,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xfc,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xfd,0xff,0xff,0xfd,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x81,0xff,0xff,0xfe,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x7f,0xff,0xff,0xbf,0xff,0xef,0xe9,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x18,0x7f,0xff,0xff,0xcf,0xff,0x9d,0xe7,0xf7,0xe7,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xfc,0x7,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xff,0x4f,0xff,0xff,0xfb,0xb3,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3f,0xff,0xff,0xfe,0xcf,0xef,0xff,0xf9,0xf7,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x3f,0xff,0xff,0xfd,0xef,0xff,0xfe,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xfc,0x7e,0x3f,0xff,0xff,0xfb,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xfe,0x18,0x7f,0xff,0xff,0xfe,0xff,0x6f,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xfe,0x0,0x7f,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x0,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xfb,0xff,0xff,0xdf,0x79,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x3f,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xb7,0x3f,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xdf,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xec,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3f,0xe7,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xdf,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xef,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xf8,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0x3f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xbf,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0x7f,0xff,0xff,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xfd,0xff,0xff,0xff,0xf8,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xf7,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xe7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xf9,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x6f,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x97,0xff,0xff,0xff,0xdf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xfe,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf9,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xf1,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0x8c,0xe7,0xf3,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x1,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x6f,0xff,0xff,0xfd,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xfe,0xef,0xf7,0xff,0xfd,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0xef,0xbf,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xfd,0xf7,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xfd,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xfb,0xef,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xfb,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x9f,0xff,0xff,0xff,0xff,0xdf,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x1f,0xff,0xfd,0xff,0xff,0x3f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe,0x1f,0xff,0xff,0xff,0x33,0x3f,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x3f,0xff,0xff,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x7f,0xff,0xff,0x7f,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0xff,0xff,0x9f,0x97,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xbf,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xd1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x9f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0x7f,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xbf,0x7f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xe3,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0x3f,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe6,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xde,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xbf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x5f,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xfb,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xe7,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xdf,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xdf,0xd7,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xfe,0x33,0xdf,0xcf,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x7,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xbf,0xff,0xff,0xf7,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xff,0xff,0xf9,0xbf,0xdf,0xff,0xf2,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0xff,0xff,0x9f,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xf7,0xdb,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0x9f,0xff,0xff,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xf7,0xff,0xff,0x7e,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0xf7,0xff,0xfe,0x7f,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0xfc,0xce,0xff,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xfe,0x7f,0x4f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x7f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0x47,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xff,0x7d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xff,0x3d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcd,0xfe,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3e,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xc7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xfc,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0x88,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x3f,0xff,0xff,0xfe,0x77,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xff,0xe7,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0x3f,0x4f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xfc,0xef,0x3f,0xbf,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe0,0x3f,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfa,0x7f,0xff,0xff,0xdd,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0x7f,0x7f,0xff,0xed,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0x7d,0xff,0xf7,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xd7,0xfb,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xde,0x7f,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xf9,0xfd,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xfd,0xb9,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xdf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xff,0xfb,0xfd,0xdf,0x7f,0xfe,0xd7,0xff,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xef,0xbf,0xbb,0xb3,0xff,0x6b,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xff,0xff,0x9d,0xfb,0xff,0x6c,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0x7f,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xfb,0xff,0xbe,0xff,0x7f,0x9e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xff,0xfb,0xff,0xd7,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xfa,0xfe,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xf9,0xd9,0xf9,0xbf,0x7f,0x7f,0xd3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xf7,0xbf,0xfb,0xde,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xf7,0xbf,0xfe,0x7d,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0x7b,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xfd,0xd7,0xff,0xff,0xbe,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc4,0x7f,0xff,0xfc,0x7b,0xbf,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xe2,0xff,0xff,0xfd,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xf8,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xfd,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xef,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0x5f,0xff,0xfd,0xdc,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xfe,0x5f,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xfb,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0xd0,0xff,0xff,0xff,0x17,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0xff,0xff,0xfe,0x3b,0xff,0xff,0xdf,0x5f,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7f,0x7f,0xfc,0x27,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0x7f,0xff,0x6f,0xff,0xfd,0xdf,0xf0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbf,0x7f,0xff,0x3f,0xff,0xff,0xef,0xfb,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0xff,0xff,0xfe,0xff,0xf7,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0xdf,0xdf,0xff,0xfb,0x3f,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xff,0xff,0x7f,0xff,0xab,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xfb,0xbf,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x3f,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xf9,0xdf,0xff,0xfc,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xff,0xfa,0xfd,0x5b,0x6f,0xf6,0x80,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xe7,0xbd,0xbb,0xb3,0xff,0x60,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xfe,0xf8,0x9d,0xbb,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf7,0xc2,0xfd,0xdf,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf3,0xff,0xbe,0x27,0x4d,0x9e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf3,0xf9,0xde,0x47,0x4b,0x7c,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xf8,0x90,0x7f,0xbf,0x1f,0x51,0xfd,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xf9,0xd1,0x79,0xbe,0x3f,0x6f,0xd3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xf7,0xbe,0xfb,0xde,0x7f,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xbf,0x7d,0x7d,0xff,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xfe,0x7b,0xff,0xfb,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xf9,0xd7,0xff,0xf5,0x9e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc4,0x7f,0xf9,0xbc,0x63,0x1d,0xd7,0xff,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xe2,0xff,0xff,0xfd,0xef,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0xd9,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xd7,0xff,0xff,0xff,0xf8,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0x7f,0xcc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xeb,0xff,0xff,0x7f,0xaf,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x23,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xef,0x5f,0xff,0xfd,0xdc,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xce,0x5f,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0xd0,0xff,0xff,0xcf,0x17,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0xff,0xff,0xfe,0xb,0xff,0xff,0xdf,0x5f,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7f,0x7f,0xf8,0x7,0xff,0xff,0xfd,0xf7,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0x7f,0xfd,0x4f,0xff,0xfd,0xdf,0xf0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbf,0x7f,0xff,0x2f,0xff,0xff,0xef,0xfb,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x5f,0xff,0xfe,0xff,0xf7,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xff,0xbc,0x7f,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0xdc,0x5f,0xff,0xc3,0x3f,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x7f,0x7f,0xff,0xab,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xf8,0xbf,0x9f,0xff,0xcf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x8f,0xff,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x17,0xff,0xfe,0xff,0xef,0xff,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xfc,0xff,0xff,0xd9,0x4f,0xfe,0x7c,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xff,0xfa,0xfd,0x13,0x67,0xd2,0x80,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xe7,0xbd,0x1b,0x81,0xff,0x60,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xfa,0x50,0x99,0x9b,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf5,0x2,0xfd,0x9f,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf1,0xf9,0xbe,0x7,0x49,0x1e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf3,0xf9,0xde,0x7,0x4b,0x3c,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x80,0x79,0x9f,0x1f,0x51,0x35,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xf9,0x90,0x79,0xbe,0x3f,0x4f,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xf7,0xbe,0xfb,0xde,0x7f,0xff,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xbf,0x7c,0x39,0xff,0xff,0x9e,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xfe,0x7b,0xff,0xfb,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xf9,0xd7,0xff,0xd5,0x9e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc4,0x7f,0xf9,0x9c,0x63,0x5,0x13,0xff,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xe2,0xfe,0xff,0xfc,0xf,0xfd,0x8d,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xff,0x19,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xd3,0xff,0xff,0xff,0x38,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x7f,0xc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x1f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x0,0x77,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xc3,0x5f,0xff,0xc0,0x8c,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xcc,0x5f,0xff,0xf7,0xcc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xf3,0x3f,0xff,0xb7,0xc7,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0xd0,0xff,0xff,0xc7,0x7,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0xff,0xff,0xfe,0xb,0xff,0xff,0x8f,0x45,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7f,0x7f,0xf8,0x7,0xff,0xff,0xfd,0xe0,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xff,0x7f,0xfd,0x4f,0xff,0xfd,0xde,0xe0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbf,0x7f,0xff,0x2f,0xff,0xfd,0xef,0xf9,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x5f,0xff,0xfc,0xd3,0xe5,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0xdc,0xff,0xfe,0x30,0x41,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0xdc,0x5f,0xff,0x41,0xf,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x7f,0x77,0xff,0xa3,0xfd,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xf8,0xbf,0x93,0xff,0x47,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0x9f,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xdf,0xff,0xcf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x8f,0xff,0xfd,0xff,0xef,0xe7,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x7,0xff,0xfa,0xff,0xef,0xe7,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xfc,0x67,0xfb,0x59,0x4b,0xce,0x0,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xfe,0x92,0x39,0x10,0x23,0x0,0x0,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0xe3,0xbd,0x19,0x81,0xff,0x0,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xfa,0x50,0x19,0x9b,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf5,0x0,0xf9,0x9f,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf1,0xf9,0x9e,0x7,0x49,0x1e,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf1,0xf9,0xde,0x7,0x4b,0x3c,0xff,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x0,0x79,0x9f,0x1f,0x51,0x35,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xe0,0x0,0x79,0xbe,0x7f,0x27,0xc3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xe7,0x9e,0xf9,0x9c,0x7f,0xcf,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xe7,0xbe,0x7d,0x1c,0xf9,0xcd,0x9e,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7f,0x7a,0x59,0xf3,0xc9,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x3f,0xf9,0xd3,0xf2,0x81,0x1e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc0,0x79,0xb9,0x9c,0x62,0x1,0x0,0x7f,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc0,0xfe,0x9f,0xfc,0x7,0xfd,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdf,0xff,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xdb,0xff,0xff,0xff,0x19,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0x38,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xf3,0xff,0xff,0x7f,0xc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x1f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe1,0xff,0xff,0x0,0x37,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xc0,0x1f,0xff,0x80,0x8c,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xc0,0xf,0xff,0x93,0xc8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xc0,0x3f,0xff,0xb7,0x83,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0x80,0xff,0xff,0xc6,0x7,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0x7f,0xff,0xfe,0x3,0xff,0xff,0x84,0x5,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7e,0x7f,0xf0,0x7,0xff,0xff,0x81,0xe0,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xbb,0x7f,0xf9,0x4f,0xff,0xfd,0xc0,0xe0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbb,0x7f,0xff,0x2f,0xff,0xfd,0x82,0xf9,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x1f,0xff,0xfc,0x83,0xe5,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0x9c,0x7f,0xfe,0x30,0x1,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xff,0x9c,0xf,0xff,0x41,0xf,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x3e,0x3,0xff,0x83,0xf8,0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xe8,0x3f,0x83,0xff,0x47,0xfc,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xc7,0xff,0xdf,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xdf,0xff,0xf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xfe,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xfd,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xfe,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xfe,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x7b,0xff,0xff,0xff,0x8f,0xff,0xfc,0xff,0xcf,0xe7,0xff,0xff,0xff,0xff,0xc3,0xfc,0xfb,0xff,0xff,0xff,0x7,0xff,0xf8,0xff,0xcf,0xe7,0xff,0xff,0xff,0xff,0x39,0xfd,0xfd,0xff,0xff,0xfc,0x21,0xf8,0x18,0x3,0xce,0x0,0x7f,0xff,0xff,0xfc,0xfd,0xfb,0xff,0xff,0xff,0xe0,0x90,0x18,0x10,0x3,0x0,0x0,0x7f,0xff,0xff,0xef,0xff,0xfb,0xff,0x7f,0xff,0x83,0x9c,0x19,0x81,0xff,0x0,0x3e,0x7f,0xff,0xff,0xbf,0xff,0xf9,0xff,0x7f,0xff,0xc0,0x0,0x19,0x93,0xff,0x48,0x7e,0x7f,0xff,0xff,0x7f,0xff,0xf1,0xff,0xff,0xff,0xf0,0x0,0xf9,0x9f,0xff,0x49,0x1f,0xff,0xff,0xfc,0xff,0xff,0xfb,0xff,0xff,0xff,0xff,0xf1,0xf9,0x98,0x7,0x49,0x1c,0xff,0xff,0xfb,0xff,0xe7,0xfb,0xff,0x7f,0xff,0xff,0xf1,0xf9,0x98,0x7,0x49,0x18,0x7f,0xff,0xf7,0xff,0xff,0xff,0xfe,0xff,0xff,0xe0,0x0,0x79,0x9f,0xf,0x1,0x0,0xff,0xff,0xef,0xff,0xfe,0xfd,0xff,0xff,0xff,0xe0,0x0,0x79,0x9e,0x3f,0x1,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0x79,0xff,0xff,0xe7,0x9e,0x79,0x9c,0x7f,0xcb,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,0xff,0xe7,0x9e,0x78,0x18,0xf1,0xc9,0x1e,0x7f,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x6,0x78,0x11,0xf3,0xc9,0x1e,0x7f,0xff,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xfe,0x0,0xf9,0x93,0xf2,0x1,0x1e,0x7f,0xfe,0xff,0xff,0xff,0xff,0xfb,0xff,0xff,0xc0,0x70,0x39,0x90,0x2,0x1,0x0,0x7f,0xfe,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc0,0xfe,0x1f,0xf8,0x7,0xfd,0x80,0x7f,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xc7,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xb7,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xcf,0xff,0xff,0xfe,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0x19,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xf7,0xff,0xff,0xff,0xc3,0xff,0xff,0xff,0x10,0xff,0xff,0xec,0xff,0xff,0xff,0xfd,0xff,0xff,0xff,0xff,0xe3,0xff,0xff,0x7f,0xc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xef,0xff,0xff,0xff,0xe3,0xff,0xff,0x1f,0x8f,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xef,0xff,0xff,0xff,0xe1,0xff,0xff,0x0,0x7,0xff,0xff,0xff,0xbf,0xff,0xff,0xef,0xff,0xff,0xff,0xff,0xc0,0x1f,0xff,0x80,0x80,0xff,0xff,0xff,0x9f,0xff,0xff,0xcf,0xbf,0xff,0xff,0xff,0xc0,0xf,0xff,0x81,0xc0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x71,0xff,0xff,0xff,0xc0,0x3f,0xff,0x83,0x83,0xff,0xff,0xff,0xf7,0xff,0xfe,0xfe,0xde,0xff,0xff,0xff,0x80,0xff,0xff,0xc6,0x7,0xff,0xff,0xff,0xf9,0xff,0xfc,0x7e,0xbe,0x7f,0xff,0xfe,0x3,0xff,0xff,0x84,0x5,0xff,0xff,0xff,0xfc,0xff,0xf1,0xde,0x7f,0x7e,0x7f,0xf0,0x7,0xff,0xff,0x81,0xe0,0xff,0xff,0xff,0xff,0xc0,0x7f,0xff,0xff,0xbb,0x7f,0xf8,0xf,0xff,0xfd,0xc0,0xe0,0xff,0xff,0xff,0xff,0xed,0xff,0xff,0xff,0xbb,0x7f,0xfc,0xf,0xff,0xfc,0x80,0xf1,0xff,0xff,0xff,0xff,0xed,0xfe,0xdf,0xff,0xdf,0x7f,0xff,0x1f,0xff,0xfc,0x0,0xe1,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xff,0xff,0xff,0x18,0x7f,0xfe,0x30,0x1,0xff,0xff,0xff,0xff,0xbf,0xdf,0xff,0xff,0xfe,0xff,0xfe,0x1c,0xf,0xfe,0x1,0x9,0xff,0xff,0xff,0xff,0xbf,0xfe,0xff,0xff,0xfb,0xff,0xfe,0x3e,0x3,0xff,0x0,0xf8,0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf7,0xff,0xe8,0x3f,0x83,0xff,0x7,0xfc,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x7f,0xc3,0xff,0x9f,0xfe,0xf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf3,0xff,0xdf,0xff,0xf,0xff,0xff,0xff,0xbf,0xff,0xfb,0xf7,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8f,0xff,0xff,0xff,0xbf,0xf9,0xf3,0xfb,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff,0xef,0xfe,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xef,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xf7,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe6,0xff,0xf7,0xff,0xfc,0xff,0xcd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x96,0x9f,0xf2,0x7f,0x49,0xfb,0x4d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xff,0x9a,0xff,0xff,0xfb,0x6d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x64,0x3e,0xd3,0xff,0xf8,0xf8,0x69,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0x7e,0x1a,0x7c,0x79,0xfb,0x4d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xa2,0xff,0x38,0xfe,0xe1,0xf8,0x41,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x12,0x7f,0x19,0xfe,0xe3,0xfa,0x5d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x17,0x7f,0x40,0xfe,0x2b,0xff,0xdd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x67,0x7e,0xee,0xbe,0x5b,0xbf,0x9d,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x7f,0xff,0x3c,0xbb,0xbf,0x39,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9d,0xff,0x9e,0x7e,0x77,0xff,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xf9,0x9f,0x9f,0xff,0xbe,0xfe,0xf7,0xff,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xf9,0xdf,0x9f,0x1e,0xe,0xfc,0x31,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xaf,0xf9,0x9f,0x7,0xfe,0x3a,0xfc,0xe7,0xfc,0x39,0xff,0xff,0xff,0xff,0xff,0xff,0xa7,0xf8,0x3f,0x8a,0x7e,0x3a,0x7c,0x6c,0x73,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0x7,0xf9,0xdf,0x93,0xff,0x8a,0x78,0x6f,0xfa,0xc9,0xff,0xff,0xff,0xff,0xff,0xff,0x77,0xf9,0xcf,0x3f,0xfe,0x2a,0x7e,0x49,0xfa,0xd9,0xff,0xff,0xff,0xff,0xff,0xfe,0x73,0xf9,0xcc,0xb8,0x7e,0xae,0x7c,0xf9,0xfa,0x19,0xff,0xff,0xff,0xff,0xff,0xfe,0xfb,0xf9,0xdf,0xbd,0xfe,0xae,0x7e,0xfb,0xfb,0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x98,0x7f,0x3c,0x3f,0xbc,0x7e,0xe7,0xfb,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x9f,0xff,0xa7,0xff,0xbe,0xfe,0xf3,0xff,0xf3,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xdf,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0xe,0xff,0xfb,0xff,0xdf,0xfd,0xef,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xfa,0x7f,0x6c,0x7c,0xdb,0xff,0xd9,0xf9,0xef,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xf,0xff,0x1a,0xff,0xf1,0xff,0xcf,0xfa,0xef,0xf8,0x7f,0xff,0xff,0xff,0xff,0xff,0xb0,0xff,0x40,0xfb,0xc,0xf8,0x67,0xf6,0xe1,0xfe,0x9f,0xff,0xff,0xff,0xff,0xff,0xbc,0x7e,0x4c,0xfd,0x9c,0xfa,0x6b,0xe1,0xef,0xf2,0xcf,0xff,0xff,0xff,0xff,0xff,0xc,0x1e,0x18,0xff,0x89,0xfc,0xe3,0xfb,0xc3,0xfa,0x9f,0xff,0xff,0xff,0xff,0xff,0x40,0x3d,0xfd,0xfc,0x8,0x3c,0x67,0xf1,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xfe,0x18,0x7f,0xf7,0xfc,0x59,0xfd,0x7,0xfe,0x3,0xfc,0x3f,0xff,0xff,0xff,0xff,0xfd,0x7c,0x7f,0xf3,0xf9,0x99,0xfb,0x92,0xf1,0xbb,0xfa,0xcf,0xff,0xff,0xff,0xff,0xff,0xfc,0xf,0xf7,0xfb,0xb9,0xf7,0xf8,0xf7,0xb3,0xe6,0xe1,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x1f,0xbf,0xf1,0xff,0xfc,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xbc,0xe7,0xff,0xfe,0x7f,0xff,0xff,0x9f,0xfe,0x7e,0x3f,0xe3,0xff,0xff,0xff,0xff,0x8e,0xef,0xff,0xfe,0x63,0xff,0xe0,0x1f,0xfe,0x7e,0x7f,0xe3,0xff,0xff,0xff,0xff,0xef,0xc1,0xff,0xfe,0x7f,0xff,0xee,0x7f,0xfe,0x7e,0xff,0xf3,0xff,0xff,0xff,0xff,0xfe,0x1f,0xff,0x83,0x63,0xff,0xe6,0x7f,0xfe,0xfc,0xff,0xf3,0xff,0xff,0xff,0xfe,0x70,0xf0,0xfe,0x67,0x1f,0xff,0xe6,0x7f,0xfe,0xdd,0x8f,0xf3,0xff,0xff,0xff,0xff,0x39,0x89,0xff,0xe0,0x37,0xff,0xe6,0x1,0xfc,0xc9,0xc7,0xf3,0xff,0xff,0xff,0xff,0xf8,0xfb,0xff,0x27,0x23,0xff,0x6,0x7f,0xfc,0x0,0x27,0xf3,0xff,0xff,0xff,0xff,0xd8,0x67,0xff,0x8f,0xa7,0xff,0xe6,0x7f,0xc1,0x93,0xff,0xf3,0xff,0xff,0xff,0xff,0x92,0x66,0x3f,0xc7,0x8f,0xff,0xee,0x7f,0xfd,0x9f,0xff,0xf3,0xff,0xff,0xff,0xff,0xb6,0x3,0xff,0x83,0x1f,0xff,0xce,0x7f,0xfc,0x3e,0xf,0xf3,0xff,0xff,0xff,0xff,0x2c,0xf3,0xff,0x32,0xf,0xff,0xce,0x7f,0xfe,0x73,0xc7,0xff,0xff,0xff,0xff,0xfe,0x1c,0xf3,0xfe,0x7c,0xee,0xff,0x9e,0x7f,0xfe,0x33,0xcf,0xf3,0xff,0xff,0xff,0xfe,0x79,0xf3,0xfc,0xf3,0xe2,0xff,0x3e,0x7f,0xfc,0x9b,0x8f,0xe3,0xff,0xff,0xff,0xff,0xfb,0xe3,0xff,0xff,0xf0,0xfe,0xfe,0x7f,0xf3,0xb8,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xf8,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}
};


// 主程序开始
void setup() {
mPython.begin();
dfrobotRandomSeed();
DF_ChuShiHuaChangDu();
DF_KaiJiDongHua();
}
void loop() {
delay(100);
display.fillScreen(0);
display.point(mind_n_ShiWux, mind_n_ShiWuy);
DF_AnJian();
if ((mind_n_FangXiange==0)) {
mind_n_x += 1;
DF_TanChiSheHuoDong();
}
if ((mind_n_FangXiange==1)) {
mind_n_y -= 1;
DF_TanChiSheHuoDong();
}
if ((mind_n_FangXiange==2)) {
mind_n_x -= 1;
DF_TanChiSheHuoDong();
}
if ((mind_n_FangXiange==3)) {
mind_n_y += 1;
DF_TanChiSheHuoDong();
}
}


// 自定义函数
void DF_ChiDaoShiWu() {
if (((mind_n_x==mind_n_ShiWux) && (mind_n_y==mind_n_ShiWuy))) {
mind_n_ShenChangc += 1;
mind_l_X.insert(mind_n_ShenChangc-1, mind_l_X[(mind_n_ShenChangc - 1)-1]);
mind_l_Y.insert(mind_n_ShenChangc-1, mind_l_Y[(mind_n_ShenChangc - 1)-1]);
display.point((String("123").toInt()), (String("123").toInt()));
mind_n_ShiWux = (random(5, 60+1));
mind_n_ShiWuy = (random(5, 120+1));
mind_n_FenShuf += 1;
}
}
void DF_PengBi() {
if ((((mind_n_SheToux==0) || (mind_n_SheTouy==0)) || ((mind_n_SheToux==128) || (mind_n_SheTouy==64)))) {
display.drawImage(0, 0, 128, 64, imageMatrix[0]);
delay(2000);
display.fillScreen(0);
display.setCursor(10, 22);
display.print("获得分数:");
display.setCursor(82, 22);
display.print(mind_n_FenShuf);
DF_ChuShiHuaChangDu();
delay(2000);
}
}
void DF_KaiJiDongHua() {
display.drawImage(0, 0, 128, 64, imageMatrix[1]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[2]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[3]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[4]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[5]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[6]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[7]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[8]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[9]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[10]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[11]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[12]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[13]);
delay(200);
display.drawImage(0, 0, 128, 64, imageMatrix[14]);
delay(1000);
display.drawImage(0, 0, 128, 64, imageMatrix[15]);
delay(3000);
display.drawImage(0, 0, 128, 64, imageMatrix[16]);
delay(2000);
}
void DF_TanChiSheHuoDong() {
mind_n_SheToux = mind_n_x;
mind_n_SheTouy = mind_n_y;
mind_n_LieBiaod = mind_n_ShenChangc;
display.point(mind_n_SheToux, mind_n_SheTouy);
while (!(mind_n_LieBiaod==1)) {
mind_l_X.replace(mind_n_LieBiaod-1, mind_l_X[(mind_n_LieBiaod - 1)-1]);
mind_l_Y.replace(mind_n_LieBiaod-1, mind_l_Y[(mind_n_LieBiaod - 1)-1]);
display.point((String("123").toInt()), (String("123").toInt()));
mind_n_LieBiaod -= 1;
yield();
}
mind_l_X.replace(mind_n_LieBiaod-1, (String(mind_n_SheToux)));
mind_l_Y.replace(mind_n_LieBiaod-1, (String(mind_n_SheTouy)));
DF_ChiDaoShiWu();
DF_PengBi();
}
void DF_ChuShiHuaChangDu() {
mind_n_ShiWux = (random(1, 60+1));
mind_n_ShiWuy = (random(1, 120+1));
mind_n_x = 64;
mind_n_y = 32;
mind_n_ShenChangc = 6;
mind_n_FangXiange = 0;
mind_l_X.insert(1-1, "64");
mind_l_X.insert(2-1, "63");
mind_l_X.insert(3-1, "62");
mind_l_X.insert(4-1, "61");
mind_l_X.insert(5-1, "60");
mind_l_X.insert(6-1, "59");
mind_l_Y.insert(1-1, "32");
mind_l_Y.insert(2-1, "32");
mind_l_Y.insert(3-1, "32");
mind_l_Y.insert(4-1, "32");
mind_l_Y.insert(5-1, "32");
mind_l_Y.insert(6-1, "32");
display.point(64, 32);
display.point(63, 32);
display.point(62, 32);
display.point(61, 32);
display.point(60, 32);
display.point(59, 32);
display.point(59, 32);
}
void DF_AnJian() {
if ((buttonA.isPressed())) {
mind_n_FangXiange += 1;
if ((mind_n_FangXiange==4)) {
mind_n_FangXiange = 0;
}
}
if ((buttonB.isPressed())) {
mind_n_FangXiange -= 1;
if ((mind_n_FangXiange==-1)) {
mind_n_FangXiange = 3;
}
}
}

eagler8

2020年06月26日

Mind+ 实验图形编程


eagler8

2020年06月26日

Mind+ 实验图形编程2


eagler8

2020年06月26日

贪吃蛇


eagler8

2020年06月26日

4、平衡自行车(shworld)

#MicroPython动手做(35)——小游戏
#平衡自行车

from mpython import *

#自行车BMP图像转字节数据参考
#https://mpython.readthedocs.io/zh/master/tutorials/basics/oled.html#id4
bmp = bytearray([\
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X00,0X0F,0XF8,0X00,0X00,
0X00,0X00,0X18,0X00,0X0C,0X0C,0X00,0X00,0X00,0X00,0X08,0X00,0X04,0X04,0X00,0X00,
0X00,0X00,0X04,0X00,0X02,0X38,0X00,0X00,0X00,0X00,0X07,0XFF,0XFF,0X00,0X00,0X00,
0X00,0X00,0X07,0X00,0X07,0X00,0X00,0X00,0X00,0X00,0X09,0X00,0X04,0X80,0X00,0X00,
0X00,0X00,0X11,0X80,0X0C,0XC0,0X00,0X00,0X00,0XFF,0X30,0X80,0X18,0X7F,0XE0,0X00,
0X03,0X80,0XE0,0XC0,0X30,0X70,0X38,0X00,0X06,0X00,0XF0,0X60,0X21,0XB0,0X06,0X00,
0X08,0X00,0X88,0X20,0X43,0X10,0X03,0X00,0X10,0X01,0X04,0X30,0X86,0X08,0X01,0X00,
0X30,0X03,0X0E,0XFF,0X84,0X0C,0X00,0X80,0X20,0X1F,0XFF,0X31,0X8C,0X04,0X00,0XC0,
0X60,0X32,0X02,0X20,0X8C,0X00,0X00,0XC0,0X60,0X22,0X02,0X24,0XC8,0X00,0X00,0XC0,
0X60,0X1F,0X02,0X3C,0X8C,0X00,0X00,0XC0,0X30,0X0F,0XFF,0XFF,0X04,0X00,0X00,0X80,
0X10,0X00,0X04,0X18,0X04,0X00,0X01,0X80,0X18,0X00,0X0C,0X08,0X02,0X00,0X03,0X00,
0X0C,0X00,0X18,0X00,0X01,0X00,0X06,0X00,0X07,0X00,0X70,0X00,0X00,0XC0,0X0C,0X00,
0X01,0XFF,0XC0,0X00,0X00,0X3F,0XF0,0X00,0X00,0X3E,0X00,0X00,0X00,0X0F,0XC0,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
])
#无限循环
while True:
bikeWidth=60 #自行车图片宽度
bikeHeight=30 #自行车图片高度
bikeInitX=34 #初始化自行车的X中央点,屏幕宽度128/2-补偿自行车宽度30=34
bikeInitY=35 #初始化自行车的Y点,手动测量调为35即可
y=accelerometer.get_y() #如官方说明图所示,y轴和x轴是相反的,所以这里获取的是y轴加速度
if y<=1 and y>=-1: #定界,其实不定也行。用于下面设定变量转换
offsetX=int(numberMap(y,1,-1,-60,128)) #-60=最小宽度0-自行车宽度,128为屏幕最大宽度
#offsetX主要把y轴的加速度转换成屏幕的宽度分辨率
#numberMap变量转换说明
#numberMap(输入值,需映射的最小值,需映射的最大值,映射出的最小值,映射出的最大值)
#比如numberMap(i,1,2,10000,20000)
#即i是变量,范围在1~2之间,通过numberMap函数你可以得到转换后的范围,在10000-2000之间
#如i是1.5则返回15000,i是1.8返回18000,以此类推
move_x=offsetX #移动的坐标
#清除
oled.fill(0)
#填充图形
oled.Bitmap(move_x,bikeInitY, bmp, bikeWidth , bikeHeight, 1)
#填充左侧钉子,手绘坐标
oled.line(0,64,2,58,1)
oled.line(2,58,4,64,1)
#填充右侧钉子,手绘坐标
oled.line(127,64,125,58,1)
oled.line(125,58,123,64,1)
#判断是否碰到左右钉子边界,并填充文字提示
if move_x+bikeWidth >=125:
oled.DispChar('老铁,扎前胎了!', 60-14, 0)
if move_x+bikeWidth<=58:
oled.DispChar('老铁,扎后胎了!',0,0)
#显示图形文字
oled.show()

eagler8

2020年06月26日

#MicroPython动手做(35)——小游戏

#平衡自行车(实验视频)

https://v.youku.com/v_show/id_XNDcyNzY3NTUzMg==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

eagler8

2020年06月26日

5、贪吃蛇2

使用三轴传感器控制前后左右

#MicroPython动手做(35)——小游戏
#贪吃蛇2

from mpython import *
import random, time

WIDTH, HEIGHT = 127, 63


class Direction():
"""
贪吃蛇方向,含上下左右
"""

UP = 0
DOWN = 1
LEFT = 2
RIGHT = 3


class GameState():
"""
游戏状态
"""
PLAYING = 0
PAUSE = 1
WIN = 2
FAIL = 3


class Snake():
"""
贪吃蛇

构建snake

:param cube(int): 网格大小默认4
"""

def __init__(self, cube=4):

self.cube_width = cube
self.grid_width_num, self.grid_height_num = WIDTH // self.cube_width, HEIGHT // self.cube_width
self.snake_body = []
self.snake_body.append((int(self.grid_width_num // 2 * self.cube_width),
int(self.grid_height_num // 2 * self.cube_width))) # 添加贪吃蛇的“头”
self.food_pos = self.generate_food()
self.direction = Direction.LEFT

def draw_grids(self):
"""
绘制网格
"""
for i in range(self.grid_width_num + 1):
oled.vline(self.cube_width * i, 0, HEIGHT, 1)

for i in range(self.grid_height_num + 1):
oled.hline(0, self.cube_width * i, WIDTH, 1)

def draw_body(self):
"""
绘制snake
"""
for sb in self.snake_body:
# pygame.draw.rect(screen, WHITE, (sb[0], sb[1], CUBE_WIDTH, CUBE_WIDTH))
oled.fill_rect(sb[0], sb[1], self.cube_width, self.cube_width, 1)

def generate_food(self):
"""
随机产生一个食物
"""
self.food_pos = (random.randint(0, self.cube_width - 1), random.randint(0, self.grid_height_num - 1))
return self.food_pos

def draw_food(self):
"""
绘制食物
"""
oled.fill_rect(self.food_pos[0] * self.cube_width, self.food_pos[1] * self.cube_width, self.cube_width,
self.cube_width, 1)

def grow(self):
"""
判断贪吃蛇是否吃到了事物,如果吃到了我们就加长小蛇的身体
"""
if self.snake_body[0][0] == self.food_pos[0] * self.cube_width and \
self.snake_body[0][1] == self.food_pos[1] * self.cube_width:
return True

return False

def refresh(self):
"""
更新小蛇身体的位置
"""
for i in range(len(self.snake_body) - 1, 0, -1):
self.snake_body[i] = self.snake_body[i - 1]

def move(self):
"""
移动snake身体
"""
if self.direction == Direction.UP:
self.snake_body[0] = (self.snake_body[0][0], self.snake_body[0][1] - self.cube_width)

elif self.direction == Direction.DOWN:
self.snake_body[0] = (self.snake_body[0][0], self.snake_body[0][1] + self.cube_width)

# top += cube_width
elif self.direction == Direction.LEFT:

self.snake_body[0] = (self.snake_body[0][0] - self.cube_width, self.snake_body[0][1])

# left -= cube_width
elif self.direction == Direction.RIGHT:
self.snake_body[0] = (self.snake_body[0][0] + self.cube_width, self.snake_body[0][1])


class Game():
"""
snake游戏控制
"""

def __init__(self, fps=8):
self.snake = Snake()
self.get_body = self.snake.snake_body
self.state = None
self.fps = fps
self.handles_cb = None

def is_win(self):
"""
判断是否赢
"""
return len(self.get_body) == WIDTH * HEIGHT - 1

def is_fail(self):
"""
判断是否输
"""
if not 0 <= self.get_body[0][0] < WIDTH or not 0 <= self.get_body[0][1] < HEIGHT:
return True

return False

@property
def score(self):
"""
游戏分数
"""
return len(self.get_body) - 1

def handles_accele(self, threshold=0.2):
"""
掌控板加速度控制
"""
x = accelerometer.get_x()
y = accelerometer.get_y()
if y <= 1 and y >= -1:
if abs(y) > threshold:
if y > 0:
self.snake.direction = Direction.LEFT
else:
self.snake.direction = Direction.RIGHT
if x <= 1 and x >= -1:
if abs(x) > threshold:
if x > 0:
self.snake.direction = Direction.DOWN
else:
self.snake.direction = Direction.UP

def handles_callback(self, f):
"""
游戏控制回调函数,可外部自定义控制方式
"""
self.handles_cb = f

def run(self):
"""
游戏运行
"""
self.state = GameState.PLAYING
update_time = time.ticks_ms()

while self.state == GameState.PLAYING: # 游戏状态为PLAYING

self.handles_cb() # 游戏控制回调函数

# 显示帧刷新,刷新方块位置
if time.ticks_diff(time.ticks_ms(), update_time) > (1000 // self.fps):

last_pos = self.get_body[-1] # 这里需要保存一下尾部的位置,如果小蛇迟到了食物,需要在尾部增长

self.snake.refresh() # 更新小蛇身体的位置
self.snake.move() # 改变头部的位置

if self.snake.grow(): # 判断小蛇是否吃到了事物,吃到了就成长,如果吃到了事物我们就产生一个新的食物
self.snake.generate_food()
self.get_body.append(last_pos)

oled.fill(0) # 清屏
self.snake.draw_body() # 画小蛇的身体
self.snake.draw_food() # 画出食物

oled.show() # 显示生效
update_time = time.ticks_ms() # 刷新帧时间

if self.is_fail(): # 判断if输
self.state = GameState.FAIL
break
if self.is_win(): # 判断if赢
self.state = GameState.WIN
break

if self.state == GameState.FAIL: # 输了,显示分数
oled.fill(0)
oled.text('Game over!', 25, 20)
oled.text('Score:%d' % self.score, 25, 32)
oled.show()

if self.state == GameState.WIN: # 赢了!
oled.fill(0)
oled.text('You win!', 25, 20)
oled.show()


if __name__ == '__main__':
game = Game(fps=8)
game.handles_callback(game.handles_accele)
game.run()

eagler8

2020年06月26日

6、记忆力大比拼(shworld)

产生8位随机键序→累加用户的输入键序→判断键序

#MicroPython动手做(35)——小游戏
#记忆力大比拼

from mpython import *
import time
import random
isStart=False #是否首次载入,不然游戏中按A键又初始化了
inputKey='' #键序,统计用户输入的键序,如11112222
inputKey_STR='' #同键序,文本型,只不过用来显示,当前"当前您已输入AAABBBB"
keyOrder='' #获取到的8位随机键序,如11112222

#获取随机8位键序
def makeKeyOrder():
keys=''
for i in range(8): #循环8次
key = random.randrange(1, 3)#获取范围1到2, 1为A键,2位B键
keys = keys + str(key)
return keys
keyOrder = makeKeyOrder() #返回获取到的8位键序,如11112222


#覆写oledshow,主要减少重复代码量
def oledshow(str,y=0,isClear=True):
if isClear==False:
oled.DispChar(str, 0,y)
oled.show()
return
oled.fill(0)
oled.DispChar(str, 0,y)
oled.show()


#倒计时显示3-2-1
def countdownshow():
j=4
for i in range(3):
j = j-1
oledshow('倒计时:%s'%str(j),0)
time.sleep(1)


#每次用户按键后触发该方法
def checkKey():
global keyOrder,inputKey,inputKey_STR #引用全局变量,如果不修改变量,不需要申明global
if len(inputKey)==8: #如果当前按键数等于8位才开始进行对比
if inputKey==keyOrder: #如果输入的8位键序和生成的8位键序匹配
oledshow('恭喜您,按对了!...',0)#按键正确,输出内容
else:
oledshow('别灰心,再接再厉!...',0)#否则按键失败,输出内容

#重新开始下一轮
time.sleep(2) #暂停2秒,避免内容切换过快看不到
inputKey='' #清空用户输入的键值,如11112222
inputKey_STR='' #清空用户输入的键值,文本型,如AAAABBBB
oledshow('下一题开始:',0)
time.sleep(2)
keyOrder = makeKeyOrder() #重新获取8位键序,11112222
countdownshow() #倒计时显示3-2-1
showKey() #显示要记忆的键序


#显示键序
#主要是把数字11112222,转换成对应的AAAABBBB,很好理解,多看看
def showKey():
global keyOrder #引用全局变量
key_str='' #局部变量
for key in keyOrder:
if key=='1':
key_str=key_str+"A"
if key=='2':
key_str=key_str+"B"
oledshow(key_str,0)
time.sleep(1)
oledshow('',0)


#按键A触发事件
def on_button_a_down(_):
time.sleep_ms(100) #延迟调高点,避免产生2次按键事件
global isStart,inputKey,inputKey_STR #引用全局变量

if button_a.value() == 1: return
if isStart == True:
inputKey=inputKey+'1' #统计用户键序
inputKey_STR=inputKey_STR+'A' #统计用户键序,文本型,用来显示当前的输入
oledshow('您输入的是:'+inputKey_STR,0) #显示当前的输入
checkKey() #输入的键序进行校验匹配
return
isStart=True
oledshow('游戏现在开始...',0)
time.sleep(1)
countdownshow()
showKey()

#按键B触发事件
def on_button_b_down(_):
time.sleep_ms(100) #延迟调高点,避免产生2次按键事件
global inputKey,inputKey_STR
if button_b.value() == 1: return
if isStart == True:
inputKey=inputKey+'2' #统计用户键序
inputKey_STR=inputKey_STR+'B' #统计用户键序,文本型,用来显示当前的输入
oledshow('您输入的是:'+inputKey_STR,0) #显示当前的输入
checkKey() #输入的键序进行校验匹配
return

#按键触发监视
button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)
button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)

#游戏启动
oledshow('【记忆力大比拼】',0,False)
oledshow('记忆屏幕出现的键序',16,False)
oledshow('如ABABAA,请依次键入',32,False)
oledshow('按A键自动开始游戏',48,False)

eagler8

2020年06月26日

记忆力大比拼


eagler8

2020年06月26日

7、吃鸡游戏(luyi)





eagler8

2020年06月26日

#MicroPython动手做(35)——小游戏
#吃鸡游戏

from mpython import *
import time
import random
import music

def zhunxing():
global grade, zidan, foodstate, yy, diY, xx, diX
oled.hline((xx - 10), yy, 20, 1)
oled.vline(xx, (yy - 10), 20, 1)
oled.circle(xx, yy, 6, 1)

random.seed(time.ticks_cpu())


oled.fill(0)
oled.DispChar("今晚吃鸡?", 32, 26, 1)
oled.show()
time.sleep(3)
xx = 64
yy = 32
foodstate = True
grade = 0
zidan = 10
while True:
if foodstate:
diX = random.randint(4, 120)
diY = random.randint(4, 60)
foodstate = False
xx = int(numberMap(accelerometer.get_y(),(-0.5),0.5,2,125))
yy = int(numberMap(accelerometer.get_x(),0.5,(-0.5),2,61))
if xx >= 2 and xx <= 125 and yy >= 2 and yy <= 61:
oled.fill(0)
oled.fill_circle(diX, diY, 4, 1)
zhunxing()
oled.show()
if button_a.value() == 0 or button_b.value() == 0:
rgb.fill((int(255), int(0), int(0)))
rgb.write()
time.sleep_ms(1)
music.play('C3:1')
zidan = zidan + -1
if diX >= xx - 2 and diX <= xx + 2 and diY >= yy - 2 and diY <= yy + 2:
foodstate = True
grade = grade + 1
if zidan <= 0:
oled.fill(0)
oled.DispChar(" 游戏结束", 0, 16, 1)
oled.DispChar(str(" 得分:") + str(grade), 0, 32, 1)
oled.show()
break
time.sleep_ms(100)
rgb.fill( (0, 0, 0) )
rgb.write()
time.sleep_ms(1)

eagler8

2020年06月26日

mPython X 实验图形编程


eagler8

2020年06月26日

mPython X 实验图形编程2


eagler8

2020年06月26日

吃鸡游戏


eagler8

2020年06月26日

8、模拟计算器(shworld)

通过按键A向左移动光标,按键B向右移动光标

金手指Y键确认选择

支持多元运算,最长显示结果限定在16位左右,防止超出屏幕宽度

如果运算错误会输出显示,比如被除数为0或者其他错误乱输入

#MicroPython动手做(35)——小游戏
#模拟计算器

from mpython import *

#图片bitmap数组
bmp = bytearray([\
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,
0X80,0X0C,0X00,0X60,0X03,0X00,0X18,0X00,0XC0,0X06,0X00,0X30,0X01,0X80,0X08,0X00,
0X80,0X0C,0X00,0X60,0X03,0X00,0X18,0X00,0XC0,0X06,0X3E,0X30,0X61,0X83,0X08,0X00,
0X82,0X0C,0X3C,0X61,0XE3,0X02,0X18,0X40,0XC1,0X06,0X02,0X30,0XB1,0X84,0X88,0X00,
0X86,0X0C,0X44,0X61,0X23,0X06,0X18,0X40,0XC3,0X06,0X02,0X31,0X11,0X84,0X48,0X00,
0X82,0X0C,0X04,0X60,0X23,0X06,0X18,0X70,0XC2,0X06,0X04,0X30,0XA1,0X84,0XC8,0X00,
0X82,0X0C,0X08,0X60,0XC3,0X0A,0X18,0X08,0XC7,0XC6,0X04,0X30,0XE1,0X87,0X88,0X00,
0X82,0X0C,0X08,0X60,0X23,0X12,0X18,0X08,0XC4,0X46,0X08,0X31,0X91,0X81,0X88,0X00,
0X82,0X0C,0X10,0X60,0X23,0X1F,0X18,0X88,0XC4,0X46,0X08,0X31,0X11,0X81,0X08,0X00,
0X82,0X0C,0X20,0X61,0X63,0X02,0X18,0X58,0XC6,0XC6,0X08,0X30,0XB1,0X83,0X08,0X00,
0X82,0X0C,0X3C,0X60,0X83,0X00,0X18,0X20,0XC3,0X86,0X00,0X30,0X41,0X80,0X08,0X00,
0X80,0X0C,0X00,0X60,0X03,0X00,0X18,0X00,0XC0,0X06,0X00,0X30,0X01,0X80,0X08,0X00,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X00,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,
0X80,0X0C,0X00,0X60,0X03,0X00,0X18,0X00,0XC0,0X06,0X00,0X20,0X00,0X00,0X00,0X00,
0X82,0X0C,0X00,0X60,0X03,0X00,0X18,0X00,0XC0,0X06,0X1C,0X20,0X00,0X00,0X00,0X00,
0X85,0X0C,0X00,0X60,0X03,0X10,0X58,0X08,0XC0,0X06,0X34,0X20,0X00,0X00,0X00,0X00,
0X88,0X8C,0X10,0X60,0X03,0X08,0X98,0X10,0XDF,0XF6,0X22,0X20,0X00,0X00,0X00,0X00,
0X88,0X8C,0X10,0X60,0X03,0X01,0X18,0X10,0XC0,0X06,0X20,0X20,0X00,0X00,0X00,0X00,
0X88,0X8C,0X7C,0X61,0XE3,0X06,0X18,0X20,0XC0,0X06,0X20,0X20,0X00,0X00,0X00,0X00,
0X88,0X8C,0X10,0X60,0X03,0X06,0X18,0X00,0XC0,0X06,0X22,0X20,0X00,0X00,0X00,0X00,
0X8C,0X8C,0X10,0X60,0X03,0X09,0X18,0X40,0XDF,0XF6,0X26,0X20,0X00,0X00,0X00,0X00,
0X87,0X0C,0X00,0X60,0X03,0X10,0X98,0X00,0XC0,0X06,0X1C,0X20,0X00,0X00,0X00,0X00,
0X80,0X0C,0X00,0X60,0X03,0X00,0X18,0X80,0XC0,0X06,0X00,0X20,0X00,0X00,0X00,0X00,
0X80,0X0C,0X00,0X60,0X03,0X00,0X18,0X00,0XC0,0X06,0X00,0X20,0X00,0X00,0X00,0X00,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,
0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
])
#[建议]
#这一块由于数据太大写入太慢影响调试速度
#如果技术上跟的上的话,可以把背景事先截图,然后删掉代码,这样写入很快,然后盲按按钮调试

#主要逻辑是判断坐标来取值,把值拼接起来形成字符串,最后通过eval()函数运算
#实现方法很多种,自己的代码3个月后也不一定看懂,最好的教程是自己实现和学习
#by阿唯




#-------------------变量定义-------------------
#矩形光标的宽高
RECT_CURSOR=[13,12]

#第一行各键序XY坐标,Y轴固定0
#偏移量13为矩形光标的宽度
KEY_ONE=[0,0]
KEY_TWO=[13,0]
KEY_THREE=[26,0]
KEY_FOUR=[39,0]
KEY_FIVE=[52,0]
KEY_SIX=[65,0]
KEY_SEVEN=[78,0]
KEY_EIGHT=[91,0]
KEY_NINE=[104,0]
#第二行各键序XY坐标,Y轴固定13
KEY_ZERO=[0,13]
KEY_ADD=[13,13]
KEY_MINUS=[26,13]
KEY_MULTI=[39,13]
KEY_DIVIDE=[52,13]
KEY_EQUAL=[65,13]
KEY_CLEAR=[78,13]

#定义键序坐标列表,用于按钮左右移动,通过列表索引的增减来移动
KEY_LIST=[KEY_ONE,KEY_TWO,KEY_THREE,KEY_FOUR,KEY_FIVE,KEY_SIX,
KEY_SEVEN,KEY_EIGHT,KEY_NINE,KEY_ZERO,KEY_ADD,KEY_MINUS,
KEY_MULTI,KEY_DIVIDE,KEY_EQUAL,KEY_CLEAR]

#定义键序值列表,用于取值运算和显示
KEY_LIST_VAL=["1","2","3","4","5","6","7","8","9","0","+","-","*","/","=","c"]

#当前键序0,即引用KEY_LIST[0],也就是默认在1的位置
KEY_INDEX=0

#数值内容,通过eval()对字符串表达式直接运算
RESULT_CALC=""






#-------------------函数方法-------------------
#移动光标,例moveCursor("left")
def moveCursor(direction=None):
oled.fill(0)
oled.bitmap(0, 0, bmp, 128, 64, 1)
oled.DispChar("输出:"+RESULT_CALC,10,37)

global KEY_INDEX #如果要对全局变量修改的话需要引用
if(direction=="left"): #如果是向左移动,则KEY_LIST索引-1
if KEY_INDEX>0: #只有索引>0才可以进行递减,防止越界
KEY_INDEX=KEY_INDEX-1

if(direction=="right"): #同理
if KEY_INDEX<15:
KEY_INDEX=KEY_INDEX+1

_x=KEY_LIST[KEY_INDEX][0] #通过KEY_LIST的索引来获取矩形光标的填充位置
_y=KEY_LIST[KEY_INDEX][1]

RECT_CURSOR_WIDTH=RECT_CURSOR[0] #获取矩形光标的宽高
RECT_CURSOR_HEIGHT=RECT_CURSOR[1]

oled.fill_rect(_x, _y, RECT_CURSOR_WIDTH, RECT_CURSOR_HEIGHT, 1) #填充画面
oled.show()






#-------------------程序入口-------------------
#第一次方向参数direction不传,用于渲染一次主画面
moveCursor()








#-------------------按钮监听-------------------
#按钮a触发事件
def on_button_a_down(_):
if button_a.value() == 1: return
moveCursor("left")

#按钮b触发事件
def on_button_b_down(_):
if button_b.value() == 1: return
moveCursor("right")

#按钮监听回调函数
button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)
button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)


#金手指触摸监听
while True:
time.sleep_ms(50) #延迟调高,按钮迟钝,反之延迟越低越容易误触
if(touchPad_Y.read() < 100):
keyVal=KEY_LIST_VAL[KEY_INDEX] #通过全局索引获取键值列表的值
if(KEY_INDEX<=9): #如果索引<=9,说明按的是前面10个数字,直接累加就行
RESULT_CALC=RESULT_CALC+keyVal
if(keyVal=="+"): #如果按的是+好,累加就可以,下面同理
RESULT_CALC=RESULT_CALC+"+"
if(keyVal=="-"):
RESULT_CALC=RESULT_CALC+"-"
if(keyVal=="*"):
RESULT_CALC=RESULT_CALC+"*"
if(keyVal=="/"):
RESULT_CALC=RESULT_CALC+"/"
if(keyVal=="="): #当按了等号后,会获得一个累加的字符串变量RESULT_CALC
try: #RESULT_CALC比如为"1+2*3",这里加try屏蔽运算错误
RESULT_CALC=str(eval(RESULT_CALC)) #核心函数eval()进行字符串运算,运算不成立会报错
RESULT_CALC=RESULT_CALC[:16] #取结果集左边16位字符串,防止超出画面显示
moveCursor() #最后提前调用一次移动函数显示画面
RESULT_CALC="" #置结果集为空,不会生效,下一次移动才会生效
continue #跳出本次循环,不然最后moveCursor()又要重画一次
except: #异常处理
RESULT_CALC="输入错误"
moveCursor()
RESULT_CALC=""
continue
if(keyVal=="c"):
RESULT_CALC=""
moveCursor() #不传参数direction=None(不移动光标),直接渲染主画面

eagler8

2020年06月26日

9、是男人就下一百层(luyi)

设置Y/O触摸键控制人物左右移动

#MicroPython动手做(35)——小游戏
#是男人就下一百层

from mpython import *

import time

def man(x, y):
global x1, y1, xman, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8, x9, y9, x10, y10, yman, down
oled.fill_circle(x, (y - 25), 3, 1)
oled.fill_rect((x - 5), (y - 21), 10, 10, 1)
oled.fill_rect((x - 4), (y - 11), 3, 11, 1)
oled.fill_rect((x + 1), (y - 11), 3, 11, 1)

def dangban():
global x, y, x1, y1, xman, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8, x9, y9, x10, y10, yman, down
oled.fill_rect(0, 0, 5, 8, 1)
oled.fill_rect(0, 8, 5, 8, 1)
oled.fill_rect(0, 17, 5, 8, 1)
oled.fill_rect(0, 26, 5, 8, 1)
oled.fill_rect(0, 35, 5, 8, 1)
oled.fill_rect(0, 44, 5, 8, 1)
oled.fill_rect(0, 53, 5, 8, 1)
oled.fill_rect(0, 62, 5, 8, 1)

from machine import Timer

_status_p = _status_y = _status_t = _status_h = _status_o = _status_n = 0
def on_touchpad_P_pressed():pass
def on_touchpad_P_unpressed():pass
def on_touchpad_Y_pressed():pass
def on_touchpad_Y_unpressed():pass
def on_touchpad_T_pressed():pass
def on_touchpad_T_unpressed():pass
def on_touchpad_H_pressed():pass
def on_touchpad_H_unpressed():pass
def on_touchpad_O_pressed():pass
def on_touchpad_O_unpressed():pass
def on_touchpad_N_pressed():pass
def on_touchpad_N_unpressed():pass

tim12 = Timer(12)

def timer12_tick(_):
global _status_p, _status_y, _status_t, _status_h, _status_o, _status_n
try:
touchPad_P.read();pass
except:
return
if touchPad_P.read() < 400:
if 1 != _status_p:_status_p = 1;on_touchpad_P_pressed()
elif 0 != _status_p:_status_p = 0;on_touchpad_P_unpressed()
if touchPad_Y.read() < 400:
if 1 != _status_y:_status_y = 1;on_touchpad_Y_pressed()
elif 0 != _status_y:_status_y = 0;on_touchpad_Y_unpressed()
if touchPad_T.read() < 400:
if 1 != _status_t:_status_t = 1;on_touchpad_T_pressed()
elif 0 != _status_t:_status_t = 0;on_touchpad_T_unpressed()
if touchPad_H.read() < 400:
if 1 != _status_h:_status_h = 1;on_touchpad_H_pressed()
elif 0 != _status_h:_status_h = 0;on_touchpad_H_unpressed()
if touchPad_O.read() < 400:
if 1 != _status_o:_status_o = 1;on_touchpad_O_pressed()
elif 0 != _status_o:_status_o = 0;on_touchpad_O_unpressed()
if touchPad_N.read() < 400:
if 1 != _status_n:_status_n = 1;on_touchpad_N_pressed()
elif 0 != _status_n:_status_n = 0;on_touchpad_N_unpressed()

tim12.init(period=100, mode=Timer.PERIODIC, callback=timer12_tick)

def on_touchpad_Y_pressed():
global x, y, x1, y1, xman, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8, x9, y9, x10, y10, yman, down
xman = xman + -5

def on_touchpad_O_pressed():
global x, y, x1, y1, xman, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8, x9, y9, x10, y10, yman, down
xman = xman + 5

def dangban2():
global x, y, x1, y1, xman, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8, x9, y9, x10, y10, yman, down
oled.fill_rect(122, 0, 5, 8, 1)
oled.fill_rect(122, 8, 5, 8, 1)
oled.fill_rect(122, 17, 5, 8, 1)
oled.fill_rect(122, 26, 5, 8, 1)
oled.fill_rect(122, 35, 5, 8, 1)
oled.fill_rect(122, 44, 5, 8, 1)
oled.fill_rect(122, 53, 5, 8, 1)
oled.fill_rect(122, 62, 5, 8, 1)
x1 = 10
y1 = 59
x2 = 70
y2 = 95
x3 = 30
y3 = 129
x4 = 60
y4 = 165
x5 = 90
y5 = 199
x6 = 70
y6 = 235
x7 = 55
y7 = 269
x8 = 40
y8 = 305
x9 = 20
y9 = 339
x10 = 50
y10 = 375
xman = 20
yman = 33
while True:
down = True
oled.fill(0)
dangban()
dangban2()
oled.fill_rect(x1, y1, 30, 5, 1)
oled.fill_rect(x2, y2, 25, 5, 1)
oled.fill_rect(x3, y3, 20, 5, 1)
oled.fill_rect(x4, y4, 30, 5, 1)
oled.fill_rect(x5, y5, 20, 5, 1)
oled.fill_rect(x6, y6, 25, 5, 1)
oled.fill_rect(x7, y7, 25, 5, 1)
oled.fill_rect(x8, y8, 30, 5, 1)
oled.fill_rect(x9, y9, 20, 5, 1)
oled.fill_rect(x10, y10, 30, 5, 1)
man(xman, yman)
oled.show()
if xman >= x1 and xman <= x1 + 30 and yman == y1:
down = False
if xman >= x2 and xman <= x2 + 25 and yman == y2:
down = False
if xman >= x3 and xman <= x3 + 20 and yman == y3:
down = False
if xman >= x4 and xman <= x4 + 30 and yman == y4:
down = False
if xman >= x5 and xman <= x5 + 20 and yman == y5:
down = False
if xman >= x6 and xman <= x6 + 25 and yman == y6:
down = False
if xman >= x7 and xman <= x7 + 25 and yman == y7:
down = False
if xman >= x8 and xman <= x8 + 30 and yman == y8:
down = False
if xman >= x9 and xman <= x9 + 20 and yman == y9:
down = False
if xman >= x10 and xman <= x10 + 30 and yman == y10:
down = False
if down:
yman = yman + 1
else:
yman = yman + -1
y1 = y1 + -1
y2 = y2 + -1
y3 = y3 + -1
y4 = y4 + -1
y5 = y5 + -1
y6 = y6 + -1
y7 = y7 + -1
y8 = y8 + -1
y9 = y9 + -1
y10 = y10 + -1
time.sleep_ms(50)

eagler8

2020年06月26日

mPython 实验图形编程


eagler8

2020年06月26日

mPython 实验图形编程2


eagler8

2020年06月26日

mPython 实验图形编程3


eagler8

2020年06月26日

是男人就下一百层


eagler8

2020年06月26日

10、秒表计时器

秒表主要是用来统计秒数的。它有一般有两个按键。A键和B键。

第一次按下A键时,开始计时。

第二次按下A键时,暂停计时。

再按下A键时,继续上一步暂停的计时。

按下B键,归零。

#MicroPython动手做(35)——小游戏
#秒表计时器

from mpython import *
import time
import framebuf
import font.digiface_44
from machine import Timer

def on_button_b_down(_):
global AKey, timeCount
time.sleep_ms(10)
if button_b.value() == 1: return
timeCount = 0
oled.fill(0)
display_font(font.digiface_44, "00:00", 2, 10, False, 2)
oled.show()
tim1.deinit()
AKey = 1

def timer1_tick(_):
global AKey, timeCount
# 大于等于60,表示已经计时1小时,超出设计范围,退出计时,并恢复初始
if timeCount // 60 >= 60:
oled.fill(0)
display_font(font.digiface_44, "00:00", 0, 0, False, 2)
oled.show()
tim1.deinit()
else:
timeCount = timeCount + 1
# 分的部分,如果是一位数(0-9),则在前面补0
if timeCount // 60 < 10:
# 秒的部分,如果是一位数(0-9),则在前面补0
if timeCount % 60 < 10:
oled.fill(0)
display_font(font.digiface_44, (''.join([str(x) for x in ["0", timeCount // 60, ":", "0", timeCount % 60]])), 2, 10, False, 2)
oled.show()
else:
oled.fill(0)
display_font(font.digiface_44, (''.join([str(x) for x in ["0", timeCount // 60, ":", timeCount % 60]])), 2, 10, False, 2)
oled.show()
else:
if timeCount % 60 < 10:
oled.fill(0)
display_font(font.digiface_44, (''.join([str(x) for x in [timeCount // 60, ":", "0", timeCount % 60]])), 2, 10, False, 2)
oled.show()
else:
oled.fill(0)
display_font(font.digiface_44, (''.join([str(x) for x in [timeCount // 60, ":", timeCount % 60]])), 2, 10, False, 2)
oled.show()

tim1 = Timer(1)

def on_button_a_down(_):
global AKey, timeCount
time.sleep_ms(10)
if button_a.value() == 1: return
if AKey == 1:
AKey = 0
tim1.init(period=1000, mode=Timer.PERIODIC, callback=timer1_tick)
else:
AKey = 1
tim1.deinit()

def display_font(_font, _str, _x, _y, _wrap, _z=0):
_start = _x
for _c in _str:
_d = _font.get_ch(_c)
if _wrap and _x > 128 - _d[2]: _x = _start; _y += _d[1]
if _c == '1' and _z > 0: oled.fill_rect(_x, _y, _d[2], _d[1], 0)
oled.blit(framebuf.FrameBuffer(bytearray(_d[0]), _d[2], _d[1],
framebuf.MONO_HLSB), (_x+int(_d[2]/_z)) if _c=='1' and _z>0 else _x, _y)
_x += _d[2]

button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)


oled.fill(0)
oled.DispChar("秒表计时器", 34, 26, 1)
oled.show()
time.sleep(3)
oled.fill(0)
display_font(font.digiface_44, "00:00", 2, 10, False, 2)
oled.show()
timeCount = 0
# A中,1表示初始状态,接下来要计数,当它变成0时,表示接下来需要暂停
AKey = 1

eagler8

2020年06月26日

mPython X 实验图形编程


eagler8

2020年06月26日

mPython X 实验图形编程2


eagler8

2020年06月26日

秒表计时器




eagler8

2020年06月26日

11、俄罗斯方块

#MicroPython动手做(35)——小游戏
#俄罗斯方块

from mpython import *
import math
import random, time

class Brick():
def __init__(self, p_position):
self.position = p_position

def draw(self):

x = self.position[1] * brick_size
y = self.position[0] * brick_size
oled.fill_rect(brick_size * (field_height - 1) - x, y, brick_size, brick_size, 1)


class Block():
def __init__(self, p_bricks_layout, p_direction):
self.bricks_layout = p_bricks_layout
self.direction = p_direction
self.init_position = (field_width // 2 - 2, 0)
self.cur_layout = self.bricks_layout[self.direction]
self.position = self.init_position
self.stopped = False
self.move_interval = 500
self.last_move = 0
self.bricks = []
for (x, y) in self.cur_layout:
self.bricks.append(Brick((self.position[0] + x, self.position[1] + y)))

def draw(self):
for brick in self.bricks:
brick.draw()

def isLegal(self, layout, position):
(x0, y0) = position
for (x, y) in layout:
if x + x0 < 0 or y + y0 < 0 or x + x0 >= field_width or y + y0 >= field_height:
return False
if field_map[y + y0][x + x0] != 0:
return False
return True

def left(self):
new_position = (self.position[0] - 1, self.position[1])
if self.isLegal(self.cur_layout, new_position):
self.position = new_position
self.refresh_bircks()

def right(self):
new_position = (self.position[0] + 1, self.position[1])
if self.isLegal(self.cur_layout, new_position):
self.position = new_position
self.refresh_bircks()

def down(self):
(x, y) = (self.position[0], self.position[1] + 1)
while self.isLegal(self.cur_layout, (x, y)):
self.position = (x, y)
self.refresh_bircks()
y += 1

def refresh_bircks(self):
for (brick, (x, y)) in zip(self.bricks, self.cur_layout):
brick.position = (self.position[0] + x, self.position[1] + y)

def stop(self):
global field_bricks
global score
self.stopped = True
ys = []
for brick in self.bricks:
field_bricks.append(brick)
(x, y) = brick.position
if y not in ys:
ys.append(y)
field_map[y][x] = 1

eliminate_count = 0
ys.sort()

for y in ys:
if 0 in field_map[y]:
continue
eliminate_count += 1
for fy in range(y, 0, -1):
field_map[fy] = field_map[fy - 1][:]
field_map[0] = [0 for i in range(field_width)]

tmp_field_bricks = []
for fb in field_bricks:
(fx, fy) = fb.position
if fy < y:
fb.position = (fx, fy + 1)
tmp_field_bricks.append(fb)
elif fy > y:
tmp_field_bricks.append(fb)
field_bricks = tmp_field_bricks
if eliminate_count == 1:
score += 1
elif eliminate_count == 2:
score += 2
elif eliminate_count == 3:
score += 4
elif eliminate_count == 4:
score += 6

def update(self, time):
self.draw()
if time - self.last_move >= self.move_interval:
new_position = (self.position[0], self.position[1] + 1)
if self.isLegal(self.cur_layout, new_position):
self.position = new_position
self.refresh_bircks()
self.last_move = time
else:
self.stop()

def rotate(self):
new_direction = (self.direction + 1) % len(self.bricks_layout)
new_layout = self.bricks_layout[new_direction]
if not self.isLegal(new_layout, self.position):
return
self.direction = new_direction
self.cur_layout = new_layout
for (brick, (x, y)) in zip(self.bricks, self.cur_layout):
brick.position = (self.position[0] + x, self.position[1] + y)
self.refresh_bircks()
self.draw()


# 0: oooo
# 1: oo
# oo
# 2: o
# ooo
# 3: o
# oo
# o
# 4: o
# oo
# o
# 5: ooo
# o
# 6: ooo
# o
bricks_layout_0 = (((0, 0), (0, 1), (0, 2), (0, 3)), ((0, 1), (1, 1), (2, 1), (3, 1)))
bricks_layout_1 = (((1, 0), (2, 0), (1, 1), (2, 1)), )
bricks_layout_2 = (
((1, 0), (0, 1), (1, 1), (2, 1)),
((0, 1), (1, 0), (1, 1), (1, 2)),
((1, 2), (0, 1), (1, 1), (2, 1)),
((2, 1), (1, 0), (1, 1), (1, 2)),
)
bricks_layout_3 = (
((0, 1), (1, 1), (1, 0), (2, 0)),
((0, 0), (0, 1), (1, 1), (1, 2)),
)
bricks_layout_4 = (
((0, 0), (1, 0), (1, 1), (2, 1)),
((1, 0), (1, 1), (0, 1), (0, 2)),
)
bricks_layout_5 = (
((0, 0), (1, 0), (1, 1), (1, 2)),
((0, 2), (0, 1), (1, 1), (2, 1)),
((1, 0), (1, 1), (1, 2), (2, 2)),
((2, 0), (2, 1), (1, 1), (0, 1)),
)
bricks_layout_6 = (
((2, 0), (1, 0), (1, 1), (1, 2)),
((0, 0), (0, 1), (1, 1), (2, 1)),
((0, 2), (1, 2), (1, 1), (1, 0)),
((2, 2), (2, 1), (1, 1), (0, 1)),
)

field_width, field_height = 16, 30
brick_size = 4
field_map = [[0 for i in range(field_width)] for i in range(field_height)]
field_bricks = []
score = 0
running = True
threshhold = 400


def drawField():
for brick in field_bricks:
brick.draw()


def getBlock():
block_type = random.randint(0, 6)
if block_type == 0:
return Block(bricks_layout_0, random.randint(0, len(bricks_layout_0) - 1))
elif block_type == 1:
return Block(bricks_layout_1, random.randint(0, len(bricks_layout_1) - 1))
elif block_type == 2:
return Block(bricks_layout_2, random.randint(0, len(bricks_layout_2) - 1))
elif block_type == 3:
return Block(bricks_layout_3, random.randint(0, len(bricks_layout_3) - 1))
elif block_type == 4:
return Block(bricks_layout_4, random.randint(0, len(bricks_layout_4) - 1))
elif block_type == 5:
return Block(bricks_layout_5, random.randint(0, len(bricks_layout_5) - 1))
elif block_type == 6:
return Block(bricks_layout_6, random.randint(0, len(bricks_layout_6) - 1))


def run():
global running
btn_n_stat, btn_o_stat, btn_t_stat, btn_p_stat = [0] * 4

while running:

cur_block = getBlock()

if not cur_block.isLegal(cur_block.cur_layout, cur_block.position):
cur_block.draw()
running = False
continue

while not cur_block.stopped:

oled.fill(0)
ticks = time.ticks_ms()
cur_block.update(ticks)
drawField()
oled.show()

if touchPad_T.read() < threshhold and btn_t_stat == 0:
cur_block.rotate()
btn_t_stat = 1
elif touchPad_T.read() >= threshhold:
btn_t_stat = 0

if touchPad_P.read() < threshhold and btn_p_stat == 0:
cur_block.down()
btn_p_stat = 1
elif touchPad_P.read() >= threshhold:
btn_p_stat = 0

if touchPad_N.read() < threshhold and btn_n_stat == 0:
cur_block.left()
btn_n_stat = 1
elif touchPad_N.read() >= threshhold:
btn_n_stat = 0

if touchPad_O.read() < threshhold and btn_o_stat == 0:
cur_block.right()
btn_o_stat = 1
elif touchPad_O.read() >= threshhold:
btn_o_stat = 0
oled.fill(0)
oled.text('Game over!', 25, 20)
oled.text('Score:%d' % score, 25, 32)
oled.show()


if __name__ == '__main__':
run()

eagler8

2020年06月26日

俄罗斯方块


eagler8

2020年06月27日

12、 乒乓球

#MicroPython动手做(35)——小游戏
# 乒乓球

from mpython import *
import music


class Pong():
def __init__(self):

self.running = True
self.start = False
self.ball_rad = 5
self.bats_position = 0
self.bats_width = 15
self.bats_height = 4

self.ball_x = self.bats_width // 2
self.ball_y = 64 - (self.ball_rad + self.bats_height + 1)
self.inc_x, self.inc_y = 1, 1
self.score = 0

def collision(self):

if self.ball_x >= 128 - self.ball_rad or self.ball_x < self.ball_rad:
self.inc_x = -self.inc_x
if self.ball_y >= 64 - (self.ball_rad + self.bats_height) or self.ball_y <= self.ball_rad:
self.inc_y = -self.inc_y

def update(self):
self.ball_x = self.ball_x + self.inc_x
self.ball_y = self.ball_y + self.inc_y
self.bats_position = min(max(self.bats_position, 0), 128 - self.bats_width)

def is_hit(self):
# print('ball:', self.ball_x, self.ball_y, 'bats:', self.bats_position)
if self.ball_y >= 64 - (self.ball_rad + self.bats_height):
if self.ball_x >= self.bats_position + self.bats_width + self.ball_rad or self.ball_x <= self.bats_position - self.ball_rad:

return False
self.score += 1
return True

def run(self):

while self.running:
if button_a.value() == 0 and button_b.value() == 1:
self.bats_position -= 2
self.start = True
if button_a.value() == 1 and button_b.value() == 0:
self.bats_position += 2
self.start = True

if self.start:
self.update()
self.collision()

if self.is_hit() == False:
self.running = False
continue

oled.fill(0)
oled.fill_circle(self.ball_x, self.ball_y, self.ball_rad, 1)
oled.fill_rect(self.bats_position, 64 - self.bats_height, self.bats_width, self.bats_height, 1)
oled.show()

oled.text('Game over!', 20, 20)
oled.text('Score %d' % self.score, 20, 32)
oled.show()


if __name__ == '__main__':
pong = Pong()
pong.run()

eagler8

2020年06月27日

#MicroPython动手做(35)——小游戏

# 乒乓球(实验视频)

https://v.youku.com/v_show/id_XNDcyODQ0MzYyNA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

eagler8

2020年06月27日

13、飞行小鸟

#MicroPython动手做(35)——小游戏
#飞行小鸟

from mpython import *
from framebuf import FrameBuffer
import framebuf
import time, uos,urandom

# 16 x 12
BIRD = bytearray([
0x7, 0xe0, 0x18, 0xf0, 0x21, 0xf8, 0x71, 0xec, 0xf9, 0xec, 0xfc, 0xfc, 0xbe, 0x7e, 0x4c, 0x81, 0x71, 0x7e, 0x40,
0x82, 0x30, 0x7c, 0xf, 0x80
])

# 16 x 32
PIPE_TOP = bytearray([
0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20,
0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c,
0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0xff, 0xff, 0x80, 0xf, 0x80,
0xf, 0x80, 0xf, 0x80, 0xf, 0xff, 0xff
])
PIPE_DOWN = bytearray([
0xff, 0xff, 0x80, 0xf, 0x80, 0xf, 0x80, 0xf, 0x80, 0xf, 0xff, 0xff, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c,
0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20,
0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c,
0x20, 0x1c, 0x20, 0x1c, 0x20, 0x1c
])


# Bitmap images
bird_size = (16, 12)
pipe_size = (16, 32)


WIDTH = 128
HEIGHT = 64


"""飞行小鸟类"""
class Bird:
def __init__(self):
self.height = bird_size[1]
self.y = HEIGHT // 2 - self.height // 2
self.wing_power = 4
self.gravity = 0.8
self.vel = -self.wing_power

# 下落
def drop(self):
self.vel += self.gravity
self.y = int(self.y + self.vel)

# 飞行
def flap(self):
self.vel = -self.wing_power

# 是否坠落
def crashed(self):
y_limit = HEIGHT - self.height
return self.y > y_limit

"""障碍类"""
class Obstacle:
def __init__(self, x,size ):
self.size =size
self.gap = urandom.randint(6 + self.size, HEIGHT - 6 - self.size) # 随机生成间隙大小
self.x = x # 距离鸟大小
self.score = 0 # 分数
self.rate = 3 # 速率

# 移动
def scroll(self):
self.x -= self.rate
if self.x < -pipe_size[0]:
self.score += 1
self.x = WIDTH
self.gap = urandom.randint(6 + self.size, HEIGHT - 6 - self.size)

# 是否碰撞
def collided(self, y):
if self.x < bird_size[0] and self.x > -pipe_size[0] and \
(self.gap - y > self.size or y + bird_size[1] - self.gap > self.size):
return True
else:
return False


class Game():
def __init__(self,gap_size):

# 创建鸟和管道的framebuffer
self.bird_fb = FrameBuffer(BIRD, bird_size[0], bird_size[1], framebuf.MONO_HLSB)
self.pipe_top_fb = FrameBuffer(PIPE_TOP, pipe_size[0], pipe_size[1], framebuf.MONO_HLSB)
self.pipe_down_fb = FrameBuffer(PIPE_DOWN, pipe_size[0], pipe_size[1], framebuf.MONO_HLSB)

self.gap_size = gap_size
self.high_score = 0
self.pressed = False
self.game_state = 0
self.flappy_bird = None
self.obstacle_1 = None
self.obstacle_2 = None

# 保存最高分
def write_high_score(self,n):
f = open('fb_high_score.txt', 'w')
f.write(str(n))
f.close()

# 读取最高分
def read_high_score(self):
if 'fb_high_score' in uos.listdir():
f = open('fb_high_score.txt', 'r')
high_score = f.read()
f.close()
return int(high_score)
else:
self.write_high_score(0)
return 0

# 绘制
def draw(self):
oled.fill(0)
oled.blit(self.bird_fb, 0, self.flappy_bird.y)
oled.blit(self.pipe_top_fb, self.obstacle_1.x, self.obstacle_1.gap - self.gap_size - pipe_size[1])
oled.blit(self.pipe_down_fb, self.obstacle_1.x, self.obstacle_1.gap + self.gap_size)
oled.blit(self.pipe_top_fb, self.obstacle_2.x, self.obstacle_2.gap - self.gap_size - pipe_size[1])
oled.blit(self.pipe_down_fb, self.obstacle_2.x, self.obstacle_2.gap + self.gap_size)
oled.fill_rect(WIDTH // 2 - 13, 0, 26, 9, 0)
oled.text('%03d' % (self.obstacle_1.score + self.obstacle_2.score), WIDTH // 2 - 12, 0)
oled.show()


def _clicked(self):
if button_a.value() == 0 and not self.pressed:
self.pressed = True
return True
elif button_a.value() == 1 and self.pressed:
self.pressed = False
return False

# 开机画面
def game_start(self):
oled.fill(0)
oled.blit(self.pipe_down_fb, (WIDTH - pipe_size[0]) // 2, HEIGHT - 12)
oled.blit(self.bird_fb, (WIDTH - bird_size[0]) // 2, HEIGHT - 12 - bird_size[1])
oled.rect(0, 0, WIDTH, HEIGHT, 1)
oled.text('F L A P P Y', WIDTH // 2 - 44, 3)
oled.text('B I R D', WIDTH // 2 - 28, 13)
oled.text('Record: ' + '%03d' % self.high_score, WIDTH // 2 - 44, HEIGHT // 2 - 6)
oled.show()
self.game_state = 1

def game_waiting(self):
if self._clicked():
self.flappy_bird = Bird() # 实例小鸟对象
self.obstacle_1 = Obstacle(WIDTH,self.gap_size) # 实例第一个障碍对象
self.obstacle_2 = Obstacle(WIDTH + (WIDTH + pipe_size[0]) // 2,self.gap_size) # 实例第二个障碍对象
self.game_state = 2

def game_running(self):
if self._clicked():
self.flappy_bird.flap()
self.flappy_bird.drop()
if self.flappy_bird.crashed():
self.flappy_bird.y = HEIGHT - self.flappy_bird.height # 边界限制
self.game_state = 3
self.obstacle_1.scroll()
self.obstacle_2.scroll()
if self.obstacle_1.collided(self.flappy_bird.y) or self.obstacle_2.collided(self.flappy_bird.y):
self.game_state = 3
self.draw()

def game_over(self):
oled.fill_rect(WIDTH // 2 - 32, 10, 64, 23, 0)
oled.rect(WIDTH // 2 - 32, 10, 64, 23, 1)
oled.text('G A M E', WIDTH // 2 - 28, 13)
oled.text('O V E R', WIDTH // 2 - 28, 23)
self.score = self.obstacle_1.score + self.obstacle_2.score
if self.score > self.high_score:
self.high_score = self.score
oled.fill_rect(WIDTH // 2 - 48, 37, 96, 14, 0)
oled.rect(WIDTH // 2 - 48, 37, 96, 14, 1)
oled.text('New record!', WIDTH // 2 - 44, 40)
self.write_high_score(self.high_score)
oled.show()

try:
self.send_score(self.score)
except:
pass
self.game_state = 1


def run(self):
while True:
if self.game_state == 0: self.game_start()
elif self.game_state == 1: self.game_waiting()
elif self.game_state == 2: self.game_running()
elif self.game_state == 3: self.game_over()



if __name__ == '__main__':
game=Game(gap_size = 16)
game.run()

eagler8

2020年06月27日

飞行小鸟


eagler8

2020年06月28日

14、打砖块(大于)

#MicroPython动手做(35)——小游戏
#打砖块

import time
import random
from mpython import *

random.seed(time.ticks_cpu())


my_listy = []
my_listx = []
m = 0
n = 0
score = 0
x = random.randint(35, 90)
y = 60
cx = 1
cy = -1
Lx = 50
for count in range(3):
m = 0
for count in range(16):
my_listx.append(m)
m = m + 8
n = 0
for count in range(3):
for count in range(16):
my_listy.append(n)
n = n + 8
while True:
m = 0
n = 0
oled.fill(0)
for count in range(48):
oled.rect(my_listx[m], my_listy[n], 8, 8, 1)
if y <= my_listy[n] + 10:
if x >= my_listx[m] and x <= my_listx[m] + 8:
my_listx[m] = (-40)
my_listy[n] = (-40)
cy = 1
score = score + 1
m = m + 1
n = n + 1
oled.fill_rect(Lx, 62, 30, 2, 1)
oled.circle(x, y, 3, 1)
oled.show()
if button_a.value() == 0:
Lx = Lx + -3
if Lx <= 0:
Lx = 0
if button_b.value() == 0:
Lx = Lx + 3
if Lx >= 107:
Lx = 107
x = x + cx
y = y + cy
if x <= 2:
cx = 1
if x >= 125:
cx = -1
if y <= 2:
cy = 1
if y > 60:
if x >= Lx - 2 and x <= Lx + 32:
cy = -1
else:
oled.fill(0)
oled.DispChar(str("游戏结束,得分为:") + str(score), 0, 16, 1)
oled.show()
break

eagler8

2020年06月28日

mPython X 实验图形编程


eagler8

2020年06月28日

mPython X 实验图形编程2


eagler8

2020年06月28日

打砖块


eagler8

2020年06月28日

15、滚雪球(大于)

#MicroPython动手做(35)——小游戏
#滚雪球

from mpython import *
import time
import random
import math

def on_button_a_down(_):
global i, x, y, r, yn, xn, my_listy, my_listx, j
time.sleep_ms(10)
if button_a.value() == 1: return
x = 4
y = 32
xn = 0
yn = 0
r = 4
i = 0
j = 10
my_listx = []
my_listy = []
for count in range(10):
my_listx.append((random.randint(20, 120)))
my_listy.append((random.randint(1, 60)))
oled.fill(0)
for count in range(10):
oled.pixel(my_listx[xn], my_listy[yn], 1)
xn = xn + 1
yn = yn + 1
oled.show()
while True:
oled.fill_circle(x, y, r, 1)
oled.DispChar((str(int(r))), 0, 0, 1)
oled.show()
if get_tilt_angle('Y') < -15:
x = x + 1
if get_tilt_angle('X') < -10:
y = y + -1
if get_tilt_angle('X') > 10:
y = y + 1
if x > 130:
break
i = 0
my_func()

def my_func():
global i, x, y, r, yn, xn, my_listy, my_listx, j
for count in range(int(j)):
if math.sqrt((x - my_listx[i]) ** 2 + (y - my_listy[i]) ** 2) <= r:
r = r + 2
my_listx[i] = (-1)
my_listy[i] = (-1)
i = i + 1

random.seed(time.ticks_cpu())

def get_tilt_angle(_axis):
_Ax = accelerometer.get_x()
_Ay = accelerometer.get_y()
_Az = accelerometer.get_z()
if 'X' == _axis:
_T = math.sqrt(_Ay ** 2 + _Az ** 2)
if _Az < 0: return math.degrees(math.atan2(_Ax , _T))
else: return 180 - math.degrees(math.atan2(_Ax , _T))
elif 'Y' == _axis:
_T = math.sqrt(_Ax ** 2 + _Az ** 2)
if _Az < 0: return math.degrees(math.atan2(_Ay , _T))
else: return 180 - math.degrees(math.atan2(_Ay , _T))
elif 'Z' == _axis:
_T = math.sqrt(_Ax ** 2 + _Ay ** 2)
if (_Ax + _Ay) < 0: return 180 - math.degrees(math.atan2(_T , _Az))
else: return math.degrees(math.atan2(_T , _Az)) - 180
return 0

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)

eagler8

2020年06月28日

滚雪球


eagler8

2020年06月28日

mPython X 实验图形编程


eagler8

2020年06月28日

mPython X 实验图形编程2


eagler8

2020年07月06日

17、石头剪刀布(阿勇)

#MicroPython动手做(35)——小游戏

#石头剪刀布

from mpython import *

import time

import random

from machine import Timer

def on_button_a_down(_):

global y, x, k, j

time.sleep_ms(10)

if button_a.value() == 1: return

x = random.randint(1, 3)

xianshi(x, 10)

def on_button_b_down(_):

global y, x, k, j

time.sleep_ms(10)

if button_b.value() == 1: return

y = random.randint(1, 3)

xianshi(y, 90)

_status_p = _status_y = _status_t = _status_h = _status_o = _status_n = 0

def on_touchpad_P_pressed():pass

def on_touchpad_P_unpressed():pass

def on_touchpad_Y_pressed():pass

def on_touchpad_Y_unpressed():pass

def on_touchpad_T_pressed():pass

def on_touchpad_T_unpressed():pass

def on_touchpad_H_pressed():pass

def on_touchpad_H_unpressed():pass

def on_touchpad_O_pressed():pass

def on_touchpad_O_unpressed():pass

def on_touchpad_N_pressed():pass

def on_touchpad_N_unpressed():pass

tim12 = Timer(12)

def timer12_tick(_):

global _status_p, _status_y, _status_t, _status_h, _status_o, _status_n

try:

touchPad_P.read();pass

except:

return

if touchPad_P.read() < 400:

if 1 != _status_p:_status_p = 1;on_touchpad_P_pressed()

elif 0 != _status_p:_status_p = 0;on_touchpad_P_unpressed()

if touchPad_Y.read() < 400:

if 1 != _status_y:_status_y = 1;on_touchpad_Y_pressed()

elif 0 != _status_y:_status_y = 0;on_touchpad_Y_unpressed()

if touchPad_T.read() < 400:

if 1 != _status_t:_status_t = 1;on_touchpad_T_pressed()

elif 0 != _status_t:_status_t = 0;on_touchpad_T_unpressed()

if touchPad_H.read() < 400:

if 1 != _status_h:_status_h = 1;on_touchpad_H_pressed()

elif 0 != _status_h:_status_h = 0;on_touchpad_H_unpressed()

if touchPad_O.read() < 400:

if 1 != _status_o:_status_o = 1;on_touchpad_O_pressed()

elif 0 != _status_o:_status_o = 0;on_touchpad_O_unpressed()

if touchPad_N.read() < 400:

if 1 != _status_n:_status_n = 1;on_touchpad_N_pressed()

elif 0 != _status_n:_status_n = 0;on_touchpad_N_unpressed()

tim12.init(period=100, mode=Timer.PERIODIC, callback=timer12_tick)

def on_touchpad_P_pressed():

global y, x, k, j

x = 0

y = 0

oled.fill(0)

oled.DispChar("玩家1按A键玩家2按B键", 0, 0, 1)

oled.show()

def xianshi(j, k):

global y, x

if j == 1:

oled.blit(image_picture.load('face/rock_s.pbm', 0), k, 17)

if j == 2:

oled.blit(image_picture.load('face/scissors_s.pbm', 0), k, 17)

if j == 3:

oled.blit(image_picture.load('face/paper_s.pbm', 0), k, 17)

oled.show()

def panduan():

global y, x, k, j

if x == y:

oled.DispChar(" 打平", 50, 50, 1)

else:

if x - y == -1 or x - y == 2:

oled.DispChar("玩家1赢", 50, 50, 1)

else:

oled.DispChar("玩家2赢", 50, 50, 1)

oled.show()

random.seed(time.ticks_cpu())

button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)

button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)

image_picture = Image()

oled.fill(0)

oled.DispChar(" 石头剪刀布小游戏", 0, 0, 1)

oled.DispChar("玩家1按A键玩家2按B键", 0, 16, 1)

oled.DispChar(" 系统自动判断谁输谁赢", 0, 32, 1)

oled.DispChar(" 按P键开始玩", 0, 48, 1)

oled.show()

x = 0

y = 0

while True:

if x != 0 and y != 0:

panduan()

eagler8

2020年07月06日

石头剪刀布


eagler8

2020年07月06日

mPython X 实验图形编程1


eagler8

2020年07月06日

mPython X 实验图形编程2


有 2 条回复

心若幽兰

2020年08月07日

太赞了,果断收藏