Comments 24
Нулевый уровень без багов, делаю первый.
Нулевой хорошо поддался, только отсутствие пробелов заставляет глаза держать в куче
застрял на lvl4.txt :(
Сдаюсь, народ! Как проходить нулевой уровень?
Бро, я уж думал я форевэр элоун!
На всякий случай выложу в виде кода, чтобы кто-то случайно на ответ не наткнулся просматривая коменты :)
Function Main()
Local message:String="WYVIHISFAOLLHZPLZAJPWOLYWVZZPISLPZAOLZOPMAJPWOLYHSZVRUVDUHZJHLZHYJPWOLYPUAOPZJHZLAOLWHZZDVYKPZDVYKBUWYVMPAHISLDYPAALUPUSVDLYJHZL"
For Local shift:Int = 1 To 25
Print "Shift: "+ shift + " " + DecodeLvl0 (message.ToUpper(), shift)
Next
End
Function DecodeLvl0:String (message:String, key:Int)
Local codedMessage:String
For Local i:Int = 0 To message.Length()-1
Local newChar:Int = message[i]+key
If newChar>90
newChar -= 26
End
codedMessage+=String.FromChar(newChar)
Next
Return codedMessage
End
</code>
Код на Monkey, но я думаю будет понятно:)
Это решение Lvl1:
Function Main()
Local message:String="FHVZGYZHSGLWVXLWVGSRHNVHHZTVZMWURTFIVLFGGSZGGSVHVXIVGDLIWRHSBWILNZTMVGRXDIRGGVMRMZOGVIMZGRMTXZHVDRGSLWWOVGGVIHFKKVIXZHV"
Print DecodeLvl1(message)
End
Function DecodeLvl1:String (message:String)
Local codedMessage:String
For Local i:Int = 0 To message.Length()-1
Local newChar:Int=message[i]
If newChar>64 And newChar<91
newChar = 90 - (newChar - 65)
ElseIf newChar>96 And newChar<123
newChar = 122 - (newChar - 97)
End
codedMessage+=String.FromChar(newChar)
Next
Return codedMessage
End
А давайте вы не будете спойлерить решения ну хотя бы пару дней, а? Тем более так явно, даже не намеками. Я уверена, что многие, кто хотели бы сами порешать, этот топик еще даже не видели, не то что не подумали как следует. Уважайте чужой фан.
Для Lvl2:
Function Main()
Local message:String="153344154252344214241415342242113523542433122422311544441542432134313134521514125444234215154423344543113314445215334454432453"
Print DecodeLvl2(message)
End
Function DecodeLvl2:String (message:String)
Local alphabet:String="ABCDEFGHIKLMNOPQRSTUVWXYZ"
Local codedMessage:String
Local tableMap:StringMap<Int> = New StringMap<Int>
Local i:Int=0
For local x:Int = 1 to 5
For local y:Int = 1 to 5
tableMap.Add(String(x)+String(y), alphabet[i])
i+=1
Next
Next
For Local i:Int = 0 To message.Length()-2 Step 2
codedMessage+=String.FromChar(tableMap.Get(message[i..i+2]))
Next
Return codedMessage
End
Хотя бы в тег spoiler завернул
UFO just landed and posted this here
К сожалению, уже нет сил смотреть. Завтра с удовольствием присоединюсь к участникам. И немного по теме :)
«одноразового блокнота» — как так вообще можно было перевести термин “one-time pad”?
Расшифровал, спасибо!
proof
«this is the only prize»
Sign up to leave a comment.
Криптоквест