Sha256: 7a127bb65cb23655b5d02536fd496d303090b1e028bd8c9d71787011190f27f3

Contents?: true

Size: 1.64 KB

Versions: 255

Compression:

Stored size: 1.64 KB

Contents

'use strict';

var PATTERNS = {
  0: [' _ ',
      '| |',
      '|_|',
      '   '],
  1: ['   ',
      '  |',
      '  |',
      '   '],
  2: [' _ ',
      ' _|',
      '|_ ',
      '   '],
  3: [' _ ',
      ' _|',
      ' _|',
      '   '],
  4: ['   ',
      '|_|',
      '  |',
      '   '],
  5: [' _ ',
      '|_ ',
      ' _|',
      '   '],
  6: [' _ ',
      '|_ ',
      '|_|',
      '   '],
  7: [' _ ',
      '  |',
      '  |',
      '   '],
  8: [' _ ',
      '|_|',
      '|_|',
      '   '],
  9: [' _ ',
      '|_|',
      ' _|',
      '   ']
};

function getDigit(text) {
  for (var digit in PATTERNS) {
    if (PATTERNS.hasOwnProperty(digit)) {
      if (PATTERNS[digit].join('') === text) {
        return digit;
      }
    }
  }
  return '?';
}

function splitIntoDigits(row) {
  var digits = [];
  var rows = row.split('\n');
  for (var digitNumber = 0; digitNumber < rows[0].length; digitNumber += 3) {
    var digit = '';
    for (var rowNumber = 0; rowNumber < rows.length; rowNumber++) {
      digit += rows[rowNumber].substr(digitNumber, 3);
    }
    digits.push(digit);
  }
  return digits;
}

function splitIntoRows(text) {
  var rows = [];
  var lines = text.split('\n');
  for (var rowNumber = 0; rowNumber < lines.length; rowNumber += 4) {
    var row = '';
    for (var rowLine = 0; rowLine < 4; rowLine++) {
      row += lines[rowNumber + rowLine] + '\n';
    }
    rows.push(row.slice(0, -1));
  }
  return rows;
}

function valuesInRow(row) {
  var digits = splitIntoDigits(row);
  return digits.map(getDigit).join('');
}

exports.convert = function (text) {
  var rows = splitIntoRows(text);
  return rows.map(valuesInRow).join(',');
};

Version data entries

255 entries across 255 versions & 1 rubygems

Version Path
trackler-2.2.1.37 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.36 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.35 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.34 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.33 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.32 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.31 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.30 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.29 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.28 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.27 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.26 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.25 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.24 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.23 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.22 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.21 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.20 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.19 tracks/javascript/exercises/ocr-numbers/example.js
trackler-2.2.1.18 tracks/javascript/exercises/ocr-numbers/example.js