От знакомой: Намедни видела шикарный и очень полезный проект одного парня на LinkedIn. Мне код очень пригодился, даже хотелось написать и поблагодарить автора. Но глянула его профиль в гуглоплюсе и оказалось, что он страшный. И я сразу подумала, что восхищаться, в общем-то, было нечем.
Абсолютно не в тему, но вспомнилась старая задача. Не ищите решение, попробуйте решить сами, это не так сложно и достаточно интересно.
У некоторого султана было два мудреца: Али-ибн-Вали и Вали-ибн-Али. Желая убедиться в их мудрости, султан призвал мудрецов к себе и сказал: «Я задумал два числа. Оба они целые, каждое больше единицы, но меньше ста. Я перемножил эти числа и результат сообщу Али и при этом Вали я скажу сумму этих чисел. Если вы и вправду так мудры, как о вас говорят, то сможете узнать исходные числа».
Мудрецы задумались. Первым нарушил молчание Али.
— Я не знаю этих чисел, — сказал он, опуская голову.
— Я это знал, — подал голос Вали.
— Тогда я знаю эти числа, — обрадовался Али.
— Тогда и я знаю! — воскликнул Вали.
И мудрецы сообщили пораженному царю задуманные им числа.
В первую очередь мы должны озаботиться тем, что никто не думал о белой обезьяне. Нужны специальные законы, дающие контроль над каналами, через которые мысли о белой обезьяне могут просочиться в вашу голову. Для успешности борьбы с данным явлением необходимы постоянные отчеты на публичных СМИ о том, сколько потенциальных мыслей о белой обезьяне было предотвращено за истекший период.
И сейчас мы обращается к вам, граждане с активной позицией! Что бы вы ни изучали, подумайте, не провоцирует ли данный материал мыслей о белой обезьяне. Если да — все просто, сразу же обращайтесь к нам.
И поверьте, мы не оставим дело просто так. Мы, также как и вы, будем выискивать подобные материалы в сферах телевидения, радио и интернет и составлять их подробный список. Представьте, кто-то по незнанию (а это может быть ваш ребенок) случайно перейдет по ссылке, содержимое которой немедленно заполнит незащищенный разум мыслями о белой обезьяне. Но не тут-то было! Благодаря нашим с вами слаженным действиям материал к тому моменту уже будет заблокирован и вместо него человек увидит заглушку, извещающую о том, что материал был запрещен по подозрению в насаждении ненужных разумному человеку мыслей о белой обезьяне.
Теги: обезьяна, белая, белая обезьяна, даже не думай
Может быть потому, что используется накопитель SSD, а не Flash?
Или у нас теперь любой накопитель с USB-интерфейсом и энергонезависимой паматью называется флешкой?
Нечто подобное, насколько знаю, применялось в серии TES. В TES3:Morrowind многочисленные дома и подземелья были сгенерированы автоматически.
И далеко не всем это пришлось по вкусу. Почему? Да потому что игрок рубится с монстрами, зачищает немаленькое подземелье, а что в конце? Сундук с зельями. На пятом подземелье становится откровенно скучно. Игрокам нужна награда. Слишком частые и весомые награды могут сделать дальнейшую игру слишком легкой.
Критика была учтена и в следующей части серии автоматически генерировались только леса и прочие мелкие детали ландшафта. Впрочем, это тоже не всем понравилось и возник замечательный проект Unique Landscapes, который заменяет скучный однообразные ландшафты, сделанные генератором на созданные вручную и добавляет всяческие водопады, пустыни, особенные леса.
Так что автогенерация есть, но пока что она далека от совершенства. И чтобы довести ее до этого самого совершенства нужен титанический труд разработчиков.
PS. Карта в приведенных выше играх была сгенерирована еще на этапе разработки, а не во время начала новой игры. Просто привел пример того, что большие пространства, сделанные генераторами, это здорово, но этого явно недостаточно.
import time
def test(f, a):
t=time.clock()
for i in xrange(1000000):
f(a)
return time.clock()-t
a=range(1000000)
print test(len, a)
print test(bool, a)
len(a) отрабатывает быстрее всех, за ней any, за ней bool. Не ожидал.
print test(any, a)<source>
>>Начиная с непонятности синтаксиса встроенный_тип() и заканчивая неочевидностью того, создастся ли копия.
Чем такой синтаксис непонятен? Выглядит как обычное преобразование типа.
>>a.reverse() меняет in-place, слайс создаёт новый объект.
Неверно написал, имел ввиду a=a[::-1], конечно же.
Хм. У меня почему-то было стойкое ощущение, что ставится почти всегда, сейчас поискал примеры кода — в 4 из 5 случаев точки с запятой нет. У меня, насколько помню, эта привычка появилась из-за какой-то IDE, которая не подсвечивала pass, а только pass;
Тем не менее, точки с запятой желательны после pass и break.
Не так страшны вчерашние программисты на дельфи, как они же, пишущие код для введения в заблуждение вероятного противника:
И сейчас мы обращается к вам, граждане с активной позицией! Что бы вы ни изучали, подумайте, не провоцирует ли данный материал мыслей о белой обезьяне. Если да — все просто, сразу же обращайтесь к нам.
И поверьте, мы не оставим дело просто так. Мы, также как и вы, будем выискивать подобные материалы в сферах телевидения, радио и интернет и составлять их подробный список. Представьте, кто-то по незнанию (а это может быть ваш ребенок) случайно перейдет по ссылке, содержимое которой немедленно заполнит незащищенный разум мыслями о белой обезьяне. Но не тут-то было! Благодаря нашим с вами слаженным действиям материал к тому моменту уже будет заблокирован и вместо него человек увидит заглушку, извещающую о том, что материал был запрещен по подозрению в насаждении ненужных разумному человеку мыслей о белой обезьяне.
Теги: обезьяна, белая, белая обезьяна, даже не думай
Или у нас теперь любой накопитель с USB-интерфейсом и энергонезависимой паматью называется флешкой?
Явно и легко читается.
Конечно же, лучше обрабатывать ошибку или проверять наличие ключа перед удалением.
не вариант?
И далеко не всем это пришлось по вкусу. Почему? Да потому что игрок рубится с монстрами, зачищает немаленькое подземелье, а что в конце? Сундук с зельями. На пятом подземелье становится откровенно скучно. Игрокам нужна награда. Слишком частые и весомые награды могут сделать дальнейшую игру слишком легкой.
Критика была учтена и в следующей части серии автоматически генерировались только леса и прочие мелкие детали ландшафта. Впрочем, это тоже не всем понравилось и возник замечательный проект Unique Landscapes, который заменяет скучный однообразные ландшафты, сделанные генератором на созданные вручную и добавляет всяческие водопады, пустыни, особенные леса.
Так что автогенерация есть, но пока что она далека от совершенства. И чтобы довести ее до этого самого совершенства нужен титанический труд разработчиков.
PS. Карта в приведенных выше играх была сгенерирована еще на этапе разработки, а не во время начала новой игры. Просто привел пример того, что большие пространства, сделанные генераторами, это здорово, но этого явно недостаточно.
Чем такой синтаксис непонятен? Выглядит как обычное преобразование типа.
>>a.reverse() меняет in-place, слайс создаёт новый объект.
Неверно написал, имел ввиду a=a[::-1], конечно же.
Самое интересное, знал про это и часто писал конструкции вроде
И все равно проверял непустоту списка с помощью any(a), bool(a) даже в голову не пришел.
Также, a.reverse() лучше чем a[::-1] по той же причине.
Правда, для строки a.reverse() не подойдет.
Не так страшны вчерашние программисты на дельфи, как они же, пишущие код для введения в заблуждение вероятного противника: