func (m Map) emptyCell(row, col, rLabel, cLabel int) Map {
	r, c, cl := row, col, newCell(rLabel, cLabel)
	for cellRow := 0; cellRow < cl.height; cellRow++ {
		for _, char := range cl.text[cellRow] {
			if r >= len(m) || c >= len(m[r]) {  
				return m
			}
			m[r][c] = char
			c++
		}
		r++
		c = col
	}
	return m
}
emptyCell writes a blank cell to the Map matrix
package haxscii
import (
	"fmt"
	"strconv"
	"strings"
	"github.com/fatih/color"
)
type colourFunc func(string, ...interface{}) string
var (
	offset = 5
)
var (
	White   = color.WhiteString
	Red     = color.RedString
	Yellow  = color.YellowString
	Magenta = color.MagentaString
	Green   = color.GreenString
	Blue    = color.BlueString
	Cyan    = color.CyanString
)
func genCrdText(row, col int) string {
	rStr, cStr := strconv.Itoa(row), strconv.Itoa(col)
	if row < 10 {
		rStr = "0" + rStr
	}
	if col < 10 {
		cStr = "0" + cStr
	}
	return fmt.Sprintf("%s,%s", rStr, cStr)
}
type cell struct {
	text     [][]string
	widthTop int
	widthMid int
	height   int
	crdsRow  int  
	crdsCol  int
}
func newCell(row, col int) *cell {
	c := &cell{
		text: [][]string{
			{" ", " ", `\`, "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "/", " ", " "},
			{" ", " ", "/", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", `\`, " ", " "},
			{" ", "/", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", `\`, " "},
			{"/", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", `\`},
			{`\`, " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "/"},
			{" ", `\`, " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "/", " "},
			{" ", " ", `\`, "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "/", " ", " "},
		},
		height:   7,
		widthTop: 10,
		widthMid: 16,
		crdsRow:  1,
		crdsCol:  3,
	}
	c.setCrds(row, col)
	return c
}
func (c *cell) setCrds(row, col int) {
	for i, sub := range genCrdText(row, col) {
		c.text[c.crdsRow][c.crdsCol+i] = string(sub)
	}
}
type Map [][]string
func NewMap(height, width int) Map {
	var (
		cl    = newCell(0, 0)  
		wDiff = (cl.widthMid - cl.widthTop) / 2
		w     = (width * (cl.widthMid - wDiff)) + wDiff
		h     = (height * (cl.height - 1)) + cl.height/2 + 1  
		m     = make(Map, h)
	)
	for r := 0; r < h; r++ {
		m[r] = make([]string, w)
		for c := range m[r] {
			m[r][c] = " "
		}
	}
	for r := 0; r < height; r++ {
		row := r * (cl.height - 1)
		for c := 0; c < width; c++ {
			col := c * (cl.widthMid - 3)
			if c%2 != 0 {
				row = r*(cl.height-1) + cl.height/2
			}
			m.emptyCell(row, col, r, c)
			if c%2 != 0 {
				row = row - cl.height/2
			}
		}
	}
	return m
}