У меня вопрос, Я вообще .net'чик. Просто залез посмотреть. Для меня все эти многоуровневые if - else'ы выглядят как жуткий говнокод. Но подозреваю что это специфика языков С\С++? Так вот вопрос, сколько лет опыта работы с языками у тебя? Или это ты учишься и выкладываешь?
Я не говорил что это говнокод, я говорил что для меня выглядит как говнокод, поэтому я и интересовался стажем. Что бы понять насколько твой код отражает реальность низкоуровневого языка программирования. Я не хотел тебя обидеть:)
А можно вопрос не совсем по игре,но так же по C++?Дали задание:Пользователь вводит координаты вершин(не более 4 точек) и полученную фигуру мы должны перемещать или поворачивать по\против часовой стрелке при нажатии на соответствующие клавиши\кнопки.Мы с другом уже 4 день не можем реализовать первую половину задания.Можете помочь?
Постройка по вершинам и повороты.Мы даже на бумаге не можем реализовать это.Есть версия про соединение четырёх точек попарно линиями(Первая-со второй и четвёртой,2 - с 1 и 3 и т.д),а вот с поворотом сложнее,так как матричный способ мы не осилили.
эээ? А чем вас учили графику то выводить? :)
Формула поворота точки на на угол angle вокруг начала координат:
newX = x*cos(angle) - y*sin(angle);
newY = x*sin(angle) + y*cos(angle);
А в том то всё и дело,не было у нас графики весь семестр,дальше загрузки текста из файла не ушли.Зато практику дали по графике.На первой паре препод не смог библиотеку графическую залить себе.А как будет выглядеть кусок с рисованием вершин?
А препод - большой оригинал... Консольный вывод его насколько понимаю не устроит? А что за графическая библиотека?
Вот она,graphics.h,а препод действительно оригинал,предлагал каждую точку перемещать по отдельно взятой окружности,при этом находить цент у каждой фигуры.А когда мы просили объяснить матричный способ,он сказал что сам её не понимает.
Лови, набросал за полчасика, может сгодится на что-то :)
https://drive.google.com/file/d/0B-jUIcoflGh7djlvNUtsQXVoMXc...
Ээээммм... если для тебя многоуровневые if else - говнокод, то я подозреваю, что сам ты кодил не так уж и много. Серьезно, любой достаточно сложный проект с не тривиальной логикой будет в коде содержать множество разных вложенных проверок.
Ты сейчас про какой язык? Если я в C# вижу многоуровневый if-else то это говнокод. Есть множество паттернов которые позволяют от него избавиться. Например установка цвета в зависимости от координаты, можно проверять
if (x > 0 && x < 5) green
else if (x > 5 && x < 10) blue
и так далее.
А можно сделать словарь пороговых значений, сортировать ключи и просто взять цвет по ближайшему к х ключу. [5,10 ...] при х=4 -> colors[5], x=7 colors[10] и тд. Но я не знаком с С++ поэтому возможно в нем все делается именно так как делает автор. Поэтому я спросил.
Плюс, чистый код никто не отменял, поэтому сделать проверку в отдельной функции как минимум стоит. А не пихать все в одну.
Я кажется понял в чем дело. Вы говорили о цепочке проверок
if ...
else if ...
else if ...
...
А я вас понял так словно вы говорили о вложенных проверках, когда внутри блока if или else используется еще if.
В таком случае я снимаю свои претензии, так как действительно существует много паттеронов чтобы уменьшить такие проверки, более того, сами такие проверки это источник потенциальных багов, так как они жестко связаны между собой и изменение одной, влечет изменение всех остальных.
Но мне кажется, что на данной стадии уроков не стоит грузить учеников паттернами, для них даже такие простые вещи на С++ это уже огромный шаг. Паттерны они потом сами освоят по книжкам, это не сложно на самом деле, когда есть интерес. Именно поэтому сейчас важно не перегрузить, чтобы не отбить весь интерес заниматься этим.
Ну так я ж автору вопрос задал, без претензий. У меня видно слог такой, что кажется что я задираюсь:)
UPD: Кстати как интересно ты сразу на вы перешел:))))))
Кстати как интересно ты сразу на вы перешел
В интернете никогда не парюсь на счет ты/вы, пишу как попало, это интернет, тут нет авторитетов. Если читать все мои комменты, можно заметить как я обращаюсь к человеку то на ты, то на вы, иногда даже и так и сяк в одном комменте.
Конкретно в этом случае я не перечитывал свой предыдущий комментарий, поэтому не знал, что я уже успел перейти на ты.
ps^ как раз пытаюсь вкурить STL сейчас, но без примеров как то тяжеловато пока идёт
upd: ах, вы про шарп. не обратил внимания