Змея запускаем- II
Jan. 5th, 2010 12:11 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Как и планировал, начал писать на питоне вот эту игру. Из правил осталось реализовать компенсацию и банкротство, и можно будет подсовывать AI разные целевые функции и сравнивать, какая лучше.
Так я и не почувствовал, когда массив/словарь передается по ссылке, а когда - по значению. Поэтому copy() в коде расставлены хаотически.
Очень раздражает невозможность проверить синтаксис. Сообщения об ошибках тоже ясностью не отличаются.
Спроектировать разделение на классы получается тоже крайне невнятно. Понятно, что игрок - это отдельный класс, потому как ему разные стратегии выбора оптимального хода прописывать. Функции применения карт ушли в условно-главный модуль, хотя можно их выделить отдельно. "Игра", собственно, по смыслу синглтон.
Целевые функции, похоже, надо будет тщательно калибровать. Собственно, интересных моментов для выбора алгоритма я там нашел пока ровно 3: покупку-продажу после изменения цен, выбор, большую или малую карту класть (подозреваю, что тут надо отдельно считать оптимум для больших и малых, и отталкиваться от соотношения по целевой функции), и то, какую долю вкладывать в повышаемые акции из свободных средств.
А там, глядишь, и до интерфейса доберусь (видимо, ncurses и PyQt).
Еще бы правила оригинальной версии найти.
Так я и не почувствовал, когда массив/словарь передается по ссылке, а когда - по значению. Поэтому copy() в коде расставлены хаотически.
Очень раздражает невозможность проверить синтаксис. Сообщения об ошибках тоже ясностью не отличаются.
Спроектировать разделение на классы получается тоже крайне невнятно. Понятно, что игрок - это отдельный класс, потому как ему разные стратегии выбора оптимального хода прописывать. Функции применения карт ушли в условно-главный модуль, хотя можно их выделить отдельно. "Игра", собственно, по смыслу синглтон.
Целевые функции, похоже, надо будет тщательно калибровать. Собственно, интересных моментов для выбора алгоритма я там нашел пока ровно 3: покупку-продажу после изменения цен, выбор, большую или малую карту класть (подозреваю, что тут надо отдельно считать оптимум для больших и малых, и отталкиваться от соотношения по целевой функции), и то, какую долю вкладывать в повышаемые акции из свободных средств.
А там, глядишь, и до интерфейса доберусь (видимо, ncurses и PyQt).
Еще бы правила оригинальной версии найти.
no subject
Date: 2010-01-04 09:23 pm (UTC)no subject
Date: 2010-01-04 10:21 pm (UTC)А игра хорошая, сколько я на нее с друзьями времени потратил --- жуть.
no subject
Date: 2010-01-05 06:50 am (UTC)Не, с числами все понятно... Не вполне понятно со списками.
no subject
Date: 2010-01-05 08:00 am (UTC)no subject
Date: 2010-01-05 09:00 am (UTC)no subject
Date: 2010-01-05 09:29 am (UTC)no subject
Date: 2010-01-05 01:06 pm (UTC)no subject
Date: 2010-01-04 10:25 pm (UTC)no subject
Date: 2010-01-05 10:26 am (UTC)Когда допишу, поскольку ты в это играл, будет с кем проконсультироваться :-)
no subject
Date: 2010-01-05 01:07 pm (UTC)no subject
Date: 2010-01-05 05:32 pm (UTC)А как ему объяснить, что выравнивание табуляциями - нормально? Или это мне надо объяснять, что оно ненормально?
no subject
Date: 2010-01-05 05:45 pm (UTC)Документация по pylint в нём самом: Документация в формате reST, можно сконвертировать в html. То, что тебе нужно - indent-string, по умолчанию 4 пробела. Умолчание в соответствии со Style Guide.
no subject
Date: 2010-01-05 07:27 pm (UTC)Perl::Critic - это очень полезная валидация стиля для Perl.
no subject
Date: 2010-06-30 09:22 pm (UTC)no subject
Date: 2010-07-01 08:49 am (UTC)no subject
Date: 2010-07-02 07:01 am (UTC)no subject
Date: 2010-01-06 04:57 pm (UTC)Оч. рекомендую