Задание 5-6: Программа не хочет воспринимать чит команду от пользователя

[А] Алексей Щёголев, 21 июля 2016, 19:51 , 2 подписчика
puts "Тут замечательный вводный текст, который рассказывает о ситуации.
1. Правильный выбор. 
2. Не правильный выбор.
3. Интересный вариант c намеком на чит"

choiseOfPlayer = gets.сhomp

if choiseOfPlayer == "чит"
    abort "Тут восхищение сообразительностью игрока и поздравление его с победой"
end

puts choiseOfPlayer

В результате получаем вот такое: enter image description here

чяднт?

Обсуждение (4)


Алексей Щёголев

[А]

Видимо это связано с проблемами русских букв... потому как с английской строкой все работает. Как я понимаю, чинить мы это будем в последующих уроках.


Вадим Венедиктов Учитель

[В]

Во-первых, несколько замечаний:

В приведенном вами коде chomp написано, по-видимому, с использованием одной или нескольких русских букв (например, русская о вместо латинской o). Попробуйте поискать слово chomp на этой странице и найдёте это слово только в моём сообщении :)

Это весьма распространенная ошибка, сотрите слово и наберите его заново английскими символами :). В фразе «Интересный вариант c намеком на чит», предлог «с» у вас, кстати, набран латинской «си».

Ещё: в руби не принято писать переменные кэмелКейсом, про это Миша уже говорил. Видимо, вы до этого писали на JavaScript, там как раз принято писать именно как пишете вы. Пишите ваши переменные снейк_кейсом.

Во-вторых, ваш код замечательно отработал в linux:

$ ruby home_quest.rb 
Тут замечательный вводный текст, который рассказывает о ситуации.
1. Правильный выбор.
2. Не правильный выбор.
3. Интересный вариант с намеком на чит
чит
Тут восхищение сообразительностью игрока и поздравление его с победой

Вы абсолютно правы, всё дело в том, как программа воспринимает ввод. В коде у вас стоит слово, зашифрованное кодировкой UTF-8 (если вы послушались нас и сохраняли файл именно в этой кодировке), а как воспринимаются символы из консоли — надо разбираться.

Прикрепите к вопросу (или отдельным ответом) файл вашей программы и напишите, что пишет ваша консоль в ответ на команду:

chcp

Алексей Щёголев

[А]

Когда-то давно, в школе, писал на паскале. Привычка именования переменных осталась. Буду переучиваться.

Остальное вечером попробую.


Вадим Венедиктов Учитель

[В]

Буду переучиваться

Ничего страшного в этом, кстати, нет. Важно понимать, что в Паскале это, может, и нормально. Как я уже сказал, в разных языках по разному. В Ruby — так :)