/cd-algarismo-romano

Um conding dojo sobre o algoritmo de conversão de algarismos romanos

Primary LanguageJavaScriptBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Coding Dojo de algarismo-romano

Definição de Coding Dojo
  • Dojo ou Dojô é o local onde se treinam artes marciais japonesas. alt text

  • Conding Dojo é um encontro de codeiros que trabalham juntos programando para resolver um desafio. O intuito é ser divertido e melhorar as habilidade utilizando a prática deliberada imagem de pessoas numa sala participando de uma sessão de coding dojo

Premissas
  • Aprendizado continuo na codação.
Características
  • Não é uma competição
  • É uma colaboração junto com diversão
  • Todas níveis de habilidades são bem vindas
  • Ambiente seguro para testar ideias

Como funciona? (RandoriKata/Dojo Randori)

memes raizes ilustrando emoções de pessoas numa sala, com setas indicando o ciclo de uma dojo randori

  • O desafio é resolvido por duas pessoas, piloto e copiloto.

  • Caso tenham dificuldade, pode pedir ajuda da plateia.

  • Cada par, tem no máximo 5min, na resolução devem usar o TDD e BabySteps;

Imagem ilustrativa do clico de TDD, escreva uma teste e faz ele dar erro (red), ajusta para passar (green) e refatora caso necessário (refactor)

  • Ao final do tempo, o piloto vai para a plateia, o copiloto vira piloto e próximo da fila, que está na plateia, entra para o desafio como copiloto.

Problema dos algarismos romanos

Durante todo o império da roma foram utilizados os numerais romanos criados na Roma Antiga. E eles eram representados por sete diferentes símbolos:

  • I, 1 (um)
  • V, 5 (cinco)
  • X, 10 (dez)
  • L, 50 (cinquenta)
  • C, 100 (cem)
  • D, 500 (quinhentos)
  • M, 1000 (mil)

Com isso, eles formavam os outros números usando combinações e com algumas regras:

  • Algarimos de menor ou igual valor à direita são somados ao algarismo de maior valor (Ex.: XX = 20, LX = 60);

  • Algarismos de menor valor à esquerda são subtraídos do algarismo de maior valor (Ex.: IX = 9);

  • Nenhum algarismo romano pode ser repetido por mais de 3 vezes seguidas. (Ex.: XXXX é um exemplo incorreto. Só iria até XXX = 30);

Com isso em mente, teremos insumos para concretizar o intuito desse projeto, que é, fazer essa conversão de algarismo romano para um algarismo arábico (Ex.: 1, 2, 3, 4...).

Para isso utilizaremos o Coding Dojo!

LET'S BORA

Referências: