Радослав качи първо решение на 03.12.2017 20:22 (преди почти 8 години)
Виж какво Andrew написа във форума...
Към профила на Радослав Георгиев
Compiling solution v0.1.0 (file:///tmp/d20171210-6053-wne7m2/solution) Finished dev [unoptimized + debuginfo] target(s) in 5.58 secs Running target/debug/deps/solution-3f98bfa5c86a5dd9 running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Running target/debug/deps/solution_test-3d9e4ea2eafbbc82 running 15 tests test solution_test::test_command_parsing_cyrillic ... FAILED test solution_test::test_command_parsing_extra_stuff ... ok test solution_test::test_command_parsing_full_words ... ok test solution_test::test_command_parsing_partial_words ... ok test solution_test::test_command_parsing_spacing ... ok test solution_test::test_command_parsing_special ... FAILED test solution_test::test_game_basic ... ok test solution_test::test_game_cyrillic ... ok test solution_test::test_game_display ... ok test solution_test::test_game_error ... ok test solution_test::test_game_guess_basic ... ok test solution_test::test_game_guess_state_lose ... ok test solution_test::test_game_guess_state_won ... ok test solution_test::test_game_guess_word ... ok test solution_test::test_game_over_guesses ... ok failures: ---- solution_test::test_command_parsing_cyrillic stdout ---- thread 'solution_test::test_command_parsing_cyrillic' panicked at 'Expected Ok(Command::TryLetter('\u{44f}')) to match Err(ParseError("`try letter я`: more than one character passed as letter argument to `try letter` command"))', tests/solution_test.rs:235:4 note: Run with `RUST_BACKTRACE=1` for a backtrace. ---- solution_test::test_command_parsing_special stdout ---- thread 'solution_test::test_command_parsing_special' panicked at 'Expected Ok(Command::TryLetter('\u{44f}')) to match Err(ParseError("`try letter я`: more than one character passed as letter argument to `try letter` command"))', tests/solution_test.rs:194:4 failures: solution_test::test_command_parsing_cyrillic solution_test::test_command_parsing_special test result: FAILED. 13 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out error: test failed, to rerun pass '--test solution_test'
Виж какво Andrew написа във форума...
Дългичко :). Pattern-matching-а е удобен инструмент за доста неща, но понякога става тромав, и е напълно ок човек да посегне към if-клаузи, например.
Метода len
на str
не брои символи, брои байтове :). Ето документацията: https://doc.rust-lang.org/std/primitive.str.html#method.len
Това може би е нещо, което трябваше да кажем експлицитно в някакъв момент. Все пак, можеше да го изтестваш с кирилица. Това е бъга, който ти коства 2 точки. Вярната проверка би била letter_str.chars().count()
.
Аз направих специален случай за първия символ, но, както добре си се досетил, спокойно можеш да си добавиш интервал преди всеки символ/подчертавка, без това преди тази част имаш "Guess:". Добра работа :).
Дългичко :). Pattern-matching-а е удобен инструмент за доста неща, но понякога става тромав, и е напълно ок човек да посегне към if-клаузи, например.
Метода
len
наstr
не брои символи, брои байтове :). Ето документацията: https://doc.rust-lang.org/std/primitive.str.html#method.lenТова може би е нещо, което трябваше да кажем експлицитно в някакъв момент. Все пак, можеше да го изтестваш с кирилица. Това е бъга, който ти коства 2 точки. Вярната проверка би била
letter_str.chars().count()
.Аз направих специален случай за първия символ, но, както добре си се досетил, спокойно можеш да си добавиш интервал преди всеки символ/подчертавка, без това преди тази част имаш "Guess:". Добра работа :).