Scripting Games: Sudden Death Challenge — Event 4

Задача — получить из 6882463283678273808479 строку «DR. SCRIPTO». Ерунда 😉

 

SD4.ps1

$(foreach($c in([char[]](gc C:\scripts\numbers.txt))){[char][int]"$c$($foreach.movenext()|out-null;$foreach.current)"})-join''

Но вот разобрать и прокомментировать этот ужас куда сложнее… И поэтому я просто переписал ту же логику заново, но более понятно 🙂

 

SD4_easy.ps1

# Инициализируем переменную $Result для хранения итоговой строки. $Result = "" # Получаем содержимое файла в переменную. $stringNumbers = Get-Content "C:\scripts\numbers.txt" # Преобразуем строку в массив символов $charNumbers = [char[]]$stringNumbers # Для каждого символа в массиве... foreach ($FirstNumber in $charNumbers) { # Сдвигаем перебор на одну итерацию вперед с помощью метода MoveNext() # специального объекта $ForEach (который доступен только внутри цикла foreach. $Foreach.MoveNext() | Out-Null # Помещаем следующий символ в переменную $SecondNumber. $SecondNumber = $Foreach.Current # Объединяем оба номера в число, которое и является кодом символа. [int]$CharCode = $FirstNumber+$SecondNumber # Преобразовываем число в символ, и добавляем к $Result. $Result += [char]$CharCode } # Выводим результат. $Result

Кстати у MoW получилось еще короче и красивее.

Опубликовано в Learn, PowerShell, Scripting, Scripting Games. Комментарии к записи Scripting Games: Sudden Death Challenge — Event 4 отключены