Exemplo n.º 1
0
    public static OffsetCoord QoffsetFromCube(OffsetCoord.Parity offset, Hex h)
    {
        var col = h.q;
        var row = h.r + (h.q + (int)offset * (h.q & 1)) / 2;

        if (offset != OffsetCoord.Parity.Even && offset != OffsetCoord.Parity.Odd)
        {
            throw new ArgumentException("offset must be EVEN (+1) or ODD (-1)");
        }
        return(new OffsetCoord(col, row));
    }
Exemplo n.º 2
0
    public static Hex RoffsetToCube(OffsetCoord.Parity offset, OffsetCoord h)
    {
        var q = h.col - (h.row + (int)offset * (h.row & 1)) / 2;
        var r = h.row;
        var s = -q - r;

        if (offset != OffsetCoord.Parity.Even && offset != OffsetCoord.Parity.Odd)
        {
            throw new ArgumentException("offset must be EVEN (+1) or ODD (-1)");
        }
        return(new Hex(q, r, s));
    }