![]() |
Модераторы: volvo877, Snowy, MetalFan |
![]() ![]() ![]() |
|
Paran0ya |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.6.2006 Репутация: нет Всего: нет |
Вот собственно говоря моя курсовая работа на паскале (1 курс). Прошу оценить, покритиковать исходный код, поэтому выкладываю в исходниках.
![]() Смысл игры: Задачей игрока является передвинуть шарики красного цвета на место шариков зеленого цвета, а шарики зеленого цвета передвинуть на место шариков красного цвета. Передвигать шарики можно либо в соседнюю с ним пустую лунку, либо в пустую лунку, находящуюся непосредственно за ближайшим шаром. Зеленые шарики можно передвигать только вправо, а красные только влево. В любой момент игры пользователь может выйти в меню и начать игру заново, при этом будет увеличено число попыток на единицу. Игра заканчивается, когда задача была выполнена игроком. Присоединённый файл ( Кол-во скачиваний: 69 ) ![]() |
|||
|
||||
profispb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.12.2005 Где: Санкт - Петербург Репутация: нет Всего: 1 |
Paran0ya, Ссылка битая.
--------------------
В жизни, я люблю делать, то что я люблю. А не то что модно, престижно и выгодноЛюблю когда начинает работать, то что без меня не работало! |
|||
|
||||
volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
profispb, лишь бы что-то написать? Нажми на ссылку, все прекрасно качается...
|
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
присоединяюсь, посмотрите мою игру, пробуйте нажать F1 F2, клавиша выбора пробел, как двигаться надеюсь разберетесь.
монстры шевелится должны, если не шевелятся, значит баг какойто, перезапустите. с помощью Esc. http://panteom.narod.ru/LabChel.rar Добавлено @ 16:15 если не получилось, попробуйте так Присоединённый файл ( Кол-во скачиваний: 28 ) ![]() |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
svarogik, приколькно сделано...
А кстати ты поиск минимального пути в подсказках по алгоритму рабина делал или т.п ![]() |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
хе-хе рад что ктото оценил), а алгоритма я такого не знаю, у меня там волновой алгоритм, то есть от начала пускал волну, а потом от конца строил путь. А у тебя монстры шевелились? Может дашь подсказку как сделать монстра который сам путь отыскивает до человечка?
|
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
О-о-о... Да Алгоритм рабина это и есть модификация волнового алгоритма, только у тебя по всему ДРП волна идёт, и следовательно большой перебор ячеек делается а у рабина, зона поиска сужена. А я имел ввиду что у меня была не игра, а поиск пути между заданными точками обходя препятствия, точнее сказать "Задача трассировки по алгоритму Рабина, со стратегией поиска в глубину" Но делал я эту прогу на делфи.
Ну это было бы не сложно, точно также как и между ключом и человеком. пересчёт пути делать после каждого движения монстров или человека. Типа человек это точка А а монстр Б |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
когда я сказал что у тебя монстры шевелились я имел ввиду в моей игре), просто на некоторых компах они почемуто стоят как вкопанные. А как зона поиска сужалась?, и еще , ты думаешь я так не пытался делать: человек пункт а , а монстр б, просто как потом заставить монстра идти в ту сторону мне кажется запоминать координаты пути както не так, у меня напримерот этого тот монстр всегда застревал почемуто,
Добавлено @ 20:43 а что такое ДРП? |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
За счёт того что просматриваются не все ячейки ДРП (дискретного рабочего поля) а толко те которые находятся между источником и приёмником, а в случае припятсятвия просмотр происходит вокруг... PS: да паскаль это вообще глючная вещь, он нужен только чтобы програмить научится, а дальше переходи на Делфи или С++, там всё тоже самое почти, только оформление проще делается. |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
ага, писать трехмерные игрушки да? я б лучше нормальные 2D научился но никак не могу, у тебя асика есть может ты сможешь рассказать
|
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Нее аську я удалил...
Да нет, я про 2D говорил, и впрочем не важно можно и 3D но сложно... В общем я имел ввиду что в делфи есть компоненты, в часности таймер, а на него всяких движений можно навешать, и получится что ни на каком компе не будет глючить, и одновременно наиболее правильно будет работать. |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
может асику все таки дашь., а то какоето странное общение, а что в делфе можно также простыми процедурами рисовать? ну типа cleardevice circle да? а таймер, если у тебя монстры все таки двигались, то ты мог понять что таймер все таки есть, двигались или нет?
Добавлено @ 20:59 ой не прочитал что удалил сори |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Да я же говорю что удалил её... Там намного больше что можно... ![]() Я когда на Делфи перешёл, на Паскаль больше смотреть не могу... Точнее щас я в 1С работю, но курсовые и лаб. работы все на делфи делаю или на С++ (когда чё приспичит) А если подключить OPENGL (точнее сказать, прописать это слово вверху в строке USES), то такими же простыми процедурами, можно работать с 3D объектами.
ты имееш ввиду типа sleep(), это ерунда. |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
какой sleep() ты чего?
timer: longint absolute $0040:$006C; {System timer} меня этой фишке друг научил, по этому адресу переменная к которой прибавляется 1 каждые 18.5 секунд. да делфи то у меня есть только я пока в консольном могу, а как элементарной графикой пользоваться незнаю, а как делать никто не говорит,для кого то это либо это элементарно, либо незнает как делать, а мне бы подробненько так, а в учебниках ниче похожего на рисование в паскале и нет, только какието обьекты кнопки, короче как в среде visual basic Добавлено @ 21:16 а 3d как то и в паскале можно, там чето типа когда углы преходят в углы, и еще надо учитывать перспективу |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Ну если тебе действительно хочется научится работать с графикой на делфи, то просто нужно пойти в магазин где продают литературу по делфи и выбрать какую нибудь, связанную с OpenGL например или ещё что нибудь.
Ещё можно в разных примерах покапатся, типа таких: Добавлено @ 21:27 Переименовать в Zip и распаковать осталось Присоединённый файл ( Кол-во скачиваний: 18 ) ![]() |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
Ничерта не понял, зачем этот юнит, (юниты только сегодня писать научился)
Добавлено @ 21:31 и что это за другие файлы в архиве? |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Да это пример одной моей лабы на делфи по компьютерной графике, те файлы которые в архиве закинь в папку и запусти *.dpr, там как раз есть круги (тыж про них спрашивал) т.е. молекулы которые бются о большую и должны отражатся, но это не много невсегда получается
![]() |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
эээ а в какую папку? это что все на делфе?
|
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Ну просто на диске C например создал папку, скопиравал в неё все файлы из архива, и потом запусти Project1.dpr при условии что Делфи у тебя установлена. Да это пример работы со стандартными кругами и т.п. ![]() |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
ща поставим, разберемся, комп недавно форматнул)
|
|||
|
||||
profispb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.12.2005 Где: Санкт - Петербург Репутация: нет Всего: 1 |
Zero, Визуальные языки оболваниваю программеров, даже на паскале можно реализовать такой интерфейс и такую игру, которая даже не снилась на Delphi. Если можешь реализовать программу под DOS, то под Win можно перенести, а тот кто говорит что не может после Delphi смотреть на Паскаль, извени конечно д..к. На курсовой проект писал прогу правда на Си, но под дос. Прога типа информационной базы по кинотеатру, так реализовал оконный интерфейс, т.е. формы ввода, формы вывода, горизонтальное меню и все в графике. Единственное с чем соглашусь так, то что в паскале, си палитра цветов мала(поскольку дос), и то это дело поправимое через Ассемблер.
--------------------
В жизни, я люблю делать, то что я люблю. А не то что модно, престижно и выгодноЛюблю когда начинает работать, то что без меня не работало! |
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
ага ну конечно, щас взял все и через ассемблер написал... ну значит запустил я твою прогу там почередине форма и на ней кнопка старт, че дальше? f9 нажал все зависло
Добавлено @ 22:07 у меня делфа7 Добавлено @ 22:09 а все поперло, тока мне это другое напоминает)) такое на анатомии проходят Добавлено @ 22:11 а ты можеш написать прогу которая рисует кружочек, без всяких понтов, просто кружочек |
|||
|
||||
Zero |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
profispb, на любом языке можно написать что угодно, но у каждого есть своя цель... На паскале легко на учится програмировать но не более того, не одной серьёзной программы на нём не напишешь. То что в визуальном программировании (пусть даже небольшоё интерфес из небольшого кол-ва кнопок и разных мелких объектов) можно сделать за несколько часов, то на Паскале ты будеш делать несколько месяцев.
не то чтобы перенести, а переделать (синтаксис всётаки у всех языков различный) А если рассуждать, так как ты говоришь про свой кинотеатор, где оконный интерфесй ты наверняка делал несколько недель, то на делфи его можно за 2 часа реализовать.
Ассемблер, используют только в тех случаях где есть не стандартная ситуация, а цвета на нём делать это не очень разумно. Добавлено @ 22:15
А какие там понты, пересчитываются координаты и выводятся просто кружочки. ![]() |
||||||||
|
|||||||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
все почтичто так отвечают, а ты попробуй пожалуйста, просто кружочек, меня надо столкнуть смертвой точки, и возможно это поможет
|
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
||||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
да ты мужиик!))) эта прога то что надо
|
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Если какие-нибудь вопросы будут появлятся по Делфи, то ТУТ на большинство тебе ответят.
|
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
xb:=screen.Width div 2 - rb;
yb:=screen.Height div 2 - rb; screen.Canvas.Pen.Color:=clRed; screen.Canvas.Ellipse(round(xb-10),round(yb-10),round(xb+10),round(yb+10)); а зачем так почему просто как в паскале нельзя координаты задать, почему через какуюто левую переменную xb и yb, почему не рисуется screen.Canvas.Ellipse(10,10,10,10); ведь в принципе первые два координаты а другие оси эллипса, как в fillellipse(x,y,rx,ry), или не так? Добавлено @ 22:59 извини если чересчур надоедаю , просто интересно |
|||
|
||||
Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Да это я старую прогу переделал как те надо... ![]() А там то кружки (молекулы перемещались), а эти смые левые переменные про которые ты говоришь, они менялись и таким образом получалось что урги в разных местах. А так нельзя, получится точка а не элипс: первые два параметра это (x1,y1) и вторые два (x2,y2) Ну можно и так:
|
||||
|
|||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
да я понял что переделал, я в той старой начал разбираться, а там типа эллипс вписанный в прямоугольник х1у1х2у2? как то неприкольно
|
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Да помоему два варианта рисования элепса есть, но этот вроде самый простой. А так в канвасе там помимо элипсов куча других фигур. А как научишся работать с объектами, можешь переходить на OpenGL, там тоже всё легко и можно будет работать с 3-мерной графикой.
|
|||
|
||||
svarogik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.3.2006 Репутация: нет Всего: нет |
а я хочу его передвигающимся сделать, какой аналог readkey
Добавлено @ 23:14 да еще рановато, я 2мерной нормально еще не умею, хочу игру написать стратегию, сражение 4х стихий панимаешь... Добавлено @ 23:17 такой мощный движок на паскале сделал, с миникартой, с локациями с разным ландшафтом, потом подумал и забил, неохота с 16 цветной палитрой делать |
|||
|
||||
profispb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 27.12.2005 Где: Санкт - Петербург Репутация: нет Всего: 1 |
Zero,
На реализацию интерфейса ушло четыре часа. Отладка конечно больше. --------------------
В жизни, я люблю делать, то что я люблю. А не то что модно, престижно и выгодноЛюблю когда начинает работать, то что без меня не работало! |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
У каждого объекта, есть события и свойства, и в данном случае в процедуре события на нажатие клавиши, можно написать нужные действия. Для какждого объекта эти события разные, возможно для Паинта такого стандартного события и нет, там нужно делать либо самому либо искать др. способ, я сейчас не помню... такой вопрос если ещё актуален, можно задать в разделе делфи. Мне кажется тебе OpenGL или DirectX в делфи надо разбирать, там уж точно не забьёш ни на чё. ![]() Значит там такой интерфейс который в делфи можно сделать за 5 минут. ![]() PS: я както давно (на К/Р) ползунок делал на паскале в текстовом редакторе, целую неделю со всякой ерундой возился, что в делфи у объекта Memo, всего лишь свойство ScrollBars поставить за 2 сек. можно и всё. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |