Курсы создания компьютерных игр на C/C++ ( Часть 7.2 )

Для самых-самых начинающих программистов :] Часть 7 - http://pikabu.ru/story/_3476138
Курсы создания компьютерных игр на C/C++ ( Часть 7.2 ) Для самых-самых начинающих программистов :]  Часть 7 - <a href="http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_na_cc__chast_7__3476138">http://pikabu.ru/story/_3476138</a>
Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

У меня вопрос, Я вообще .net'чик. Просто залез посмотреть. Для меня все эти многоуровневые if - else'ы выглядят как жуткий говнокод. Но подозреваю что это специфика языков С\С++? Так вот вопрос, сколько лет опыта работы с языками у тебя? Или это ты учишься и выкладываешь?

раскрыть ветку (23)
Автор поста оценил этот комментарий
Пускай будет говнокод :) 6 лет трудового cтажа :)
раскрыть ветку (14)
Автор поста оценил этот комментарий

Я не говорил что это говнокод, я говорил что для меня выглядит как говнокод, поэтому я и интересовался стажем. Что бы понять насколько твой код отражает реальность низкоуровневого языка программирования. Я не хотел тебя обидеть:) 

Автор поста оценил этот комментарий

А можно вопрос не совсем по игре,но так же по C++?Дали задание:Пользователь вводит координаты вершин(не более 4 точек) и полученную фигуру мы должны перемещать или поворачивать по\против часовой стрелке при нажатии на соответствующие клавиши\кнопки.Мы с другом уже 4 день не можем реализовать первую половину задания.Можете помочь? 

раскрыть ветку (12)
Автор поста оценил этот комментарий
А до какой части идет первая половина задания? :)
раскрыть ветку (11)
Автор поста оценил этот комментарий

Постройка по вершинам и повороты.Мы даже на бумаге не можем реализовать это.Есть версия про соединение четырёх точек попарно линиями(Первая-со второй и четвёртой,2 - с 1 и 3 и т.д),а вот с поворотом сложнее,так как матричный способ мы не осилили.

раскрыть ветку (10)
1
Автор поста оценил этот комментарий

эээ? А чем вас учили графику то выводить? :)


Формула поворота точки на на угол angle вокруг начала координат:

newX = x*cos(angle) - y*sin(angle);

newY = x*sin(angle) + y*cos(angle);

раскрыть ветку (9)
Автор поста оценил этот комментарий

А в том то всё и дело,не было у нас графики весь семестр,дальше загрузки текста из файла не ушли.Зато практику дали по графике.На первой паре препод не смог библиотеку графическую залить себе.А как будет выглядеть кусок с рисованием вершин? 

раскрыть ветку (8)
Автор поста оценил этот комментарий

А препод - большой оригинал... Консольный вывод его насколько понимаю не устроит? А что за графическая библиотека?

Иллюстрация к комментарию
раскрыть ветку (7)
Автор поста оценил этот комментарий

Вот она,graphics.h,а препод действительно оригинал,предлагал каждую точку перемещать по отдельно взятой окружности,при этом находить цент у каждой фигуры.А когда мы просили объяснить матричный способ,он сказал что сам её не понимает.

Иллюстрация к комментарию
раскрыть ветку (6)
Автор поста оценил этот комментарий

Центр*

раскрыть ветку (5)
1
Автор поста оценил этот комментарий

Лови, набросал за полчасика, может сгодится на что-то :)

https://drive.google.com/file/d/0B-jUIcoflGh7djlvNUtsQXVoMXc...

Иллюстрация к комментарию
раскрыть ветку (4)
Автор поста оценил этот комментарий

Ээээммм... если для тебя многоуровневые if else - говнокод, то я подозреваю, что сам ты кодил не так уж и много. Серьезно, любой достаточно сложный проект с не тривиальной логикой будет в коде содержать множество разных вложенных проверок.

раскрыть ветку (7)
Автор поста оценил этот комментарий

Ты сейчас про какой язык? Если я в 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]  и тд. Но я не знаком с С++ поэтому возможно в нем все делается именно так как делает автор. Поэтому я спросил.

Плюс, чистый код никто не отменял, поэтому сделать проверку в отдельной функции как минимум стоит. А не пихать все в одну.

раскрыть ветку (6)
1
Автор поста оценил этот комментарий

Я кажется понял в чем дело. Вы говорили о цепочке проверок

if ...

else if ...

else if ...

...


А я вас понял так словно вы говорили о вложенных проверках, когда внутри блока if или else используется еще if.


В таком случае я снимаю свои претензии, так как действительно существует много паттеронов чтобы уменьшить такие проверки, более того, сами такие проверки это источник потенциальных багов, так как они жестко связаны между собой и изменение одной, влечет изменение всех остальных.

Но мне кажется, что на данной стадии уроков не стоит грузить учеников паттернами, для них даже такие простые вещи на С++ это уже огромный шаг. Паттерны они потом сами освоят по книжкам, это не сложно на самом деле, когда есть интерес. Именно поэтому сейчас важно не перегрузить, чтобы не отбить весь интерес заниматься этим.

раскрыть ветку (4)
1
Автор поста оценил этот комментарий
Иллюстрация к комментарию
Автор поста оценил этот комментарий

Ну так я ж автору вопрос задал, без претензий. У меня видно слог такой, что кажется что я задираюсь:)


UPD: Кстати как интересно ты сразу на вы перешел:))))))

раскрыть ветку (2)
Автор поста оценил этот комментарий

Кстати как интересно ты сразу на вы перешел

В интернете никогда не парюсь на счет ты/вы, пишу как попало, это интернет, тут нет авторитетов. Если читать все мои комменты, можно заметить как я обращаюсь к человеку то на ты, то на вы, иногда даже и так и сяк в одном комменте.


Конкретно в этом случае я не перечитывал свой предыдущий комментарий, поэтому не знал, что я уже успел перейти на ты.

раскрыть ветку (1)
Автор поста оценил этот комментарий

:) та я не парюсь, просто диссонанс у меня был)

Автор поста оценил этот комментарий
когда вы про ключи говорите - это имеет отношение к STL и объектам map?

ps^ как раз пытаюсь вкурить STL сейчас, но без примеров как то тяжеловато пока идёт


upd: ах, вы про шарп. не обратил внимания

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку