Sha256: e3bdc00a75504beed74ac0fabec817ff78ba2f0cf50fa810308ceca2489ebcc3

Contents?: true

Size: 1014 Bytes

Versions: 114

Compression:

Stored size: 1014 Bytes

Contents

def board(inp):
    if(inp == []):
        return []
    verify_board(inp)
    rowlen = len(inp[0])
    collen = len(inp)
    b = [list(r) for r in inp]
    for i1 in range(collen):
        for i2 in range(rowlen):
            if b[i1][i2] != ' ':
                continue
            low = max(i2 - 1, 0)
            high = min(i2 + 2, rowlen + 2)
            cnt = inp[i1][low:high].count('*')
            if(i1 > 0):
                cnt += inp[i1 - 1][low:high].count('*')
            if(i1 < collen - 1):
                cnt += inp[i1 + 1][low:high].count('*')
            if cnt == 0:
                continue
            b[i1][i2] = str(cnt)
    return ["".join(r) for r in b]


def verify_board(inp):
    # Rows with different lengths
    rowlen = len(inp[0])
    if not all(len(r) == rowlen for r in inp):
        raise ValueError("Invalid board")
    # Unknown character in board
    cset = set()
    for r in inp:
        cset.update(r)
    if cset - set(' *'):
        raise ValueError("Invalid board")

Version data entries

114 entries across 114 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.179 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.178 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.177 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.176 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.175 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.174 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.173 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.172 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.171 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.170 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.169 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.167 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.166 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.165 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.164 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.163 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.162 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.161 tracks/python/exercises/minesweeper/example.py
trackler-2.2.1.160 tracks/python/exercises/minesweeper/example.py