В ближайшее время мне предстоит создать при кафедре информатики кружок по программированию Т.е. интересующиеся этим студенты не IT-шних специальностей будут учиться писать на СИ и тд. А потом будут писать более менее интересные программки с каким-нибудь практическим использованием.
Я вообще надеюсь, что мне попадутся энтузиасты, которые сами придумают себе темы, но всё же проблема, что писать стоит… Если у кого-нибудь есть идеи несложных, но интересных программ, и не жалко поделиться, напишите пожалуйста.
(под несложным я понимаю – можно написать человеку не учившемуся на программиста, но владеющему языком на пристойном уровне)
30 декабря 2008 в 14:00
ты будешь удивлен, но взрослые они ж как дети))
и опять таки писать код в этой игрушке это не такое уж очевидное занятие. Многие у тебя, думаю, не с первой попытки правильно все напишутю
29 декабря 2008 в 13:04
У меняж не школьный кружок
29 декабря 2008 в 10:02
не хотел говорить но все-таки скажу, почитав каменты:
ищи игрушку Colobot если ещё её не прошёл )))
вот эту: //ru.wikipedia.org/wiki/Colobot
=)
28 декабря 2008 в 14:01
Тимур Багаутдинов
Я с тобой согласен Просто я рассчитываю что люди будут уже иметь опыт написания небольших программ, т.е. учить их сортировкам, работе с файлами и тд не придется
Важно поддержать в людях дальнейшее желание программировать, а для этого нужно предлагать более менее интересные задачи. Так я считаю
28 декабря 2008 в 14:01
Александр Рулёв А что, может и начнём
28 декабря 2008 в 10:05
Так, а задача все-таки в чем? Научиться программировать на Си или развлекаться с уже более менее познавших сию область людьми?
Если первое, то как ни крути учиться придется. И брать какие-нибудь классические курсы по языку, алгоритмы и структуры данных.
А вот OpenGl и Си, пожалуй сходу тяжеловато будет для людей не знакомых с компьютерной графикой. Чтобы чего-то осознанно на OpenGL делать неплохо бы основы поизучать. Курсы есть, тот же самый intuit.ru всегда доступен)))
А так, мне по душе больше OpenGL в связке с C# использовать
28 декабря 2008 в 2:02
Угу,в текстовом режиме
28 декабря 2008 в 1:02
Марио,марио…а вы с тетриса начните:))
28 декабря 2008 в 1:02
Лучше с Pacman'a
27 декабря 2008 в 22:05
Ну хотя бы //nehe.gamedev.net . Сложно конечно, понять VBO, шейдеры, построение теней, но это врядли понадобится. Сами по себе установка точки обзора, освещения, полигонов (натягивания на них текстур) достаточно просты. (особенно для людей, хотя бы отдаленно знакомых с редакторами типа 3dsMAX, Maya).
27 декабря 2008 в 19:01
Андрей Sawtooth Мельников
Я к сожелению имею очень скромный опыт использования OpenGL. У меня сложилось впечатление что для начинающих это сложно. Хотя возможно я ошибаюсь. Если есть хорошо откомментированный пример кода, и не затруднит прислать / дать ссылку – буду очень признателен
27 декабря 2008 в 19:00
Антон RichDad Кононов
Спасибо! Все гениальное просто Потом уже можно переходить на более сложные вещи)
На счет торможения – это правда, особенно когда пытаешься имитировать 3D ) Но если стараться поменьше "заливать" крупные области экрана, можно несколько ускорить процесс.
27 декабря 2008 в 18:01
"Popcap Framework" для 2D casual game подходит просто идеально ^^
27 декабря 2008 в 16:02
Для 2D можно использовать библиотеку SDL: простая, быстрая, кроссплатформенная. Если хочется аппаратного ускорения, то можно использовать ее совместно с OpenGL. В такой связке заполнять экран спрайтами можно со скоростями > 1000 fps.
27 декабря 2008 в 15:00
Тормозить будут любые компоненты, не предназначенные для анимации. Я рекомендую (без придурей) использовать OpenGL – свободная библиотека (достаточная в своем единстве для элементарных вещей), и кроме того использовать её несложно – как в дельфи, так и в C++ Builder, Visual C++.
27 декабря 2008 в 14:01
я дак на канвасе без придурей рисую (точнее рисовал когда вел кружок для школьников). правда 50 fps максимум, но для 2д игр это пойдет.
если интересно можно и пример написать. а если кратко:
0) кроме формы и таймера визуальных компонентов нет
1) все объекты игрового мира должны храниться в массиве
2) отрисовка объектов только в одной процедуре OnPaint()
3) есть таймер с интервалом 1 (он будет флопсы считать)
4) таймер вызывает Move() а затем Invalidate() (move двигает объекты, точнее меняет их координаты, а Invalidate() перерисует новую картинку)
код:
var
b: TBitmap;
x,y: integer;
begin // тут загрузка (например на OnCreate или OnShow для формы)
b := Tbitmap.Create();
b.LoadFromFile('mySprite.bmp'); // тут файл спрайта
b.TransparentColor := clBlack; // тут указать цвет фона у спрайта
b.Transparent := true;
x:=0;
y:=0;
end;
таймер:
begin
Move();
Invalidate;
end;
отдельная процедура Move:
begin
x:=x+1; // вот тут то сдвиг и происходит
y:=y+1;
end;
OnPaint() событие у формы:
begin
self.Canvas.Draw(x,y,b);
end;
итог: летящий наискосок спрайт.
ps тут вместо массива я просто x и y указал, но это потому что только один объект у меня в этом примере
27 декабря 2008 в 14:01
забыл еще сказать, что тормозить эта ерунда будет безбожно) потому что канвас, но зато ничего кроме тупо дельфи и TBitmap с таймером не понадобится.
Пробовал использовать DelphiX (типа директ икс компонент), но от рисования на тупо канвасе не нашел особой разницы в производительности (в 2д разумеется )
26 декабря 2008 в 18:00
Антон RichDad Кононов Я тоже об этом думал. А как вы считаете, что использовать на графику? DirectDraw? Или, может есть готовые решения, компоненты/библиотеки?
26 декабря 2008 в 17:04
Илья ZYYYZYYY Донских
Дело в том, что у нас на не ITшных специальностях полно народа давно программирующего на Delphi и тп. т.е. подразумевается знание основ и азов. Правда заинтересовать можно только первый-второй курс ))
26 декабря 2008 в 17:03
Денис -=©®TMTrInItYTM®©=- Мезенцев:
блин, человек! ну не в тему же про кружок спамить! это первое
второе: всем лом делать бесплатно
26 декабря 2008 в 17:02
злой совет: попробуйте написать небольшую игру-аркаду (например в 2Д) типа R-Type или Марио. Много чего успеете зацепить (от массива, загрузки файлов и т.д., до графики). И опять таки хоть как-то интересно (это вам не просто массивы сортировать).
26 декабря 2008 в 16:05
Думаю, стоит решать несложные практические задачи, встречающиеся в жизни. Расчеты, хранение данных, визуализация. Если люди будут покроя одной сферы деятельности, было бы хорошо рассматривать задачи, затрагивающие их сферу, но уже с точки зрения программиста.
26 декабря 2008 в 16:03
acmp.ru > пусть решают, тренеруются, набираются опыта, потому что олимпиадное программирование и в прикладном не плохо помогает
26 декабря 2008 в 10:04
реализация класса для работы с длинной арифметикой
26 декабря 2008 в 10:01
Действительно какой-то детский сад…
Если в "кружке" будут люди не знакомые с программированием, то начинать все равно придется с сортировок массивов, поисков по подстроке ну и дальше калькуляторов. Это скучно, но необходимо.
Если же люди уже что-то знающие, то надо браться за проект, который интересен всем. Но такие люди обычно уже учаться на программистов, а значит скорее всего будет первый вариант
26 декабря 2008 в 7:05
"студенты не IT-шних специальностей будут учиться писать на СИ"
А это не детский сад?
26 декабря 2008 в 2:03
Сергей Савин, в практике им пригодится писать что – то для учёта. Например программу для такси или что – то такое. С использованием ООП, централизованым сервером и работой с базой данных будет неплохой практикой. Этой задачей может заниматься несколько студентов, что научит их работать в комманде
26 декабря 2008 в 1:02
Писать я думаю будем на виндусовом. У меня друг тоже это прогал симпатичная задача.Хочется чтонть полезное! Чтоб ребята от тоски не померли, особенно без привычки))
26 декабря 2008 в 1:01
на консольном Си?
что писать…я когда-то писал разбиение строкового числа (до 1000 символов) на простые множители.
26 декабря 2008 в 0:05
Курский политех
26 декабря 2008 в 0:01
а что за институт?
25 декабря 2008 в 23:04
Не, ну не дет сад
Задача должна иметь какое-то практическое значение (пример – анимация движения робота, по данным маткада)
25 декабря 2008 в 23:02
рисование графика функции по заданным переменным=)