Помощь - Поиск - Пользователи - Календарь
Полная версия: А где найти руководство по С++?
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
kumino
Хотелось бы создать игру... Паскаль у меня есть,но я не понимаю, как делать игры на нём.С++ тоже есть, но я его не знаю. Укажите ссылочку...
volvo
Цитата
Паскаль у меня есть,но я не понимаю, как делать игры на нём.С++ тоже есть, но я его не знаю.
То есть, ты считаешь, что как только ты узнаешь об основных конструкциях языка, то сразу автоматически научишься программировать игры? Хочу тебя разочаровать: этого не будет. Более того, я бы рекомендовал тебе начинать программировать именно с Паскаля, ибо здесь начинающему программисту гораздо сложнее сделать ошибку, чем в любом другом языке.

Если все-таки решил начинать изучение С++ - то я свое мнение озвучивал вот тут: ПОИСК КНИГ.

И еще одно: не надо думать, что "какой-то другой язык", который усиленно пиарят - это панацея. Нет, написать хорошую программу тяжело на любом языке, и в любом случае надо сидеть, думать, писать, тестировать, удалять, переписывать (это все повтори несколько десятков раз, и на выходе, возможно, у тебя будет программа. Для получения хорошей программы нужно постараться еще больше).
kumino
Спасибо за совет... Только один вопрос: есть ли игры, которые можно сделать на C или С++, а на
Паскале - нельзя?(Я новичок в программировании и на этом форуме, многого не знаю...) unsure.gif
Lapp
Цитата(kumino @ 8.10.2010 21:31) *
Спасибо за совет... Только один вопрос: есть ли игры, которые можно сделать на C или С++, а на
Паскале - нельзя?(Я новичок в программировании и на этом форуме, многого не знаю...) unsure.gif
Отличия между языками одного уровня сводятся следующему:
1. синтаксис;
2. библиотеки.

Первое практически не влияет на возможность принципиальной реализации чего-то - ну, менее удобно, ну, больше кода, ну, сложнее отлаживать..
Второе более существенно. Конечно, библиотек для С/С++ гораздо больше, чем для Паскаля..
TarasBer
> Только один вопрос: есть ли игры, которые можно сделать на C или С++, а на
Паскале - нельзя?

Если сравнивать язык в чистом виде, то таких игр нет, на Паскале (если брать современные диалекты, а не досовский турбо) можно всё.
Но Паскалю с реализацией не повезло. На мелких играх разницы никакой нет, но вот игры уровня Кризиса, при написании на Паскале, будут писаться намного дольше (так как нет библиотек для этого) и они будут требовательнее (потому что Дельфи не позиционировалась как средство для написания эффективных по скорости и памяти приложений).
Короче, для тех игр, которые ты можешь сейчас делать, лучше Паскаль, потому что убийцу Кризиса ты не напишешь, зато в коде лечше разобраться и геморроя намного меньше при отладке.
kumino
Конечно, когда я научусь писать реально крутые игры, тогда и начну другие языки
изучать. А где скачать крутой паскаль, и чем он отличен от старого(Borland Pascal 7.0, например)?
TarasBer
> Конечно, когда я научусь писать реально крутые игры

Ты учти, что игры хоть и весёлая вещь, но нихрена не прибыльная.

> А где скачать крутой паскаль,

гугль по Free Pascal

> и чем он отличен от старого(Borland Pascal 7.0, например)?

Нету ограничения на память (вернее есть, но по сравнению с Турбо они недосягаемо далеко), есть доступ ко всем виндовским функциям (создание полноценных окон, 3Д библиотеки OpenGL и DirectX), нету проблем с запуском под современными операционными системами.

Но тебе реально пока достаточно любого паскаля, чтобы написать хотя бы игру в спички (на столе лежит 15 спичек, два игрока по очереди берут от 1 до 3 спичек, взявший последнюю спичку выигрывает), просто через WriteLn('VVEDITE KOLICHESTVO SPICHEK KOTOROE VI BERETE'); ReadLn(kolichestvo);. Пока такой уровень осиль, для него даже Турбо выше крыши.
kumino
легко!
 
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
Молодец, а теперь сделай так, чтобы комп брал не f:=random(2)+1; спичек, а использовал выигрышную стратегию.
И отформатируй код, это тоже облегчит его написание.
В общем, пока делай, что умеешь на том, что есть. И понимай, что при переходе на другой язык у тебя не появится волшебный оператор RunCrysisKiller.
kumino

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

Добавлено через 5 мин.
И не мог бы ты меня научить, как мышку использовать для игр и клавиатуру в текстовом и графическом режимах.
Unconnected
Ну, клавиатуру вестимо как - readln(). А для мышки можно подключить модуль f_mouse (поищи в сети, у меня есть только .tpu, могу выложить, если не найдешь), я когда-то использовал его.
volvo
Цитата
поищи в сети
Угу, прямо с этого форума начиная: Модуль мышь smile.gif

P.S. Мне одному кажется, что обсуждение плавно из "Хочу научиться программировать на С++" перетекает в "Написание игр на Паскале"?
kumino
Цитата(volvo @ 10.10.2010 17:37) *

P.S. Мне одному кажется, что обсуждение плавно из "Хочу научиться программировать на С++" перетекает в "Написание игр на Паскале"?

Да, это верно.
kumino
Ни как не найду F_MOUSE! Помогите, пожалуйста. !help.gif
Unconnected
blink.gif пост №12 в этой теме видел?
kumino
Но что из этого качать, что с этим (программами из темы: модуль мышь) делать, как затем мышь подключать?
TarasBer
Модули ты ещё не проходил.
Так, сначала без мышки попробуй сделать чего.
А это всё потом.
Unconnected
Качай сам модуль, кидай его в папку BIN паскаля (точно не помню, поправьте, если не так), в своей программе пишешь uses f_mouse;
Инициализировать мышь так:

initmouse;
showmouse;


А дальше смотри процедуры в модуле, у них говорящие названия.

Ну в принципе да, рановато тебе наверное smile.gif
kumino
Всем спасибо за советы и терпение в некоторой степени глупых вопросов! good.gif
kumino
Только одна проблема: как копировать тексты программ в паскаль? excl.gif
Unconnected
В TP7 напрямую никак, насколько знаю. Зато можно редактировать блокнотом pas-файл.
TarasBer
> Только одна проблема: как копировать тексты программ в паскаль?

Ну, лучше пользуйся виндовскими версиями, там всё нормально копируется.

> Зато можно редактировать блокнотом pas-файл.

С русским текстом плохо будет.

Я использую FAR. F4, F8 (ДОС-кодировка), Shift+Insert, F2, Esc
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.