вдаваться в подробности, прохожу сейчас курс C# Foundational от Freecodecamp Microsoft Learn. В одном модуле в петпроекте (https://learn.microsoft.com/ru-ru/training/modules/challenge-project-create-mini-game/3-exercise-add-code-to-end-game) надо написать в консоли "игру" типа Пакмана. Первая задача состоит в том, чтобы закрывать игру если а) игрок нажимает любую клавишу кроме стрелок (это сделано), б) если игрок изменяет размер консоли.
При тестировании задание требует от меня изменить консольной командой размер окна, чтобы затем проверить, что приложение закроется.
Допустим, команду я знаю mode(cols, lines). Но как ее ввести, если консоль в принципе занята игрой?
Каким образом занята?
Скажем, одна из проверок этого задания должна завершать игру, закрывать консоль, если игрок нажимает какую-либо клавишу, кроме стрелок. Соответственнно, если я попытаюсь ввести mode, то при нажатии клавиши "m", игра завершится, не дав мне проверить закрытие приложения при изменении размера консоли
Можно выразиться ещё раз?
1) выбираю режим с отслеживанием ввода клавиш, не являющихся стрелками 2)Пытаюсь ввести "mode" - после нажатия клавиши "m" выпадает сообщение 3) Программа закрывается
Программа тобой написана?
Основная часть написана заранее авторами курса, от меня требовалось добавить тот или иной функционал. Первый шаг - сделать логику завершения программы при вводе клавиш, не являющихся клавишами направления, и завершения при изменении размера консоли
Так значит ее и надо дебажить)
Так я изначально не понимал, как это проверить. Просто по логике вещей и по тому порядку тестирования, что от меня требуется в задании, нужно сначала запустить программу, и только потом менять размер консоли для "проверки" - чтобы программа знала, какой размер окна был изначально и какой стал после такого "чита" При этом, по логике этой "игры" проверка на ввод клавиш-не-стрелок и изменение окна консоли должны быть параллельны, то есть нельзя сначала проверить то, потом это Ну и вишенка на торте (может, для меня, гуманитария) - как я могу ввести консольную команду посреди выполнения программы в консоли?
Найди где используется считывание клавиш Console.ReadKey
Нашел, но что это даст?
Ну тебе же надо было сделать проверку
Так проверку на клавиши, не являющиеся стрелками я сделал, это не сложно. У меня вопрос, как мне при запущенном в консоли приложении консольной командой изменить размер этой самой консоли. Особенно если учесть, что параллельно я сам написал логику, по которой программа не позволяет мне вводить что-то кроме клавиш со стрелками
Ты уже реализовал ввод консольных команд?
Нет, об этом голова и болит. Как тогда, хотя бы в общих чертах, это сделать можно?
string comnand = Console.ReadLine()
Т.е. даже нажатие функциональных клавиш закрывает консоль?
В самой задаче сказано,ч то к закрытию должно приводить нажатие "nondirectional key", то есть, как я понял, любой клавиши, не являющейся стрелкой
Если ты делал через Console.ReadKey(), то я бы добавил возможность вводить "/", которая бы обозначала ввод команды
Обсуждают сегодня