forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные функции (http://forum.boolean.name/forumdisplay.php?f=17)
-   -   очень маленькие хинты (http://forum.boolean.name/showthread.php?t=3670)

moka 14.05.2011 18:59

Ответ: очень маленькие хинты
 
Всегда подобное использовал для тайлов..
Только разница в том, что я подумал а не искал, тем самым извлёк знания и опыт.

LLI.T.A.L.K.E.R. 14.05.2011 23:03

Ответ: очень маленькие хинты
 
Цитата:

Сообщение от Harter
Представляю вам первый алгоритм из серии "не думай @ ищи".

уголок дорога как сделать круто бесплатно без регистрации 2D 3D ну клеточки чтоб работало
Блочная графика #1

Что там значат 8 и 4?
Написали от балды, чтобы запутать?

И что за 1+2=3
Нельзя тупо ввести 3 и всё..

Глупых вопросов больше не напишу..
Не понял я левую картинку.
:dontknow:

moka 14.05.2011 23:37

Ответ: очень маленькие хинты
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 188492)
Что там значат 8 и 4?
Написали от балды, чтобы запутать?

И что за 1+2=3
Нельзя тупо ввести 3 и всё..

Глупых вопросов больше не напишу..
Не понял я левую картинку.
:dontknow:

Омг, если для тебя это не понятно, то это не значит что написали от балды.


Есть тайл, и четыре к нему прилегающих, тебе нужно высчитать какую картинку вставлять.
Можешь сделать тупо кучей If'ов (16*4), и будет у тебя гипер говнокод, на строк 70. А можно тупо сделать по умному немного приложив логику.
Разжую.
Исходя из картинки сверху, поле является таким:
Код:

0 1 0 0
0 1 0 0
0 1 1 1
0 0 0 0

Нужно правильно подобрать тайлы, чтобы они исходя из поля, заполнили дорогу.
Смотрим на тайл в первой картинке по координате 2,3. Относительно ему есть тайл сверху и справа.
Если за условность взять нумерацию как показано на первой картинке:
вверх - 1; вправо - 2; вниз - 4; влево 8. Числа кратные двум, и их можно плюсовать как угодно. В одно число можно запаковать все четыре, или любую другую комбинацию. Например 4+2+1 = 7, при этом иначе ты 7 не разберёшь, как только на 4, 2 и 1. (кратные двум). Если рассмотреть в бинарном коде, то тут всё просто:
Код:

1: 0001
2: 0010
4: 0100
8: 1000

Получается 7 будет: 0111.
Такой подход используют много где, в тех же флагах в виде параметров для функций. Но длина ограничена естественно, 16 чисел - это будет 16 бит. Если брать уже 32 числа, то это будет весьма длинное число: 2^32-1 = 4,294,967,295. Столько флагов обычно не используют.
Вернёмся назад. Значит у нас есть 4 числа, и нужно получить флаг. Предположим мы разбираем центральную ячейку и поле такое:
Код:

0 0 0
0 1 0
0 0 0

Сверху 0, справа 0, снизу 0, слева 0. Получается при сумме 0. Смотрим на вторую картинку - по индексу будет 0.
Далее рассмотрим такой сценарий:
Код:

0 1 0
0 1 0
0 1 0

Сверху 1, значит +1. Снизу тоже 1, значит +4. В результате 5. Идём снова в картинку с тайлами: Вертикальная дорога.
Смотрим если все вместе (1+2+4+8 = 15), это будет последняя перекрёсток.
Если справа пусто, а везде в других есть, то будет 1+4+8 = 13, и по картинке с тайлами сходится.

Это весьма хорошая смекалка, и если кто-то додумался до подобного сам, то ему огромный зачёт (себя хвалю :-D).

LLI.T.A.L.K.E.R., если ты не понял сам, то не гони, а лучше скажи что не понимаешь, тебе объяснят, если сам не способен.

impersonalis 15.05.2011 01:20

Ответ: очень маленькие хинты
 
Напечатано в журнале «The American Scientist», 46, №3 (1958):
Цитата:

Но наибольший успех достигается с помощью такого приема: из готовой рукописи вы вырываете две страницы выкладок, а вместо них вставляете слово «следовательно» и двоеточие. Гарантирую, что читатель добрых два дня будет гадать, откуда взялось это «следствие». Еще лучше написать «очевидно» вместо «следовательно», поскольку не существует читателя, который отважился бы спросить у кого-нибудь объяснение очевидной вещи. Этим вы не только сбиваете читателя с толку, но и прививаете ему комплекс неполноценности, а это одна из главных целей.
http://n-t.ru/ri/fz/fz208.htm
Придумать шифрующий алгоритм проще, чем его взломать. Додуматься до приведённого выше алгоритма кодирования - просто, расшифровать картинку без пояснений? ололо - тему в раздел "загадки" (ну или разрешите наконец писать HEX-ом).


Часовой пояс GMT +4, время: 15:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot