A simple play with numbers, and function calls.

My first intentions were different, but I had trouble with big numbers not fitting inside Integer, so this will do for now.

A(split//, join'', map {qq|$_@{[ord(A)+(map-100+ord,split//, 'mdsk')[$.++]]}3|}map{344+((1,-1,-1,1)[$o++]*ord( 'd')*($i++ ==3?5:1))+ord}split//,'Codz');sub A{$_[0]&&do{($_[0]!=$_[1]) &&shift and&A||do{shift;shift;$_=$|; {$_*=10;$_+=shift;$_[0] ==3||redo}print chr,chr(1+15*shift);&A;}}}s,,$i++*$o+ord,ex;

He who asks will be a fool for five minutes, but he who doesn't ask will remain a fool for life.
Chady |
Are you a Linux user in Lebanon? join the Lebanese Linux User Group.