Дневник Нуба. :lol:

Закрытые или заброшенные проекты, не состоявшие в Клубе, но имевшие ветку на форуме.

Модератор: Jolly Roger

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Дневник Нуба. :lol:

Сообщение СамСом » 05 окт 2007, 20:47

Прошу не ругаться и бить не больно. В принципе может будущим программерам RoguLike Games этот текст поможет, да и может вы что поскажите. Только просьба если я столкнусь с проблемой решение на неё писать, лишь только в том случаи если я его попрошу примерно таким текстом. Аааааааааа!!!!!!!! у меня срыв я не магу. ПАМАГИТЕ!!!!!!!!! Мне ведь и самому интересно докопаться до истины. Да и ктому же дневник будет абсолютно последовательным, а не со скачками.

2/10/2007

Решил учится программированию :lol: .

С чего всё начинается? ну конечно из выбора языка. Недолго думая решил остановится на Pascale. Говорят прост в изучении, а изучив его можно переключаться на Delphi. Ок. Скачал, установил, вроде работает. Ура! Ищем учебники. Нашел, скачал. Ура! Открыл, почитал. Увы !?!?!?!?

Окей разберёмся где наша не бывала.


3/10/2007

И так в любом деле нужна мотивация и цель. Какие они у меня? Да в принципе простые, хочу научиться программить. Окей разобрались, чего ещё не хватает. Не хватает проекта для реализации своих возможностей, а то от этих жутких примеров и задач в скачанных книгах на сон клонит. Сделаем! И так, чего я люблю? Гаматься :lol: !!! Пишим значит мега гейм, хе-хе :twisted: . Хм возможности графики в Pascale ограниченны, и слава богу нах нам такие сложности. И так, что же нам писать..... ADOM!!!!!!!! Ёпта..... Rogulike Game вот где можно развернуться в полный рост :twisted: . Хе-хе.
Прошвырнулся по тематике. Ёпта сколько всего нашел. Пишем Rogulike Game!!!!!!!!

4/10/2007

Читал Фаранова В.В. Мозги кипят... :shock: :x :shock:
Ничё справимся.

Написал приветствие Ура-а-а-а-а-а!!!!
Да-а-а-а-а-а-а-а-льше.....

Ага, угу.... пропускаем, пропускаем, потом, не сейчяс.... Модуль CRT !!!! Вот ты где родимый!!!! Иди сюда!!!!
Ага, угу, понятна, дальше..... чё и всё????????

Так выводим рамку.... Получилось!!!!!! Ура-а-а-а-а-а!!!!

Так где там наше пособие по написанию Rogulike Game Ага!
Напиши простенькую 'Hello world!' программу и проверь её работоспособность. Протестируй свои библиотеки и т.д. - тебе не нужно никаких сюрпризов.
Сделанно!!!
Дальше....
Начни с вывода на экран и клавиатурного управления. Подумай о расположении на своём экране разных элементов (легко, это можно изменить позже) и создай функции, которые отображают карту, строки статуса и сообщений.
Нефик делать!!
через 30мин.Упс....
через 1 час Хе-хе-хе....
через 30мин.Пора бы и покушать.
через 30мин.Хм... Интерфейс....
через 4 час Хе-хе-хе.... :twisted: Программим!!!!!!!
через 30мин. Вуаля!!!!!

Моё творенье

Поехали дальше....
Сделай функцию чтения нажатых клавиш (никаких файлов настроек, никаких переопределений клавиш).

Создай демо - "@ бегает по пустому экрану". Поиграй в неё немного, измени, если что-то не понравится, поиграй ещё, представь, будто игра уже закончена, и ты играешь в неё. ;)
:shock: УПС.....

Читаем Фаранова....
Ага, угу, непонятно, повторить, непонятна, повторить, повторить ,повторить, повторить, повторить, повторить, повторить, повторить.........А-а-а-а-а-а-а-а-а-а.

Мда.... Ищем в исходниках.... Нашел!!!!!!! Лепим...Не лепится... Лепим, правим.... Вуаля работает. Хм.... Курсор двигаем, а дальше? Лепим @ Хм.... Как затереть преведущий, выведенный прогой символ? Так хватит с нас на сегодня. СПАТЬ! СПАТЬ! СПАТЬ! СПАТЬ! СПАТЬ! СПАТЬ! СПАТЬ!

5/10/2007

К СТАНКУ!!!!!!!!!!

Так а что если взять вместо курсора поставить @?
Читаем.... Нету.....Перечитываем..... Нету....Хм
А как вообще эту моргающую муть убрать? Хм.......
Читаем.... Нету.....Перечитываем..... Нету....Хм
через 2 час
Хм. :?
через 30 мин.
Не так дело не пойдёт.... Ищем исходники..... Стоп!!!!!!!!! DiabloRL на Pascale писан!!!!!!!!!!!!!!!!! Хе-хе-хе :twisted: ........
через 30 мин.
Опля :shock: Что это? :shock: :?
через 2 час :cry:
через 30 мин. Давай что ли сам модуль CRT посмотрим?
ЗЫ!!!!!!!!!!! Да тут все команды есть его....... ВАУ HideCursor!!!!!!!!!!!!!!!
Лепим.... Хм чуть не то.....А-а-а-а-а-а-а-а......Хм......
Начать всё заново всё равно я в этом содранном фрагменте хер, что понимаю. И так задаём просто пустое поле.....Есть..... Дальше..... Хм......Так читаем вновь Модуль CRT
Угу, ага, Ага так вот как он реагирует на действия клавиш..... Угу, ага, пробуем.... Такс влево, вправо, вверх, вниз....Есть....Пока хватит, диагонали потом.... Такс, что мы имеем?
Сделай функцию чтения нажатых клавиш (никаких файлов настроек, никаких переопределений клавиш).
Есть!!!!
Создай демо - "@ бегает по пустому экрану". Поиграй в неё немного, измени, если что-то не понравится, поиграй ещё, представь, будто игра уже закончена, и ты играешь в неё. ;)
Ой мама!!!!!!!!!

Такс @ есть!!!! МЛИН :evil: нужно шлейф символов затирать.... Мда....
через 30 мин.
Такс. Нужно запомнить координату, вывести символ, затем ждать нажатие клавиши, перейти к процедуре которая затирает преведущий символ и назначает координаты нового символа, затем все эти действия повторяем вплоть до бесконечности.
через 30 мин. ЕСТЬ!!!!!!!!!!!

Такс хватит на сегодня, завтра задам координаты на края окна с запретом некоторых действий, чтоб всё в натуре было, правим кое чего, делаем вывод человеческий. Да кстати нужно будет на поле разбросать всякую дрянь и написать не просто затирание, а возврат предыдущего объекта. А то так после меня будет кругом поле скошенное.

Моё творенье
Последний раз редактировалось СамСом 07 окт 2007, 04:36, всего редактировалось 1 раз.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Сообщение Максим Кич » 06 окт 2007, 10:53

Хорошо, что винда. Помню, когда я на 286-м писал, такого рода программы имели только один выход: по ресету.

Ну и хотя бы FreePascal, что ли, использовал. Жить поначалу будет труднее, зато потом — легче.

Удачи. :)
Dump the screen? [y/n]

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Сообщение СамСом » 06 окт 2007, 10:59

Выход там вроде как есть. Или был. Но я его буду впредь вбивать обезательно.

Я скачал TMT Pascal. Доволен. А в FreePascal библиотеки CRT ненашлось :-(.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Сообщение СамСом » 06 окт 2007, 20:35

6/10/2007

Такс нужно чуть почитать.
Ага, угу. Массивы. Ой-йо-йой. Мама родная. МАССИВЫ ЭТО НАШЕ ВСЁ!!!!

К СТАНКУ!!!

Вау... С массивами стало и будущее светлей. Яхууууууу.....

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

ВАУ РАБОТАЕТ!!!!!!!!
Хе-хе-хе. :twisted:

Такс можно теперечи и интерфейс с картой соединить....

Млин... Сцабака по достижении координат 80,25 производит автоматический переход курсива на следующую строку, плевать он хотел на то что я задал окно 1,1,80,25 он всё равно перескакивает... СЦАБАКА....

Секунды, минуты, часы раздумий.

Хм интересная вещь, а ведь в ADOM' столбец с координатой Х 80 ВООБЩЕ не выводится!!!!!!!!!! :shock:

Хм.....

Секунды, минуты, часы раздумий.
Хе-хе-хе..... :twisted:

Переносим строку сообщений вниз. Задаём её край 79,25 и всего делов. :twisted:

УРААААААААААА!!!!!!!!!!! Работает!!!!!!!!!!!

Как я говорил пользуюсь TMT Pascal. Решил откомпилировать в Turbo Pascal.... Оказалось процедура HideCursor является не родной для модуля CRT. НЕНАВИЖУ КУРСОР. Разработчики TMT Pascal по-шаманили и вбабахали её и ещё кучу всяких процедур в модуль. Мда......

Лазил, лазил всё перелазил. Сцабаки они...

Инет рулит нашёл сию процедуру, оказывается она с помощью команд ассемблера реализуется... Откомпилировал УРА!!!!!!

Зы файл откомпилированный TMT Pascal весит 29 кило, а Turbo Pascal 6!!! Ну и что, что в первый портируется какаето хрень эмуляции настроек под разные MS-DOS подобные системы.... Хотя.... Типа этакая мультисистемность млин.

Моё творенье.

Да забыл выход прост. Нажмите любые две клавиши вместо стрелок, стрелки соответствено перемещение.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 07 окт 2007, 02:34

А в FreePascal библиотеки CRT ненашлось
Есть там всё. Поищи лучше. Тот же GearHead и DoomRL на FP написаны.

А так, жги дальше :) Пока всё хорошо.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Сообщение Максим Кич » 07 окт 2007, 09:17

Sanja писал(а):
А в FreePascal библиотеки CRT ненашлось
Есть там всё. Поищи лучше. Тот же GearHead и DoomRL на FP написаны.

А так, жги дальше :) Пока всё хорошо.
Если ещё исходники прилагать — получится самый панковский учебник по Pascal из когда-либо существовавших.
Dump the screen? [y/n]

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Сообщение СамСом » 10 окт 2007, 09:05

Я не умер!!! Просто сейчас занят БОЛЬШИМИ научными трудами. Ждите скоро вас ожидает сюрприз :twisted: .


Так к слову о FreePascal. Почему то он у меня не обрабатывает ассемблер, и результат откомпилированных файлов АБСОЛЮДНО не совпадает не с Turbo Pascal не с TMT Pascal. Плюс удобства TMT Pascal он имеет виндовкий интерфейс со всеми прилагающимися. Писать код в нём в разы удобней. Подсветка синтаксиса не уступает FreePascal. Может когда я до программирования объектов доберусь на него и перескочу а пока....
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Сообщение СамСом » 10 окт 2007, 18:36

СамСом писал(а):А в FreePascal библиотеки CRT ненашлось :-(.
Это я тогда с Pascal for Windowsперепутал :)

Оказалось что Free Pascal неделает автомат переход на следующюю строку как остальные компиляторы. Это круто!!!!!!!! Карочь перелажу нанего. Спасибо всем за напутствие.

Написал генератор пещер. Именно пищер а не подзимелий, тунелий или ещё чего.

Генератор Пещер


Да незабывайте вас вскоре ожидает большой научный труд :wink:
Последний раз редактировалось СамСом 10 окт 2007, 19:04, всего редактировалось 1 раз.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 10 окт 2007, 18:53

СамСом, ты случайно с человеком по нику Мульт не знаком?
Айв кнгенгах Йог-Сотот

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Сообщение СамСом » 10 окт 2007, 19:05

Maelstrom писал(а):СамСом, ты случайно с человеком по нику Мульт не знаком?
Нет... Впервые слышу. А что? :lol: :twisted:
Последний раз редактировалось СамСом 10 окт 2007, 19:27, всего редактировалось 1 раз.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Сообщение Maelstrom » 10 окт 2007, 19:27

Любопытно просто стало. Чем-то ты его напоминаешь...
Айв кнгенгах Йог-Сотот

Аватара пользователя
BreakMT
WANDER Team
Сообщения: 933
Зарегистрирован: 27 ноя 2006, 12:16

Сообщение BreakMT » 10 окт 2007, 19:33

Оказалось что Free Pascal неделает автомат переход на следующюю строку как остальные компиляторы.
Ты знаешь разницу между Write и WriteLn?
Любопытно просто стало. Чем-то ты его напоминаешь...
Нее, этот "чёбы" не говорит :)

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Сообщение СамСом » 10 окт 2007, 19:45

BreakMT писал(а):Ты знаешь разницу между Write и WriteLn?
Знаю.... Я о другом..... Достигая края строки Free Pascal не переводит курсор на следующую строку. В остальных компиляторах это создавало кучу проблем. Особенно когда нужно отрисовать что-то в последней ячейке заданного окна.


А вообще странные вы люди. Как мне ещё как не с сарказмом относится к своим начинаниям.
Тишина залог здоровья.
http://nastolka.info

Аватара пользователя
Sanja
Администратор
Сообщения: 791
Зарегистрирован: 24 ноя 2006, 12:25
Откуда: Новосибирск
Контактная информация:

Сообщение Sanja » 11 окт 2007, 00:55

Понимаешь какое дело, на нашей памяти уже было минимум 3 человека, приходивших на форум со словами "А вот и Я, ждите шедевр", а позже куда-то таинственно исчезавших.
Просто сейчас занят БОЛЬШИМИ научными трудами.
+
Да незабывайте вас вскоре ожидает большой научный труд
Не раскидывайся, пожалуйста, такими словами.
Оказалось что Free Pascal неделает автомат переход на следующюю строку как остальные компиляторы.
Есть более удобный и быстрый метод, работает во всех паскалях (под дос):

Код: Выделить всё

Q:> 2.2.1 Как писать/читать напрямую в видеопамять (в т. ч. и в DPMI)

A:> Писать напрямую в видео память намного быстрее и удобнее, чем выводить символы на экран через БИОС. Строго говоря, процедура Write (WriteLN) тоже может писать в видео память напрямую. Тем не менее обычно лучше пользоваться своими процедурами для вывода символов. В реале видео память располагается начиная с $B800:0000. Hа каждый символ отводится 2 байта: сам символ и его атрибуты. Таким образом на экран 80*25 нужно 4000 байт. В DPMI никаких принципиальных отличий нет. Просто вместо адреса $B800:0000 нужно писать типизированную константу SegB800, которая будет указывать при прогоне на начало видеопамяти. Таким образом определив следующий массив 
var
Screen: Array[1..2000,1..2] of byte absolute $B800:0; 
мы получаем доступ к любому символу и его атрибуту по порядковому номеру символа. Т.е. для точки (1,1)
Screen[1,1] будет ASCII код того, что на экране, а
Screen[1,2] - его атрибуты.
Оказалось что Free Pascal неделает автомат переход на следующюю строку как остальные компиляторы. Это круто!!!!!!!! Карочь перелажу нанего.
Баловство какое-то. :(

Аватара пользователя
СамСом
Сообщения: 60
Зарегистрирован: 05 окт 2007, 07:21
Контактная информация:

Сообщение СамСом » 11 окт 2007, 07:46

Sanja писал(а):Понимаешь какое дело, на нашей памяти уже было минимум 3 человека, приходивших на форум со словами "А вот и Я, ждите шедевр", а позже куда-то таинственно исчезавших.
Я давно увлекаюсь настольными ролевыми играми, мой научный труд вовсе не ШЕДЕВРАЛЬНЫЙ РОГАЛИК, а он касается некоторых аспектов ролевых игр в целом и рогаликов в частности.
Есть более удобный и быстрый метод, работает во всех паскалях (под дос):

Код: Выделить всё

Q:> 2.2.1 Как писать/читать напрямую в видеопамять (в т. ч. и в DPMI)

A:> Писать напрямую в видео память намного быстрее и удобнее, чем выводить символы на экран через БИОС. Строго говоря, процедура Write (WriteLN) тоже может писать в видео память напрямую. Тем не менее обычно лучше пользоваться своими процедурами для вывода символов. В реале видео память располагается начиная с $B800:0000. Hа каждый символ отводится 2 байта: сам символ и его атрибуты. Таким образом на экран 80*25 нужно 4000 байт. В DPMI никаких принципиальных отличий нет. Просто вместо адреса $B800:0000 нужно писать типизированную константу SegB800, которая будет указывать при прогоне на начало видеопамяти. Таким образом определив следующий массив 
var
Screen: Array[1..2000,1..2] of byte absolute $B800:0; 
мы получаем доступ к любому символу и его атрибуту по порядковому номеру символа. Т.е. для точки (1,1)
Screen[1,1] будет ASCII код того, что на экране, а
Screen[1,2] - его атрибуты.
Спасибо испробую.
Баловство какое-то. :(
Я только учусь и потому выбираю компилятор исходя из удобств и меньших заморочек на начальном уровне. Потом если я стану более-менее продвинутым программером то конечно я буду выбирать исходя из функциональности, а пока побеждает (да будь он проклят) интуитивно понятный интерфейс.
Тишина залог здоровья.
http://nastolka.info

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 54 гостя