Асинхронные символы

> Пытаться мысленно синхронизировать два асинхронных экрана — невозможное занятие. Остаётся только следить за обоими и подгадывать момент, чтобы поймать те символы, которые вам нужны.
>
>

**Асинхронные символы** *(англ. Rambopo)* — модовый обычный модуль. Содержит дисплеи, на экранах которых отображаются самые разнообразные символы, постоянно циклически переключаясь, а также переключатель. Для обезвреживания модуля необходимо определить соотношение скоростей, с которой циклично меняются символы на экранах, и нажать переключатель в правильный момент.

Модуль достаточно сложен для сапёра и умеренно-прост для эксперта: труден как в определении соотношения скоростей, так и в описании быстро переключающихся символов; для эксперта модуль проще, поскольку ему необходимо лишь найти в сетке нужные символы и сообщить их сапёру. Не требует никакой информации о корпусе бомбы.

## Руководство

На модуле находятся два экрана, расположенных либо горизонтально, либо вертикально, на которых циклически будут меняться символы с разной скоростью, асинхронно. Для начала определите, какой из экранов для вас является первым, а какой — вторым:

* Если экраны расположены **горизонтально**, то левый экран — первый, а правый — второй.
* Иначе, если экраны расположены **вертикально**, то нижний экран — первый, а верхний — второй.

Далее определите **соотношение** скоростей экранов: как быстро воспроизводятся символы на первом экране по отношению ко второму. И затем найдите ниже одну нужную вам таблицу, в заголовке которой указана подходящая дробь, обозначающая ваше соотношение скоростей экранов (числитель — скорость первого экрана, знаменатель — скорость второго). В таблице найдите **пару подходящих символов**, расположенных рядом друг с другом, которые имеются среди всех символов на экранах модуля:

* Если экраны расположены горизонтально, то ищите пару горизонтально расположенных символов (слева и справа друг от друга).
* Иначе, если экраны расположены вертикально, то ищите пару вертикально расположенных символов (сверху и снизу друг от друга).

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

## Советы по обезвреживанию

Первое, и, пожалуй, одна из сложных частей в решении данного модуля для сапёра — начальное определение соотношения скоростей экранов. Рассмотрим несколько примеров:

* Если символы на ваших экранах меняются синхронно, ровно как и на модуле  Символьный цикл, то всё просто — соотношение скоростей 1/1.
* Если один из экранов меняется ровно в 2 или 3 раза быстрее другого (то есть, пока на одном экране достаточно долго отображается один символ, на другом экране успевают смениться 2 или 3 символа), то соотношение их скоростей будет либо 1/2 (2/1), либо 1/3 (3/1).
* И наконец, самый сложный пример — если оба экрана меняются достаточно быстро, причём один экран делает это в 1,5 раза быстрее другого, то соотношение их скоростей — 2/3 (или 3/2).

Помните о том, что если экраны расположены вертикально, то нижний ваш экран — первый (а не верхний, как может интуитивно показаться). Не перепутайте числитель дроби со знаменателем! Всегда помните о том, каких из двух экранов у вас является первым (то есть представляет числитель дроби; число, стоящее до «/»), а какой — вторым (то есть представляет знаменатель дроби; число, стоящее после «/»).

И наконец, заключительная часть в решении — сапёр должен сообщить эксперту, какие символы на экранах у него имеются, чтобы эксперт смог найти в таблице для него нужную пару. Можно сделать и наоборот: эксперт может спрашивать сапёра, имеются ли у него те или иные символы из нужной таблицы. И в конце, когда подходящая пара символов будет найдена, сапёру остаётся только дождаться момента, и успеть среагировать, нажав переключатель в подходящий момент, пока символы не успели смениться на другие. Особенно тяжело это может быть сделать, если символы переключаются быстро (как, например, при соотношении их скоростей 2/3 или 3/2).

## Интересные факты

* Символы, используемые в данном модуле, являются также частью других модулей, которые тоже используют их, как, например,  Рентгеновский сканер. В его исходном коде содержится файл с изображением огромного количества самых разнообразных символов, часть которых имеется в данном модуле.

Все символы из исходного кода рентгеновского сканера, часть которых используется в данном модуле

## Примечания

1. ↑ Файл-изображение со всеми символами из исходного кода — GitHub.