Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
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, но я думаю будет понятно:)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
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

Криптоквест