Чище-чище. Не сказал бы, что в кравловском коде косяков меньше, но у бандов они временами на-амного интереснее. Самый эпичный код (из тех, что я видел), конечно, у Unangband-а (мы тут когда-то его обсуждали немного). Но и в Z+, и в tome2, и в Sangband-е и Portralis-е загадочного хватает. Ванильный ангбанд особо не смотрел, не скажу. Но подозреваю, что ноги у всех этих косяков растут именно оттуда.BreakMT писал(а):Это у кравла-то код чище? Я бы так вообще не сказал Даже интересно теперь взглянуть на бандовский код ))
Z+Angband
Модераторы: Sanja, Максим Кич
Re: Z+Angband
Re: Z+Angband
Милый рогалик. Жаль сайт сгинул. Какие-нибудь ресурсы по нему остались или все дружно перешли на 4?А tome2 пробовал?
Рандома НЕТ!
Re: Z+Angband
Исходники здесь: http://gitorious.org/tome2/tome2Johnbrown писал(а):Милый рогалик. Жаль сайт сгинул. Какие-нибудь ресурсы по нему остались или все дружно перешли на 4?А tome2 пробовал?
Описания (спойлеры) и несколько полезных патчей здесь: http://killerbunnies.org/angband/#tome
Re: Z+Angband
Ну и если интересно, можешь мой форк попробовать. Там всего два ключевых изменения: очки навыков добавляются не при получении уровней, а "плавно", как в Sangband-е; и вместо всех существующих классов добавлен один ("master of nothing"), играя за который можно перепробовать любые комбинации скилов на выбор.
Вот тема: viewtopic.php?f=6&t=501
А здесь виндовая сборка: viewtopic.php?p=16932#p16932
Вот тема: viewtopic.php?f=6&t=501
А здесь виндовая сборка: viewtopic.php?p=16932#p16932
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Z+Angband
oldbot, публикуй интересные разборки кода рогаликов, с одной стороны интересно, с другой полезно!
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Z+Angband
Спасибо. Но я ведь специально разборками не занимаюсь. Так, если хочется покопаться для себя, что-то найти или подправить - и натыкаюсь на такие вот перлы. Тогда могу и опубликовать. Хотя, признаться, последнее время всё чаще подмывает покопаться поглубже в коде таких монстров, как кровля и некоторые банды и нахвататься оттуда интересных идей и алгоритмов - есть мыслишка кое-что своё сварганить. Кажется, это будет поинтереснее, чем в них играть.Jolly Roger писал(а):oldbot, публикуй интересные разборки кода рогаликов, с одной стороны интересно, с другой полезно!
Re: Z+Angband
Вот вам сразу и например. Только начал копаться в Z+, а уже не понимаю: его разработчиков азам оформления кода вообще в школе не учили? Не знают они, что единнобразность или хаотичность оформления сказывается на читабельности? Ну как можно писать, скажем, вот такое:
Уж тогда или так:
или так:
И тут же рядом ещё один перл:
Ну ЧЕМ надо думать, чтобы использовать _три_ разных стиля оформления оператора if _подряд_? У меня это в голову совсем не влезает.
И это всё в одной и той же функции.
Код: Выделить всё
if (i > small_tester) i = small_tester;
else if (cheat_hear)
{
msgf("Reduced monsters base from %d to %d", small_tester, i);
}
Код: Выделить всё
if (i > small_tester) i = small_tester;
else if (cheat_hear) msgf("Reduced monsters base from %d to %d", small_tester, i);
Код: Выделить всё
if (i > small_tester)
{
i = small_tester;
}
else if (cheat_hear)
{
msgf("Reduced monsters base from %d to %d", small_tester, i);
}
Код: Выделить всё
if (k > 10) k = 10;
if (k < 2) k = 2;
p = ((i + k)*d_ptr->freq_monsters)/100;
/* Apply population density dungeon flags */
if (d_ptr->flags & DF_DENSE)
{
p *= 2;
}
if (d_ptr->flags & DF_SPARSE)
{
p /= 2;
}
/* Compensate for duplicating that happens in apply_symmetry */
if (d_ptr->flags & (DF_SYM_2 | DF_SYM_R2))
p /= 2;
if (d_ptr->flags & (DF_SYM_4 | DF_SYM_R4))
p /= 4;
И это всё в одной и той же функции.
Re: Z+Angband
oldbot писал(а):Вообще, думаю, пора прекращать свой внезапный приступ рогаликомании и заняться снова чем-то созидательным. (:
Jolly Roger писал(а):Написать свой Рогалик?
oldbot писал(а):А? Что? Нет. (:
Что же в этом созидательного? «Стопицотый» способ убивания времени…
Jolly Roger знал...oldbot писал(а):есть мыслишка кое-что своё сварганить. Кажется, это будет поинтереснее, чем в них играть.
Re: Z+Angband
Да, я уже вспоминал этот диалог, когда писал. Любопытно было, вспомнит ли кто-то ещё.hexMer писал(а):oldbot писал(а):Вообще, думаю, пора прекращать свой внезапный приступ рогаликомании и заняться снова чем-то созидательным. (:Jolly Roger писал(а):Написать свой Рогалик?oldbot писал(а):А? Что? Нет. (:
Что же в этом созидательного? «Стопицотый» способ убивания времени…Jolly Roger знал...oldbot писал(а):есть мыслишка кое-что своё сварганить. Кажется, это будет поинтереснее, чем в них играть.
С тех пор кой-какие идейки появились касательно разработки, и рогаликки это неплохой вариант их обкатки. Вот именно эта обкатка и будет созидательной. Если, конечно, сподвигнусь.
Re: Z+Angband
Что такое повторяемость кода их, видимо, тоже не учили. Тот же самый кусок плюс ещё несколько строк повторяется буква в букву в другой функции в том же файле.oldbot писал(а):его разработчиков азам оформления кода вообще в школе не учили? Не знают они, что единнобразность или хаотичность оформления сказывается на читабельности?
Re: Z+Angband
Скачал звуки, sound.cfg, все бросил в lib->xtra->sound, в опциях включил sound. Звука нет. Что я делаю не так?
Рандома НЕТ!
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Re: Z+Angband
Насколько я понимаю, Z+ использует код Zangband, который использует код Angband 2.x, который местами использует код Angband 1.x из которого кое-где торчат уши Мории. Ожидать от подобного проекта стройности кода и красоты решений я бы не стал.oldbot писал(а):Вот вам сразу и например. Только начал копаться в Z+, а уже не понимаю: его разработчиков азам оформления кода вообще в школе не учили? Не знают они, что единнобразность или хаотичность оформления сказывается на читабельности? Ну как можно писать, скажем, вот такое:
Dump the screen? [y/n]
Re: Z+Angband
Печаль...Скачал звуки, sound.cfg, все бросил в lib->xtra->sound, в опциях включил sound. Звука нет. Что я делаю не так?
Рандома НЕТ!
Re: Z+Angband
Ожидал такого комментария, но согласиться не могу. Я ведь говорю не о красоте решений, а о правильности оформления кода. Это азы разработки. Скажем, я обычно пишу вот так:Максим Кич писал(а):Насколько я понимаю, Z+ использует код Zangband, который использует код Angband 2.x, который местами использует код Angband 1.x из которого кое-где торчат уши Мории. Ожидать от подобного проекта стройности кода и красоты решений я бы не стал.oldbot писал(а):Вот вам сразу и например. Только начал копаться в Z+, а уже не понимаю: его разработчиков азам оформления кода вообще в школе не учили? Не знают они, что единнобразность или хаотичность оформления сказывается на читабельности? Ну как можно писать, скажем, вот такое:
Код: Выделить всё
if (...) {
line1();
line2();
} else {
line3();
}
if (...)
line4();
Код: Выделить всё
if (...)
{
line1();
line2();
}
else
{
line3();
}
if (...)
{
line4();
}
- Максим Кич
- Администратор
- Сообщения: 1642
- Зарегистрирован: 03 дек 2006, 20:17
- Откуда: Витебск, Беларусь
- Контактная информация:
Re: Z+Angband
В том-то и дело, что «азы». Академические истины. А реальность такова, что код должен быть в первую очередь рабочим, причём рабочим он должен быть в разумные сроки. Прочее, если оно не оговорено в ТЗ отдельным пунктом — "nice to have", как говорил один мой заказчик.oldbot писал(а):Это азы разработки.
Это не значит, что абы-какое оформление допустимо. Но это значит, что именно оформлением можно жертвовать в первую очередь. И я очень спокойно отношусь к подобным случаям. В конце концов сейчас почти все IDE имеют функции автоматического форматирования.
Dump the screen? [y/n]
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 52 гостя