Snake Moves
Здравейте,
Мислих как да реша тази задача и намерих лесен начин с "Queue".
Ето моето решение: https://pastebin.com/pAs1dZEa
Бих Ви помолил, ако някой е решил задачата с "масив" да сподели решението си.
Благодаря предварително!
Здравейте,
Мислих как да реша тази задача и намерих лесен начин с "Queue".
Ето моето решение: https://pastebin.com/pAs1dZEa
Бих Ви помолил, ако някой е решил задачата с "масив" да сподели решението си.
Благодаря предварително!
Благодаря за споделените решения на задачата. И аз при четенето на условието стигнах до заключението, че ще се наложи използването на опашка и печатането и в матрица.
Впрочем така и не успях да разбера защо се използва променливата capacity в решението с матрицата. След два часа опити най-накрая успях да направя едно решение, без да използвам нищо друго освен опашка и матрица. Решението ми е вдъхновено от вашите решения.
- още в самото начало качвам змията в опашката;
-създавам си една чар матрица - 0' с точно толкова редове и колони, колкото имам;
-започвам да пълня новосъздадената матрица ред по ред с чаровете на змията, като ако е нечетен ред просто я пълня отзад напред. И при пъленето непрекъснато въртя oпашката- Dequeue(), Enqueue();
- и накрая я печатам
https://pastebin.com/KPah0pQa
Поздрави и Весела Коледа! :)
Колегата е използвал capacity, защото зарежда всички необходими символи за матрицата в опашката предварително, т.е. при размери на матрицата 4 * 5 ще зареди 20 символа в опашката.
В решението има някои излишни неща.
Например този код:
Може да се замени само с:
В основния цикъл има повторяемост на код, която може да бъде избегната.
Примерен вариант:
Задачата може да се реши и с използване на двумерен масив вместо матрица, като това леко ще опрости обръщането на нечетните редове и принтирането (заради използването на вградени функционалности в езика).
Давам го като вариант, без да твърдя, че превъзхожда с нещо този с матрицата:
* * * !Весела Коледа! * * *
@MartinBG ,
благодаря за подробните обяснения, корекциите и за по-краткото решение. След като нанеса вашите корекции, чак тогава ще си го кача в github, че найстина имам ужасно много повторения.
Весела Коледа!
@Axiomatik ,
Весела Коледа и на теб!
Ето го и кода с нанесените корекции- змийчето се качва в опашката с един ред код и матрицата е създадена с един ред код без фор цикли. Добавих и един метод за ролването на опашката (съдържа само Dequeue() и Enqueue()), че да избегна повтаряемост на кода при запълването на матрицата- https://pastebin.com/KPah0pQa . @MartinBG , а съкратения Ви код си го запазвам и отново много благодаря! Поздрави!