Скриптинг

> Как программист, я могу сказать, что всё это не имеет смысла.
>
>

**Скриптинг** *(англ. Scripting)*, или **Кодинг** — модовый обычный модуль. Представляет собой большой дисплей с написанным на нем программным кодом, скриптом на языке C Sharp (C#). Для обезвреживания модуля необходимо исправить ошибочный скрипт и запустить его.

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

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

* Модуль содержит программу, написанную в редакторе кода «Microsoft Visual Studio».
* В коде содержатся ошибки и их необходимо исправить. Нажмите на те части скрипта, которые необходимо изменить.
* Проходя последовательно по правилам в разделах ниже и следуя инструкциям, определите, что именно нужно исправить в коде.
* Когда все баги будут устранены, запустите скрипт. Если код будет содержать ошибки или баги, модуль выдаст ошибку.

### **Раздел A: Использование директив**

Выясните, какие директивы «**using**» являются ненужными и закомментируйте их, щёлкнув по ним на модуле в нужной строке. Цифры на диаграмме ниже указывают на номера директив в коде. Сначала просмотрите **правила**, связанные с начальными цветами кругов на диаграмме, и закомментируйте подходящую директиву в соответствующей номеру строке; если применимы два условия, используйте их пересечение на схеме и перейдите к исключениям.

**Если правильных условий ровно 2, то перейдите к исключениям.Если ни одно из условий не применимо, значит лишних директив нет.*** **Синее** условие истинно, если количество горящих индикаторов больше количества негорящих.
* **Красное** условие истинно, если есть индикатор «SND», «TRN» или «CLR».
* **Зелёное** условие истинно, если есть горящий индикатор «FRQ», «SIG» или «BOB».

**Исключения:**
**Если нужное исключение не применимо, значит лишних директив нет.*** **Бат.:** Подсчитайте количество батареек. Если их количество чётно, то **1-я** и **2-я** директивы НЕ нужны.
* **Сер.:** Если последняя цифра серийного номера равна 5 или выше, **3-я** директива НЕ нужна.
* **Инд.:** Если количество индикаторов больше последней цифры серийного номера, то **2-я** и **3-я** директивы НЕ нужны.

### **Раздел B: Переменная**

Проверьте тип и имя переменной и пройдитесь по всем её вариантам (Int, Float, Bool и Char). Используйте только первый вариант, который вы найдёте в этом списке, проходя по нему сверху вниз.

* Тип переменной — «**int**», если значение Int меньше последней цифры серийного номера.
* Тип переменной — «**float**», если значение Float меньше количества батареек.
* Тип переменной — «**bool**», если, пока она имеет булевый тип, условие (оператор if) истинно.
* Если ничего из вышеперечисленного не применимо, используйте «**char**».

### **Раздел C: Тип метода**

* Если количество решённых модулей — чётное число, то тип — «**void**».
* Иначе тип метода — «**bool**».

### **Раздел D: Действие**

Найдите подходящее условие в итоговой таблице в зависимости от имеющихся директив «**using**» и нужных букв в серийном номере. Пройдитесь по условиям и примените первое подходящее, а после возьмите из ячейки таблицы требуемое действие, которое необходимо выставить в программе модуля.

 Серийныйномер…
 …иначе, еслисодержитгласную букву
 Иначе

## Ссылки

* Оригинал на английском
* Оптимизированное руководство (от VFlyer)