Sha256: ab482977218273220ea8a38cb88b86701ff3fdff54d1b02e989f632133bf0bec
Contents?: true
Size: 1.07 KB
Versions: 254
Compression:
Stored size: 1.07 KB
Contents
ROW = 4 COL = 3 def split_ocr(ocr): return [[ocr[i][COL * j:COL * (j + 1)] for i in range(ROW)] for j in range(len(ocr[0]) // COL)] ALL = [' _ _ _ _ _ _ _ _ ', ' | _| _||_||_ |_ ||_||_|| |', ' ||_ _| | _||_| ||_| _||_|', ' '] OCR_LIST = split_ocr(ALL) OCR_LIST = [OCR_LIST[-1]] + OCR_LIST[:9] def number(ocr): if (len(ocr) != ROW or len(ocr[0]) % COL or any(len(r) != len(ocr[0]) for r in ocr)): raise ValueError('Wrong grid size.') numbers = split_ocr(ocr) digits = '' for n in numbers: try: digits += str(OCR_LIST.index(n)) except ValueError: digits += '?' return digits def grid(digits): try: if not digits.isdigit(): raise ValueError('String should be numeric.') except AttributeError: raise ValueError('Argument should be a string.') ocr = ['' for i in range(ROW)] for d in digits: for r in range(ROW): ocr[r] += OCR_LIST[int(d)][r] return ocr
Version data entries
254 entries across 254 versions & 1 rubygems