Архив метки: Скриншоты

Про комиксы и закон сохранения импульса

Я понимаю, что глупо обсуждать комиксы и их экранизации с точки зрения физики, но иногда я просто не могу удержаться. Вот, например, Флэш бежит спасать человека, которого сбивает машина:
(null)
Неужели сценаристы считают зрителей настолько глупыми и необразованными, что думают, будто мы не знаем закон сохранения импульса?! Очевидно же, что Флэш движется гораздо быстрее машины (судя по сериалу раз в 10), а это значит, что он врежется в человека на огромной скорости. Простейшие вычисления показывают, что эффект от такого «спасения» если и есть, то весьма небольшой. В лучшем случае и сам Флэш, и велосипедист должны отделаться множественными переломами, но в сериале оба, конечно, целы.
Не знаю как вас, но меня такие жуткие нестыковки огорчают.

Как прятать ресурсы в Clash of Clans

Скорее всего я сейчас напишу хорошо известную всем игрокам в Clash of Clans вещь, но я додумался до неё сам, чем в данный момент очень горжусь.
Я стараюсь играть аккуратно и прежде чем переходить на следующий уровень ТХ повышаю все остальные постройки до максимума и провожу все доступные исследования. На это тратится просто огромное количество ресурсов, которые надо суметь скопить. Есть игроки, которые умеют успешно грабить чужие деревни, есть те, у кого получается создать безупречную оборону, а есть такие игроки как я. Атаки мои редко когда выходят в ноль и совсем редко приносят прибыль. Оборона несмотря на высокий уровень башен, пушек и мортир тоже так себе. Если в этом описании вы узнаёте себя, вам может пригодиться мой совет.

Мой совет довольно прост — прячьте ресурсы. Проще всего это делать, инвестируя в войска. Это наиболее ликвидный актив: в них очень легко вложиться и также легко получить деньги обратно.

Прежде всего забейте военные лагеря под завязку чем-нибудь дешёвым (варварами, например) . Если вы сами иногда атакуете, можете заполнить плацдармы своей любимой армией. Главное, чтобы там не было свободных мест. Далее составьте табличку, показывающую «эликсирую» ёмкость доступных вам воинов:

"Элексирная" ёмкость

«Элексирная» ёмкость

Очевидно, что среди всех доступных мне воинов наибольшей ёмкостью обладает дракон. Если запустить тренировку 12 драконов (по три дракона на казарму) можно сразу же вывести из хранилищ 360000 эликсира. Причём этот элексир не потерян, его можно вернуть, просто отменив тренировку (казармы драконы не покинут, так как военные лагеря заполнены).
Не знаю как вам, а мне кажется, что защитить от разграбления 360000 элексира — хорошая идея.

Про недочёты

Вряд ли есть люди, которые любят совершать ошибки, но надо признать, что у ошибок есть одна очень полезная особенность — их надо исправлять. Некоторые программисты, даже начинают работу с мысли «сейчас я всё напишу неправильно, а потом мы с моим другом дебаггером всё исправим».

Но есть в мире вещь, которую я не люблю больше, чем ошибки — это недочёты. Их, в отличие от ошибок, исправлять необязательно. И вроде никто особо не страдает, но осадочек остаётся.

Уже некоторое время я замечаю эти недочёты повсюду, но два самых ярких примера — это карта Московского метро, выполненная в студии Артемия Лебедева, и приложение Сбербанка для iOS.

Вот, например, схема метро:

Схема метро (фрагмент)

Если на неё посмотреть, то создаётся впечатление, что у метро Речной вокзал реки нет, а я точно знаю, что она там есть. В результате недопонимание и недоверие. Можно возразить, что схема есть схема, поэтому все обозначения условны, но тогда как объяснить крюк реки у станции Крылатское? Лично у меня объяснений нет, но если они есть у вас, пожалуйста поделитесь.

UPD. Посмотрел карту Москвы с наложенной схемой метро. У Речного вокзала и правда нет реки, но есть огромное Химкинское водохранилище, которое на мой взгляд стоило указать хотя бы потому, что именно оттуда отправляются теплоходы.

Гораздо хуже приложение Сбербанка. Как по мне, они просто совершают преступление против человечества:

Приложение Сбербанка

 

Я правда не понимаю, как сильно надо ненавидеть пользователей, чтобы одновременно использовать и точку, и запятую в качестве десятичного разделителя. А это ведь крупнейший банк Росии.

И таких недостатков из серии «и так сойдёт» множество. Не знаю особенность ли это исключительно России, или характерно человечеству в целом, но у меня к вам просьба, не оставляйте в своей работе недочётов. Без них лучше. Серьёзно.

Викторины, короткие номера и я

Я вот привык считать себя достаточно разумным человеком, а вчера взял и позвонил в телевикторину. Если в двух словах, я не только ничего не выиграл, но и потерял 1000 рублей.

Чтобы победить в викторине необходимо было составить слово, состоящее из всех букв, показанных на рисунке:

Victorina

Сейчас я понимаю, что это весьма просто, но вчера мне показалось иначе. В итоге, когда я нашёл слово «раскладушка», я решил, что я единственный такой умный и набрал заветный короткий номер.

Около минуты я слушал автоответчик, рассказывающий о том, что звонок жутко платный. Потом меня соединили с оператором, который потребовал меня подтвердить, что я совершеннолетний гражданин РФ и владелец номера. На это тоже ушло около минуты. После оператора я надеялся попасть сразу в эфир, но бесчувственный автоответчик сообщил, что мне присвоен номер в очереди, и включилась музыка.

Пока я ждал своей очереди, в эфир выводили каких-то странных людей, которые находили слова «русалка», «клад» и др. Время от времени музыка отключалась, и автоотвечик просил не вешать трубку, чтобы не терять своё место в очереди. Я послушно ждал и ждал. Наконец-то после 10 минут ожидания, в эфир вывели женщину, которая дала правильный ответ, я прекратил вызов, запросил баланс, понял, что просто подарил кому-то больше 1000 рублей и пошёл есть пельмени.

Морской бой

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

Правила игры

Существует множество вариантов морского боя, но мы с вами рассмотрим наиболее распространённый вариант со следующим набором кораблей:
Sea1 Все перечисленные корабли должны быть размещены на квадратном поле 10 на 10 клеток, при этом корабли не могут соприкасаться ни углами, ни сторонами. Само игровое поле нумеруется сверху вниз, а вертикали помечаются русскими буквами от «А» до «К» (при этом буквы «Ё» и «Й» пропускают).
Рядом рисуется вражеское поле аналогичного размера. При удачном выстреле по кораблю противника на соответствующей клетке вражеского поля ставится крестик и производится повторный выстрел, при неудачном выстреле в соответствующей клетке ставится точка, и ход переходит к противнику.

Оптимальная стратегия

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

Оптимальная стрельба

Первым и самым очевидным правилом оптимальной стрельбы является следующее правило: не стрелять по клеткам непосредственно окружающим уничтоженный корабль противника.
Sea3 В соответствии с принятыми выше обозначениями, на рисунке жёлтым отмечены те клетки, по которым уже были произведены безуспешные выстрелы, красным отмечены клетки, выстрелы по которым закончились попаданием, а зелёным отмечены клетки, стрельба по которым не производилась, но можно гарантировано утверждать, что кораблей в них нет (кораблей там быть не может, т.к. по правилам игры корабли не могут соприкасаться).
Из первого правила сразу вытекает второе: если вам удалось подбить вражеский корабль, необходимо сразу же его добить, чтобы как можно раньше получить список гарантировано свободных клеток.
Третье правило вытекает из первых двух: необходимо в первую очередь пытаться подбить самые крупные корабли противника. Возможно, для вас это правило не очевидно, но если немного подумать, то можно легко заметить, что уничтожив вражеский линкор, мы в лучшем случае получим информацию сразу о 14 гарантировано свободных клетках, а уничтожив крейсер, всего о 12.
Sea4 Т.о. оптимальную стратегию стрельбы можно свести к целенаправленному поиску и уничтожению самых крупных кораблей противника. К сожалению, сформулировать стратегию мало, необходимо предложить способ её реализации.
Для начала давайте рассмотрим участок игрового поля размером 4 на 4 клетки. Если в рассматриваемом участке есть вражеский линкор, то его гарантировано можно подбить не более чем за 4 выстрела. Для этого надо стрелять так, чтобы на каждой горизонтали и вертикали было ровно по одной проверенной клетке, ниже представлены все варианты такой стрельбы (без учёта отражений и поворотов).
Sea5 Среди всех этих вариантов, оптимальными на поле 10 на 10 клеток являются только первые два варианта, гарантирующие попадание в линкор максимум за 24 выстрела.
Sea6 После того, как уничтожен вражеский линкор, необходимо начинать поиск крейсеров, а затем и эсминцев. При этом, как вы уже догадались, можно воспользоваться аналогичной методикой. Только теперь необходимо разбивать поле на квадраты со стороной в 3 и 2 клетки соответственно.
Sea7 Если при поиске линкора вы использовали вторую стратегию, то для поиска крейсеров и эсминцев вам необходимо стрелять по следующим полям (зелёным отмечены поля, по которым вы уже стреляли при поиске линкора):
Sea8 Для поиска катеров оптимальной стратегии не существует, поэтому в конце игры приходится опираться в основном на удачу.

Оптимальное размещение кораблей

Оптимальная стратегия размещения кораблей в некотором смысле обратна оптимальной стратегии стрельбы. При стрельбе, мы пытались найти самые крупные корабли, чтобы сократить количество клеток, которые нужно проверять, за счёт гарантировано свободных клеток. Значит, при размещении корабли надо ставить таким образом, чтобы в случае их потери минимизировать количество гарантировано свободных клеток. Как вы помните, линкор в центре поля открывает для противника сразу 14 полей, но линкор, стоящий в углу, открывает для противника всего 6 полей:
Sea9 Аналогично, крейсер, стоящий в углу, вместо 12 полей открывает всего 6. Т.о., разместив крупные корабли вдоль границы поля, вы оставляете больший простор для катеров. Т.к. стратегии для поиска катеров нет, противнику придётся стрелять наугад, и чем больше свободных полей у вас останется к моменту ловли катеров, тем тяжелее будет выиграть противнику.
Ниже представлено три способа размещения крупных кораблей, которые оставляют большой простор для катеров (отмечено синим):
Sea10 Каждая из приведённых расстановок оставляет для катеров ровно 60 свободных клеток, а это значит, что вероятность случайно попасть в катер составляет 0,066. Для сравнения стоит привести случайную расстановку кораблей:
Sea11 При такой расстановке для катеров остаётся всего 21 клетка, а это значит, что вероятность попадания по катеру составляет уже 0,19, т.е. почти в 3 раза выше.

В заключение хочу сказать, что не стоит проводить уж слишком много времени, играя в морской бой. Особенно хочу предостеречь вас от игры на лекциях. Когда я сидел в Ваби-Саби и играл в морской бой со своей девушкой, мимо прошла официантка и сказала, что она весьма неплохо играет, т.к. много практиковалась на парах. Кто знает, кем бы она работала, если бы в своё время слушала лекции?