Второто предизвикателство е публикувано. Крайният срок е до събота на обяд.
Второ предизвикателство
"дължина на азбуката mod числото" не трябва ли да е числото mod дължината? Пример: 30 mod 26 = 4
И аз това забелязах, изпревари ме. [42] pry(main)> 'abcdefghijklmnopqrstuvwxyz'.size % 30 => 26 [43] pry(main)> 30 % 'abcdefghijklmnopqrstuvwxyz'.size => 4 [44] pry(main)> 4 % 'abcdefghijklmnopqrstuvwxyz'.size => 4 [45] pry(main)>
Освен това,
Примете, че получавате само валидни параметри, т.е. няма да ви караме да криптирате/декриптирате низове съдържащи букви, които ги няма в предварително зададената азбука.
Разбираме, че символът „интервал“ е буква?
Като цяло само символите от азбуката ли да "местим"? Примерно интервали, препинателни знаци? Да си ги оставим както са?
Коригирахме условието за
числото mod дължина на азбуката
, благодаря.Допълнително, всеки символ се счита за буква.
Включително и шпацията?
Според мен каквото е зададено в азбуката, това се замества: Пример:
Caesar.new(2, '!~@#$%∧ &*').encrypt("$%∧") #"∧ &"
Според мен каквото е зададено в азбуката, това се замества: Пример:
Caesar.new(2, '!~@#$%∧ &*').encrypt("$%∧") #"∧ &"
Точно така. При създаването на обекта се подава азбука („азбука“ - множество от какви да са символи (понеже сигурно някой ще пита - без повтарящи се символи, също така символите очевидно са подредени), които в нашият случай са събрани в един низ), след това методите ще бъдат викани само с низове, съдържащи символи само от първоначалната азбука:
Примете, че получавате само валидни параметри, т.е. няма да ви караме да криптирате/декриптирате низове съдържащи букви, които ги няма в предварително зададената азбука.
Т.е. ако в първоначалната азбука няма пунктуация, няма да имате пунктуация и в низовете за криптиране/декриптиране и няма нужда да се притеснявате за нея.
"Шпацията", още позната като интервал, си е нормален символ. Новият ред също, табулацията също...
И, моля ви, стегнете се — има няколко решения, нарушаващи основната конвенция за идентация (идентирани с табове) или такива, които са неконсистентни откъм идентация (смесват табове и интервали). Колко месеца минаха вече, срамно е да не сте се справили с този проблем все още. До събота има време, погрижете се.
./Caesar.rb:18: invalid multibyte char (US-ASCII)
Какво трябва да ми говори това ? (Каза ми го като тествах с кирилица.)
Доколкото разбирам, енкодинга по подразбиране на низовете и регулярните изрази е
US-ASCII
в Ruby.Пробвай да сложиш
# encoding: utf-8
в началото на файла. Така би трябвало да го промени доutf-8
и да тръгнат нещата.Мерси :)
Трябва да сте влезли в системата, за да може да отговаряте на теми.