Второто предизвикателство е публикувано. Крайният срок е до събота на обяд.
Второ предизвикателство
"дължина на азбуката 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и да тръгнат нещата.Мерси :)
Трябва да сте влезли в системата, за да може да отговаряте на теми.
