package main import ( "encoding/json" "fmt" "io/ioutil" "os" "github.com/gdamore/tcell" ) // loadBoards loads the internal boards func loadBoards() error { logger.Println("loadBoards start") var boardsJSON []BoardsJSON err := json.Unmarshal(boardsInternal, &boardsJSON) if err != nil { return fmt.Errorf("unmarshal error: %v", err) } numInternalBoards = len(boardsJSON) boards = make([]Boards, numInternalBoards) for boardNum, boardLoad := range boardsJSON { aBoards := Boards{name: boardLoad.Name} aBoards.colors = make([][]tcell.Color, len(boardLoad.Mino)) aBoards.rotation = boardLoad.Rotation for i := 0; i < len(boardLoad.Mino); i++ { aBoards.colors[i] = make([]tcell.Color, len(boardLoad.Mino[i])) for j := 0; j < len(boardLoad.Mino[i]); j++ { switch boardLoad.Mino[i][j] { case "b": aBoards.colors[i][j] = colorBlank case "i": aBoards.colors[i][j] = colorCyan case "j": aBoards.colors[i][j] = colorBlue case "l": aBoards.colors[i][j] = colorWhite case "o": aBoards.colors[i][j] = colorYellow case "s": aBoards.colors[i][j] = colorGreen case "t": aBoards.colors[i][j] = colorMagenta case "z": aBoards.colors[i][j] = colorRed } } } boards[boardNum] = aBoards } boardsJSON = nil logger.Println("loadBoards end") return nil } // loadUserBoards loads the user boards from file func loadUserBoards() error { _, err := os.Stat(baseDir + settingsFileName) if os.IsNotExist(err) { return nil } logger.Println("loadUserBoards start") if err != nil { return fmt.Errorf("stat error: %v", err) } var settingsJSON []byte settingsJSON, err = ioutil.ReadFile(baseDir + settingsFileName) if err != nil { return fmt.Errorf("read file error: %v", err) } if len(settingsJSON) < 2 { return nil } var settings Settings err = json.Unmarshal(settingsJSON, &settings) if err != nil { return fmt.Errorf("unmarshal error: %v", err) } for _, boardLoad := range settings.Boards { aBoards := Boards{name: boardLoad.Name} aBoards.colors = make([][]tcell.Color, len(boardLoad.Mino)) aBoards.rotation = boardLoad.Rotation for i := 0; i < len(boardLoad.Mino); i++ { aBoards.colors[i] = make([]tcell.Color, len(boardLoad.Mino[i])) for j := 0; j < len(boardLoad.Mino[i]); j++ { switch boardLoad.Mino[i][j] { case "b": aBoards.colors[i][j] = colorBlank case "i": aBoards.colors[i][j] = colorCyan case "j": aBoards.colors[i][j] = colorBlue case "l": aBoards.colors[i][j] = colorWhite case "o": aBoards.colors[i][j] = colorYellow case "s": aBoards.colors[i][j] = colorGreen case "t": aBoards.colors[i][j] = colorMagenta case "z": aBoards.colors[i][j] = colorRed } } } boards = append(boards, aBoards) } logger.Println("loadUserBoards end") return nil } // saveUserBoards saves the user boards to file func saveUserBoards() error { logger.Println("saveUserBoards start") boardsJSON := make([]BoardsJSON, len(boards)-numInternalBoards) for x := numInternalBoards; x < len(boards); x++ { aBoards := BoardsJSON{Name: boards[x].name} aBoards.Mino = make([][]string, len(boards[x].colors)) aBoards.Rotation = boards[x].rotation for i := 0; i < len(boards[x].colors); i++ { aBoards.Mino[i] = make([]string, len(boards[x].colors[i])) for j := 0; j < len(boards[x].colors[i]); j++ { switch boards[x].colors[i][j] { case colorBlank: aBoards.Mino[i][j] = "b" case colorCyan: aBoards.Mino[i][j] = "i" case colorBlue: aBoards.Mino[i][j] = "j" case colorWhite: aBoards.Mino[i][j] = "l" case colorYellow: aBoards.Mino[i][j] = "o" case colorGreen: aBoards.Mino[i][j] = "s" case colorMagenta: aBoards.Mino[i][j] = "t" case colorRed: aBoards.Mino[i][j] = "z" } } } boardsJSON[x-numInternalBoards] = aBoards } settings := Settings{Boards: boardsJSON} settingsJSON, err := json.Marshal(settings) if err != nil { return fmt.Errorf("marshal error: %v", err) } err = ioutil.WriteFile(baseDir+settingsFileName, settingsJSON, 0644) if err != nil { return fmt.Errorf("write file error: %v", err) } logger.Println("saveUserBoards end") return nil } var boardsInternal = []byte(` [ { "name":"10 x 20 blank", "mino":[ ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"] ], "rotation":[ [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,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,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,0,0,0,0,0,0,0,0] ] }, { "name":"10 x 20 checkerboard double", "mino":[ ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"] ], "rotation":[ [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,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,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,0,0,0,0,0,0,0,0] ] }, { "name":"10 x 20 checkerboard single", "mino":[ ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"] ], "rotation":[ [0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] }, { "name":"20 x 20 blank", "mino":[ ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"] ], "rotation":[ [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,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,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,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,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], [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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] }, { "name":"20 x 20 heart", "mino":[ ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","l","l","l","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","z","z","t","l","o","o","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","z","z","t","t","t","o","o","j","b","b","b","b","b"], ["b","b","b","b","b","b","b","l","l","l","i","i","i","i","j","b","b","b","b","b"], ["b","b","b","b","b","b","b","s","s","l","l","l","z","z","j","j","b","b","b","b"], ["b","b","b","b","b","b","b","b","s","s","l","z","z","i","i","i","i","b","b","b"], ["b","b","b","b","b","b","b","b","j","j","l","s","s","t","t","t","z","z","b","b"], ["b","b","b","b","b","b","b","b","s","j","o","o","s","s","t","z","z","b","b","b"], ["b","b","b","b","b","b","b","s","s","j","o","o","o","o","l","l","b","b","b","b"], ["b","b","b","b","b","b","b","s","z","z","s","s","o","o","l","b","b","b","b","b"], ["b","b","b","b","b","b","b","z","z","t","j","s","s","j","l","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","t","t","j","j","j","j","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","t","j","j","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"] ], "rotation":[ [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,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,1,1,3,1,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,3,3,3,0,0,2,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,3,3,3,3,2,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,2,2,1,1,2,2,0,0,0,0], [0,0,0,0,0,0,0,0,1,1,2,1,1,1,1,1,1,0,0,0], [0,0,0,0,0,0,0,0,0,0,2,1,1,1,1,1,1,1,0,0], [0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0], [0,0,0,0,0,0,0,0,0,0,1,1,3,3,2,2,0,0,0,0], [0,0,0,0,0,0,0,0,1,1,1,1,3,3,2,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,0,2,1,1,1,2,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,2,3,3,3,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,2,2,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,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] }, { "name":"20 x 20 checkerboard double", "mino":[ ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"] ], "rotation":[ [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,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,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,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,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], [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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] }, { "name":"20 x 20 checkerboard single", "mino":[ ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"] ], "rotation":[ [0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] }, { "name":"26 x 28 peace symbol", "Mino":[ ["b","b","b","b","b","b","b","b","b","b","b","b","j","i","i","i","i","o","o","l","l","j","j","j","z","j","j","i"], ["b","b","b","b","b","b","b","b","j","l","j","j","j","s","j","j","j","o","o","l","z","j","l","l","z","z","j","i"], ["b","b","b","b","b","b","b","b","j","l","l","l","s","s","j","b","b","b","b","l","z","z","l","o","o","z","j","i"], ["b","b","b","b","b","b","b","t","j","j","z","z","s","b","b","b","j","l","b","b","b","z","l","o","o","j","z","i"], ["b","b","b","b","b","b","t","t","t","z","z","b","b","b","j","j","j","l","l","l","b","b","b","j","j","j","z","z"], ["b","b","b","b","b","b","i","i","i","i","b","b","j","z","s","s","t","t","t","z","z","s","b","b","t","t","t","z"], ["b","b","b","b","b","b","t","t","t","b","b","s","j","z","z","s","s","t","z","z","s","s","b","b","b","t","l","l"], ["b","b","b","b","b","b","b","t","b","b","s","s","j","j","z","j","j","j","o","o","s","b","b","s","b","b","l","i"], ["b","b","b","b","b","b","z","z","b","l","s","i","i","i","i","j","s","s","o","o","b","b","s","s","j","b","l","i"], ["b","b","b","b","b","z","z","b","b","l","o","o","l","l","t","t","t","s","s","b","b","z","s","b","j","b","b","i"], ["b","b","b","b","b","l","l","b","l","l","o","o","l","o","o","t","z","z","b","b","t","z","z","l","j","j","b","i"], ["b","b","b","b","b","l","b","b","i","i","i","i","l","o","o","z","z","b","b","t","t","t","z","l","l","l","b","b"], ["b","b","b","b","b","l","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","j","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","j","b","b","o","o","l","l","t","t","t","z","z","b","b","i","i","i","i","j","o","o","b","b"], ["b","b","b","b","b","j","j","b","o","o","l","s","s","t","z","z","s","s","b","b","s","s","b","j","o","o","b","l"], ["b","b","b","b","b","b","z","b","b","z","l","i","s","s","l","l","l","s","s","b","b","s","s","j","j","b","b","l"], ["b","b","b","b","b","b","z","z","b","z","z","i","j","j","j","i","l","j","j","j","b","b","t","t","t","b","l","l"], ["b","b","b","b","b","b","l","z","b","b","z","i","j","o","o","i","s","j","o","o","z","b","b","t","b","b","j","j"], ["b","b","b","b","b","b","l","l","l","b","b","i","l","o","o","i","s","s","o","o","z","z","b","b","b","o","o","j"], ["b","b","b","b","b","b","i","i","i","i","b","b","l","l","l","i","j","s","t","t","t","z","b","b","t","o","o","j"], ["b","b","b","b","b","b","b","b","t","s","s","b","b","b","j","j","j","z","z","t","b","b","b","t","t","t","z","z"], ["b","b","b","b","b","b","b","b","t","t","s","s","l","b","b","b","z","z","b","b","b","i","i","i","i","z","z","i"], ["b","b","b","b","b","b","b","b","t","o","o","z","l","l","l","b","b","b","b","j","j","j","t","t","t","j","j","i"], ["b","b","b","b","b","b","b","b","b","o","o","z","z","j","j","j","l","l","l","j","t","s","s","t","o","o","j","i"], ["b","b","b","b","b","b","b","b","i","i","i","i","z","j","i","i","i","i","l","t","t","t","s","s","o","o","j","i"] ], "Rotation":[ [0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,2,2,1,1,1,0,0,0,2], [0,0,0,0,0,0,0,0,2,3,3,3,3,0,1,1,1,0,0,2,0,1,2,2,0,0,0,2], [0,0,0,0,0,0,0,0,2,3,3,3,0,0,1,0,0,0,0,2,0,0,2,1,1,0,0,2], [0,0,0,0,0,0,0,3,2,2,1,1,0,0,0,0,3,3,0,0,0,0,2,1,1,3,0,2], [0,0,0,0,0,0,3,3,3,1,1,0,0,0,3,3,3,3,3,3,0,0,0,3,3,3,0,0], [0,0,0,0,0,0,1,1,1,1,0,0,2,0,3,3,1,1,1,3,3,0,0,0,1,1,1,0], [0,0,0,0,0,0,1,1,1,0,0,2,2,0,0,3,3,1,3,3,0,0,0,0,0,1,2,2], [0,0,0,0,0,0,0,1,0,0,2,2,2,2,0,1,1,1,2,2,0,0,0,2,0,0,2,0], [0,0,0,0,0,0,3,3,0,0,2,3,3,3,3,1,1,1,2,2,0,0,2,2,2,0,2,0], [0,0,0,0,0,3,3,0,0,0,1,1,2,2,1,1,1,1,1,0,0,0,2,0,2,0,0,0], [0,0,0,0,0,2,2,0,0,0,1,1,2,3,3,1,3,3,0,0,3,0,0,3,2,2,0,0], [0,0,0,0,0,2,0,0,1,1,1,1,2,3,3,3,3,0,0,3,3,3,0,3,3,3,0,0], [0,0,0,0,0,2,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,2,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,2,0,0,0,0,2,2,1,1,1,3,3,0,0,1,1,1,1,2,1,1,0,0], [0,0,0,0,0,2,2,0,0,0,2,1,1,1,3,3,1,1,0,0,3,3,0,2,1,1,0,0], [0,0,0,0,0,0,2,0,0,0,2,2,1,1,1,1,1,1,1,0,0,3,3,2,2,0,0,0], [0,0,0,0,0,0,2,2,0,0,0,2,1,1,1,0,1,1,1,1,0,0,1,1,1,0,0,0], [0,0,0,0,0,0,3,2,0,0,0,2,1,3,3,0,0,1,0,0,2,0,0,1,0,0,0,0], [0,0,0,0,0,0,3,3,3,0,0,2,3,3,3,0,0,0,0,0,2,2,0,0,0,2,2,0], [0,0,0,0,0,0,1,1,1,1,0,0,3,3,3,0,3,0,1,1,1,2,0,0,3,2,2,0], [0,0,0,0,0,0,0,0,2,3,3,0,0,0,3,3,3,3,3,1,0,0,0,3,3,3,1,1], [0,0,0,0,0,0,0,0,2,2,3,3,3,0,0,0,3,3,0,0,0,3,3,3,3,1,1,2], [0,0,0,0,0,0,0,0,2,1,1,2,3,3,3,0,0,0,0,1,1,1,1,1,1,0,0,2], [0,0,0,0,0,0,0,0,0,1,1,2,2,1,1,1,1,1,1,1,3,3,3,1,3,3,0,2], [0,0,0,0,0,0,0,0,3,3,3,3,2,1,3,3,3,3,1,3,3,3,3,3,3,3,0,2] ] }, { "name":"30 x 30 blank", "mino":[ ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"], ["b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b","b"] ], "rotation":[ [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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0] ] }, { "name":"30 x 30 checkerboard double", "mino":[ ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"], ["b","b","b","b","b","b","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z","b","b","z","z"] ], "rotation":[ [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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0] ] }, { "name":"30 x 30 checkerboard single", "mino":[ ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"], ["b","b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z"], ["b","b","b","b","b","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b","z","b"] ], "rotation":[ [0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2], [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] ] } ] `)