查看: 301|回复: 50

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

[复制链接]
00.jpg

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

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

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 12:13:42

3、贪吃蛇(EVE)

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

[C] 纯文本查看 复制代码
//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;
		}
	}
}


回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 11:14:05

2、简单连连看(shworld)

玩法说明
按A键左移动
按B键右移动
按金手指T或H来选择


[Python] 纯文本查看 复制代码
#MicroPython动手做(35)——体验小游戏
#简单连连看

from mpython import *
import random

#--------------------------------------------------------
#图片转换参考[url]https://mpython.readthedocs.io/zh/master/tutorials/basics/oled.html#id3[/url]
#图片定义
#苹果
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)


回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 20:20:37

11、俄罗斯方块

[Python] 纯文本查看 复制代码
#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()

回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 09:42:10

1、弹球游戏


[Python] 纯文本查看 复制代码
#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()

回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 09:46:13

mPython X 实验图形编程


01.jpg
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 10:29:01

01-.jpg
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 10:53:15

回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 11:28:23

简单连连看

17.gif
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 12:19:01

Mind+ 实验图形编程

18.jpg
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 12:27:48

Mind+ 实验图形编程2

19.jpg
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 12:32:08

25.gif
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 12:40:48

4、平衡自行车(shworld)


[Python] 纯文本查看 复制代码
#MicroPython动手做(35)——小游戏
#平衡自行车

from mpython import *

#自行车BMP图像转字节数据参考
#[url]https://mpython.readthedocs.io/zh/master/tutorials/basics/oled.html#id4[/url]
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()

回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 13:45:31

本帖最后由 驴友花雕 于 2020-6-26 13:47 编辑

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

https://v.youku.com/v_show/id_XN ... oneSokuUgc_1.dtitle



回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 13:54:40

5、贪吃蛇2
使用三轴传感器控制前后左右


[Python] 纯文本查看 复制代码
#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()

回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 14:02:55

6、记忆力大比拼(shworld)
产生8位随机键序→累加用户的输入键序→判断键序


[Python] 纯文本查看 复制代码
#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)

回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 14:17:15

记忆力大比拼

32.gif
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 14:32:54

本帖最后由 驴友花雕 于 2020-6-26 14:41 编辑

7、吃鸡游戏(luyi)


33.jpg
36.jpg
34.jpg
35.jpg
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 14:39:02

[Python] 纯文本查看 复制代码
#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)

回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 14:47:32

mPython X 实验图形编程

37.jpg
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 15:02:06

mPython X 实验图形编程2

38.jpg
回复

使用道具 举报

驴友花雕  中级技匠
 楼主|

发表于 2020-6-26 15:10:16

43.gif
回复

使用道具 举报

123下一页
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail