Falling rocks


0

Здравейте,

Преди малко предадох домашното на тема I/O и последната задача ме затрудни. Успях да направя всичко от условието освен да накарам джуджето да се мести, защото не ми стигна времето. Причината за това е, че като подкарвам ехе-то в конзолата се получават множество визуални артефакти, които не успях да премахна след часове опити.

Исках да опитам да реша задачата без чужда помощ и затова не съм гледал чужди примери/решения. Има вероятност идеята ми за решението да е фундаментално грешна. Все пак бих се радвал, ако някой може да ми обясни причината за тези бъгове и как мога да ги избегна.

Линк към решението: http://pastebin.com/w0DBdqqL




Отговори



1

Мисля, че ефектите за които говориш идват от курсора.

Console.CursorVisible = false;

Ето и моето решение Falling Rocks


от avalkov (628 точки)


0
CursorVisible не помогна, иначе решението ти изглежда много по изпипано от моето :D, браво!

от MitkoT (0 точки)


0

Нещо фундаментално е, че никъде не видях да четеш какъв клавиш се натиска. Това можеш да го направиш с ConsoleKeyInfo pressedKey = Console.ReadKey();

Можеш да напишеш играта и чрез StringBuilder, но аз лично предпочетох да използвам Console.SetCursorPosition(int column, int row) и да принтя само камъните и джуджето, като на всяка итерация чистя цялата конзола. Ако искаш може да се свържеш с мен и да го коднем заедно, така ще мога да ти отговоря конкретно на въпросите :)


от kon.simeonov (5238 точки)


0
И аз така, като не чистя всичко, а само предишното поле, на което е бил камъкът, го пиша пак интервал ' ' като част от самото движение на камъка, по същия начин и за джуджето долу.

от topalkata (6442 точки)