Хотелось бы создать игру... Паскаль у меня есть,но я не понимаю, как делать игры на нём.С++ тоже есть, но я его не знаю. Укажите ссылочку...
volvo
9.10.2010 0:23
Цитата
Паскаль у меня есть,но я не понимаю, как делать игры на нём.С++ тоже есть, но я его не знаю.
То есть, ты считаешь, что как только ты узнаешь об основных конструкциях языка, то сразу автоматически научишься программировать игры? Хочу тебя разочаровать: этого не будет. Более того, я бы рекомендовал тебе начинать программировать именно с Паскаля, ибо здесь начинающему программисту гораздо сложнее сделать ошибку, чем в любом другом языке.
Если все-таки решил начинать изучение С++ - то я свое мнение озвучивал вот тут: ПОИСК КНИГ.
И еще одно: не надо думать, что "какой-то другой язык", который усиленно пиарят - это панацея. Нет, написать хорошую программу тяжело на любом языке, и в любом случае надо сидеть, думать, писать, тестировать, удалять, переписывать (это все повтори несколько десятков раз, и на выходе, возможно, у тебя будет программа. Для получения хорошей программы нужно постараться еще больше).
kumino
9.10.2010 0:31
Спасибо за совет... Только один вопрос: есть ли игры, которые можно сделать на C или С++, а на Паскале - нельзя?(Я новичок в программировании и на этом форуме, многого не знаю...)
Lapp
9.10.2010 3:16
Цитата(kumino @ 8.10.2010 21:31)
Спасибо за совет... Только один вопрос: есть ли игры, которые можно сделать на C или С++, а на Паскале - нельзя?(Я новичок в программировании и на этом форуме, многого не знаю...)
Отличия между языками одного уровня сводятся следующему: 1. синтаксис; 2. библиотеки.
Первое практически не влияет на возможность принципиальной реализации чего-то - ну, менее удобно, ну, больше кода, ну, сложнее отлаживать.. Второе более существенно. Конечно, библиотек для С/С++ гораздо больше, чем для Паскаля..
TarasBer
9.10.2010 4:25
> Только один вопрос: есть ли игры, которые можно сделать на C или С++, а на Паскале - нельзя?
Если сравнивать язык в чистом виде, то таких игр нет, на Паскале (если брать современные диалекты, а не досовский турбо) можно всё. Но Паскалю с реализацией не повезло. На мелких играх разницы никакой нет, но вот игры уровня Кризиса, при написании на Паскале, будут писаться намного дольше (так как нет библиотек для этого) и они будут требовательнее (потому что Дельфи не позиционировалась как средство для написания эффективных по скорости и памяти приложений). Короче, для тех игр, которые ты можешь сейчас делать, лучше Паскаль, потому что убийцу Кризиса ты не напишешь, зато в коде лечше разобраться и геморроя намного меньше при отладке.
kumino
9.10.2010 23:36
Конечно, когда я научусь писать реально крутые игры, тогда и начну другие языки изучать. А где скачать крутой паскаль, и чем он отличен от старого(Borland Pascal 7.0, например)?
TarasBer
9.10.2010 23:53
> Конечно, когда я научусь писать реально крутые игры
Ты учти, что игры хоть и весёлая вещь, но нихрена не прибыльная.
> А где скачать крутой паскаль,
гугль по Free Pascal
> и чем он отличен от старого(Borland Pascal 7.0, например)?
Нету ограничения на память (вернее есть, но по сравнению с Турбо они недосягаемо далеко), есть доступ ко всем виндовским функциям (создание полноценных окон, 3Д библиотеки OpenGL и DirectX), нету проблем с запуском под современными операционными системами.
Но тебе реально пока достаточно любого паскаля, чтобы написать хотя бы игру в спички (на столе лежит 15 спичек, два игрока по очереди берут от 1 до 3 спичек, взявший последнюю спичку выигрывает), просто через WriteLn('VVEDITE KOLICHESTVO SPICHEK KOTOROE VI BERETE'); ReadLn(kolichestvo);. Пока такой уровень осиль, для него даже Турбо выше крыши.
kumino
10.10.2010 0:49
легко!
uses crt; var k,f:integer; begin clrscr; randomize; k:=15; repeat writeln('ostalos',' ',k,'spitchek'); repeat writeln('vvedite',' ','kol-vo',' ','spitchek'); readln(f); until((f>0) and (f<4) and (f<=k)); k:=k-f; if (k=0) then begin write('you win'); readln; exit; end; if (k mod 4=0) then begin f:=random(2)+1; writeln('Ya kladu',' ',f,' ','spitchek'); k:=k-f; end else begin writeln('Ya kladu',' ',k mod 4,' ','spitchek'); k:=k-(k mod 4); if (k=0) then begin write('you lose'); readln; exit; end; end; until(k=0); end.
TarasBer
10.10.2010 1:03
Молодец, а теперь сделай так, чтобы комп брал не f:=random(2)+1; спичек, а использовал выигрышную стратегию. И отформатируй код, это тоже облегчит его написание. В общем, пока делай, что умеешь на том, что есть. И понимай, что при переходе на другой язык у тебя не появится волшебный оператор RunCrysisKiller.
kumino
10.10.2010 16:11
Он её итак при первом же шансе юзает! Просто когда комп первый, он выигрывает(неинтересно играть). Но игрок тоже может, как комп круто играть, и на этот случай комп берёт случайное число от 1 до 3(от этого числа исход не зависит)Есть проверка, когда игрок тупит, а когда выигрывает(если комп выдаёт случайное число, это говорит о крутой игре игрока)
Добавлено через 5 мин. И не мог бы ты меня научить, как мышку использовать для игр и клавиатуру в текстовом и графическом режимах.
Unconnected
10.10.2010 17:15
Ну, клавиатуру вестимо как - readln(). А для мышки можно подключить модуль f_mouse (поищи в сети, у меня есть только .tpu, могу выложить, если не найдешь), я когда-то использовал его.
P.S. Мне одному кажется, что обсуждение плавно из "Хочу научиться программировать на С++" перетекает в "Написание игр на Паскале"?
kumino
10.10.2010 22:48
Цитата(volvo @ 10.10.2010 17:37)
P.S. Мне одному кажется, что обсуждение плавно из "Хочу научиться программировать на С++" перетекает в "Написание игр на Паскале"?
Да, это верно.
kumino
10.10.2010 23:29
Ни как не найду F_MOUSE! Помогите, пожалуйста.
Unconnected
10.10.2010 23:47
пост №12 в этой теме видел?
kumino
11.10.2010 0:02
Но что из этого качать, что с этим (программами из темы: модуль мышь) делать, как затем мышь подключать?
TarasBer
11.10.2010 0:13
Модули ты ещё не проходил. Так, сначала без мышки попробуй сделать чего. А это всё потом.
Unconnected
11.10.2010 0:16
Качай сам модуль, кидай его в папку BIN паскаля (точно не помню, поправьте, если не так), в своей программе пишешь uses f_mouse; Инициализировать мышь так:
initmouse; showmouse;
А дальше смотри процедуры в модуле, у них говорящие названия.
Ну в принципе да, рановато тебе наверное
kumino
11.10.2010 20:23
Всем спасибо за советы и терпение в некоторой степени глупых вопросов!
kumino
11.10.2010 23:48
Только одна проблема: как копировать тексты программ в паскаль?
Unconnected
11.10.2010 23:51
В TP7 напрямую никак, насколько знаю. Зато можно редактировать блокнотом pas-файл.
TarasBer
11.10.2010 23:55
> Только одна проблема: как копировать тексты программ в паскаль?
Ну, лучше пользуйся виндовскими версиями, там всё нормально копируется.
> Зато можно редактировать блокнотом pas-файл.
С русским текстом плохо будет.
Я использую FAR. F4, F8 (ДОС-кодировка), Shift+Insert, F2, Esc
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.