RosettaCodeData/Task/Caesar-cipher/XBS/caesar-cipher.xbs
2026-02-01 16:33:20 -08:00

37 lines
722 B
Text

set letters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"::split();
func caesar(text,shift:number=1){
set res:string="";
for(i=0;?text-1;1){
set t=text::at(i);
set n=(letters::find(t::upper())+shift)%?letters;
while(n<0){
n=?letters+n;
}
set l=letters[n];
(t::upper()==t)|=>l=l::lower()
res+=l;
}
send res;
}
func decode(text,shift:number=1){
set res:string="";
for(i=0;?text-1;1){
set t=text::at(i);
set n=(letters::find(t::upper())-shift)%?letters;
while(n<0){
n=?letters+n;
}
set l=letters[n];
(t::upper()==t)|=>l=l::lower()
res+=l;
}
send res;
}
set e=caesar("Hi",20);
set d=decode(e,20);
log(e);
log(d);