| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503 |
- import ResSprite from "../../ResSprite";
- import { Url } from "../../Url";
- //Block的Type
- export enum BlockType {
- TYPE_A,
- TYPE_B,
- TYPE_C,
- TYPE_D,
- TYPE_E,
- TYPE_F,
- TYPE_G,
- TYPE_H,
- TYPE_I,
- TYPE_J,
- TYPE_K,
- TYPE_L,
- TYPE_M,
- TYPE_N,
- }
- //Block偏移方向
- export enum BlockOffset {
- NONE,
- UP,
- DOWN,
- LEFT,
- RIGHT,
- LEFTANDUP,
- LEFTANDDOWN,
- RIGHTANDUP,
- RIGHTANDDOWN
- }
- export enum BlockState {
- HIDE, ///隐藏
- SHOW ///显示
- }
- //地区位置
- export interface Region {
- i: number;
- j: number;
- }
- export interface ReConfig {
- iscanplaced: boolean; //是否可以放置
- indexarr: number[]; //可以放置的区域
- block_color?: string //颜色
- }
- // 棋盘数据
- export interface BlockBaData {
- index_i: number, //行
- index_j: number, //列
- block_ba_node: any, //节点
- block_state: BlockState, //状态
- block_sprite: ResSprite, //图片
- block_color: string //颜色
- }
- // 定义块的数据结构
- export class BlockConfig {
- block_arr: number[][]; //块的形状
- block_type: BlockType; //块的类型
- block_type_index: number; //块的类型索引
- block_offset: BlockOffset; //块的偏移
- block_color: string //块的颜色
- constructor(arr: number[][], type: BlockType, index: number, offset: BlockOffset) {
- this.block_arr = arr;
- this.block_type = type;
- this.block_type_index = index;
- this.block_offset = offset;
- this.block_color = Url.BLOCK.BLUE
- }
- }
- // 存储多个块的静态数据,定义底部方块形状
- export const BlocksAll: BlockConfig[] = [
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_A, 0, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_B, 0, BlockOffset.DOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_B, 1, BlockOffset.LEFT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_B, 2, BlockOffset.UP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_B, 3, BlockOffset.RIGHT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_C, 0, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_C, 1, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_D, 0, BlockOffset.LEFTANDUP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_D, 1, BlockOffset.RIGHTANDUP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_D, 2, BlockOffset.RIGHTANDDOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_D, 3, BlockOffset.LEFTANDDOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_E, 0, BlockOffset.LEFTANDDOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_E, 1, BlockOffset.LEFTANDUP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_E, 2, BlockOffset.RIGHTANDUP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_E, 3, BlockOffset.RIGHTANDDOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],//4个格子的
- [0, 0, 1, 1, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_F, 0, BlockOffset.LEFTANDDOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],//4个格子的
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_F, 1, BlockOffset.LEFTANDUP),
- new BlockConfig([
- [0, 0, 0, 0, 0],//4个格子的
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_F, 2, BlockOffset.RIGHTANDUP),
- new BlockConfig([
- [0, 0, 0, 0, 0],//4个格子的
- [0, 1, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_F, 3, BlockOffset.RIGHTANDDOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_G, 0, BlockOffset.UP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_G, 1, BlockOffset.RIGHT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 1, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_G, 2, BlockOffset.DOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_G, 3, BlockOffset.LEFT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_H, 0, BlockOffset.LEFT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_H, 1, BlockOffset.UP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_H, 2, BlockOffset.DOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_H, 3, BlockOffset.RIGHT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_I, 0, BlockOffset.LEFT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_I, 1, BlockOffset.UP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_I, 2, BlockOffset.RIGHT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_I, 3, BlockOffset.DOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_J, 0, BlockOffset.DOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 1, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_J, 1, BlockOffset.LEFT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_J, 2, BlockOffset.UP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_J, 3, BlockOffset.RIGHT),
- new BlockConfig([
- [0, 0, 0, 0, 0],//5个的
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_K, 0, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],//5个的
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_K, 1, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 1, 0, 0, 0],
- [0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_L, 0, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 1, 0],
- [0, 0, 0, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_L, 1, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 1, 0],
- [0, 0, 0, 1, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_L, 2, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 0, 0, 0],
- [0, 1, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_L, 3, BlockOffset.NONE),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_M, 0, BlockOffset.RIGHT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_M, 1, BlockOffset.UP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_M, 2, BlockOffset.DOWN),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_M, 3, BlockOffset.LEFT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 1, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_N, 0, BlockOffset.LEFT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_N, 1, BlockOffset.UP),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 1, 0, 0, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_N, 2, BlockOffset.RIGHT),
- new BlockConfig([
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 1, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0]
- ], BlockType.TYPE_N, 3, BlockOffset.DOWN),
- ];
- // 权重数组
- export const BlockWeights = {
- [BlockType.TYPE_A]: 0.01,
- [BlockType.TYPE_B]: 0.07,
- [BlockType.TYPE_C]: 0.035,
- [BlockType.TYPE_D]: 0.17,
- [BlockType.TYPE_E]: 0.085,
- [BlockType.TYPE_F]: 0.085,
- [BlockType.TYPE_G]: 0.07,
- [BlockType.TYPE_H]: 0.07,
- [BlockType.TYPE_I]: 0.07,
- [BlockType.TYPE_J]: 0.13,
- [BlockType.TYPE_K]: 0.035,
- [BlockType.TYPE_L]: 0.01,
- [BlockType.TYPE_M]: 0.07,
- [BlockType.TYPE_N]: 0.13,
- };
- export var GridBoardData = {
- //前三步是引导布局
- customizeBoardData1: [
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 1, 0, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0]
- ],
- //第二步引导,需要旋转
- customizeBoardData2: [
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [1, 1, 1, 0, 0, 1, 1, 1],
- [1, 1, 1, 0, 1, 1, 1, 1],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]
- ],
- //第三步十字引导
- customizeBoardData3: [
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0],
- [1, 1, 1, 0, 0, 1, 1, 1],
- [1, 1, 1, 0, 0, 1, 1, 1],
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0, 0, 0]
- ],
- //第4步引导
- customizeBoardData4: [
- [1, 1, 0, 0, 0, 0, 1, 1],
- [1, 1, 0, 0, 0, 0, 1, 1],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [1, 1, 1, 0, 0, 1, 1, 1],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [1, 1, 0, 0, 0, 0, 1, 1],
- [1, 1, 0, 0, 0, 0, 1, 1]
- ],
- customizeBoardData5: [
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]
- ]
- }
|