Gizli Dile Dönüştürme


9

"Bugün harika bir gün" gibi bir dize giren herhangi bir dilde bir kod yazın (noktalama işareti olmadığını unutmayın) ve "Gizli Dil" e dönüştürür. İşte "Gizli Dil" için kurallar.

  • a = c, b = d, c = e vb. (y = a ve z = b)
  • her kelimeyi bir boşlukla ayır
  • uygun büyük harf kullanımı olduğundan emin olun

Misal:

Input: "Today is a great day"

Output: "Vqfca ku c itgcv fca"

Bu bir popülerlik yarışması. Diğer kullanıcılar "noktaya" ancak "benzersiz" kodlara bakarak puan vermelidir.

SORUN: Yaygın olmayan programlama dilleri arıyordum ve Piet ( esolang ) adlı bir dil buldum . Herkesin bu dilde yazmasına meydan okuyorum.


Olmamalı mı x=z, y=a, z=b?
r3mainer

haklısın "duh" :)
Vik P

3
Ben fark kadar karıştı a=cIS a -> c.
Justin

6
Başka bir deyişle, ROT2 it
Tobias Kienzler

2
Hem rot13 hem de rot2, farklı tuşlara (13 ve 2) sahip Sezar şifreleri .
Sylwester

Yanıtlar:


18

Smalltalk (Smalltalk / X), 29 27 karakter

Şanslıyım - zaten String sınıfında:

'Today is a great day' rot:2
    -> 'Vqfca ku c itgcv fca'

G / Ç ekleyerek, bunu yapar:

(Stdin nextLine rot:2)print

kapı tokmağının gizlenmiş örneğinin ruhuna göre, nasıl olur:

Parser evaluate:('(Uvfkp pgzvNkpg tqv:2)rtkpvPN' rot:-2)

2
Smalltalk çözümü göreceğimi hiç düşünmemiştim!
Diş fırçası

13

Ruby, gizlenmiş baskı (yorum dahil!)

Her şeyi okumanızı öneririm; Oldukça eğlenceli buluyorum;)

$s='';class Module;def const_missing c

# MAGIC:
$s+="#{c}".split("#{$;}").map{|x|x.ord-8**2}.reduce(:"#{43.chr}").chr;end;end

              # My commentary ;)

ZZZY          # ?
YAYYY         # Oookay; you seem excited
Yaz           # Typo?
Yay           # Better
JEEEEEEF      # You misspelled Jeff's name
LAZZZY        # Yes, you are very lazy
Yax           # Another typo...
LLAMA         # Definitely not completely random at all...
EEEEEEEEEEEEE # Ouch my ears
IIIII         # Ouch stop
ASDFASDFASDF  # I SAID STOP BANGING ON THE KEYBOARD
YUMMY         # ... you eat keyboards?
IIIII         # Stop!
YUMMYY        # Why are you eating your keyboard
LLAMA         # That doesn't make sense :(
VV            # :(
LLAMA         # Could you stop saying that?!
CODEGOLF      # Yay, one of my favorite SE sites! :D
VW            # I don't drive
ASDFASDFASDF  # Why do you keep banging on your keyboard?!?!
EEEEEEEEEEEEE # No
VVV           # Stop
HELLOo        # ...it's a little late for a greeting, isn't it?
DOGS          # ...
OOOOOo        # No, you're not a ghost.
HELLOOOO      # Just a *bit* late.
NNNNNNN       # Huh?
LLAMA         # I said to stop.

print eval$s

Nasıl çalıştığına dair ipuçları (spoiler, göstermek için fareyle üzerine gelin):

Bu kod bir dize oluşturur ve sonra değerlendirir.

const_missingDizeyi karakter karakter oluşturmak için kullanır .

Bu bina biter dize gets.tr'A-Za-z','C-ZABc-zab'.


Yorum bu sorudaki bazı sohbetler gibi okuyor: codegolf.stackexchange.com/questions/20914/who-is-this-chatbot/…

13

dipnot

Karargah, bundan böyle tüm ajanların özel gizli gizli yazı tipi kullanarak yalnızca basılı biçimde (elektronik kanalların çok güvenilir olmadığı kanıtlanmıştır) iletişimi almasını gerektirmektedir. Bu çok gizli prosedürü baskı yazılımımızın prologuna dahil etmek sizin sorumluluğunuzdadır:

/define_Secret_font {
    /Secret_font
    /Coronet findfont dup 
    /Encoding get 
    aload pop 256 array astore 
    /secret_proc {
        2 copy
        26 getinterval aload pop 
        26 -2 roll 26 array astore
        putinterval
    } def
    dup 65 secret_proc
    dup 97 secret_proc
    exch dup length dict dup
    3 -1 roll {put dup} forall
    exch /Encoding 4 -1 roll put 
    definefont pop
} def

Ve sadece bu yazı tipine izin verilir, örneğin:

define_Secret_font
/Secret_font 36 selectfont
0 841 translate
20 -60 moveto
(Today is a great day) show
20 -120 moveto
(Programming Puzzles & Code Golf) show
showpage

Ve işte böyle yazdırıyor: resim açıklamasını buraya girin


11

darbe

Klasik.

tr A-Za-z C-ZABc-zab

Misal:

$ tr A-Za-z C-ZABc-zab <<< "Today is a great day"
Vqfca ku c itgcv fca

Sanırım alıntılara ihtiyacınız yok.
marinus

@marinus Haklısın, değiştireceğim.
daniero

5

DFSORT (IBM Ana Bilgisayar sıralama programı)

 OPTION COPY
 INREC BUILD=(1,80,TRAN=ALTSEQ)

Birinci sütunda hiçbir SORT kontrol ifadesi başlatılamaz.

Yukarıdakilerin tek başına çalışması için, büyük ve küçük harfler için tüm değerleri dengelemek ve son iki harfi sararak varsayılan kurulum alternatif çeviri tablosunu değiştirmeniz gerekir.

Varsayılan tablo değiştirilmeden gerekli tüm onaltılık değer çiftlerini listeleyen bir ALTSEQ deyimi gerektirir (hemen hemen onaltılık koddan sonra onaltılık koda, her onaltılık değer çifti virgülle ayrılır):

 OPTION COPY
 INREC BUILD=(1,80,TRAN=ALTSEQ)
 ALTSEQ CODE=(xxyy,...)

Böylece EBCDIC A'dan C'ye ve B'den D'ye büyük harf almak için:

ALTSEQ KODU = (C1C3, C2C4)

Her şey için, bu çok fazla hataya eğilimli yazım olurdu, bu nedenle, bu adım için kontrol kartlarını oluşturmak için başka bir SORT adımı kullanırsınız ve SORT'un bunları yeni adım tarafından oluşturulan veri kümesinden okumasına izin verirsiniz.

Tabii ki, "çeviri tablosu" nu destekleyen herhangi bir dil için çeviri tablosunu değiştirmek kadar kolaydır. Belirli bir Codepage ile güzel COBOL programı ve bir satır COBOL prosedür kodunda (artı COBOL zorunlu satırları ile her şeyi gitmek ... bu özel durumda çok değil) yapılabilir.

Oh, 1,80 metni içeren "kart görüntüsü" dür. Muhtemelen ilk seferde büyük harflerle ...


+1. ROT2 için DFSORT kullanmak gerçekten benzersizdir.
Abhijit

3

C, 75 bayt

main(c){while((c=getchar())>0)putchar(isalpha(c)?(c&224)+((c&31)+2)%26:c);}

Misal:

$echo "Today is a great day" |./a.out
Vqfca ku c itgcv fca

~(c=getchar())
EOF'nin

ve soru noktalama işareti olmadığını söylediğinden, sadece alfabetik olmayan karakter boşluktur, bu yüzden bununla test edebilirsiniz c-32, bu da size 6 karakter kazandırır
user12205

Bu bir popülerlik yarışması ve kod golf değil
Mhmd

Kod golf şimdi popülerlik için antitetik mi?
Desty

@ user689 haklısın, üzgünüm soruyu dikkatle okumadım. Bu kod üçlü operatör ile tek bir satırda yazılmış ve hayır intve hatta bir char sayısı sağlandığından, bir şekilde kod golf olduğunu varsaydım. Afedersiniz.
user12205

3

piton

a = list('abcdefghijklmnopqrstuvwxyz')
b = list('yzabcdefghijklmnopqrstuvwx')

c = {}

#generate conversion dictionary

for i in range(len(a)):
    c[a[i]] = b[i]

instring = "the weather is very nice today"

outstring = ""

for i in list(instring):
    try:
        outstring += c[i]
    except:
        outstring += i

print outstring

Çıktı:

rfc ucyrfcp gq tcpw lgac rmbyw


(1) Öyle +3değil mi? (2) Daha karmaşık hale getirmek için birçok şeyi satır içi yapabilirsiniz. (bu bir trend gibi görünüyor)
Simon Kuang

b = a[2:] + a[:2]daha az yazım hatası eğilimli olabilir ve dizeyi dönüştürmek gerek var gibi görünüyor ediyorum aalist
Tobias Kienzler

oh, ve c = dict(zip(a,b)). Ve bu exceptkadar genel olmamalı, bir kullanexcept KeyError
Tobias Kienzler

strbirleştirme süper yavaştır. Bir oluşturun listve onlara katılın çok daha iyi olurdu.
yegle

3

JavaScript

// setup alphabet and secret rotated alphabet
//
var alpha=' abcdefghijklmnopqrstuvwxyz'
var rotor=' cdefghijklmnopqrstuvwxyzab'
alpha+=alpha.toUpperCase()
rotor+=rotor.toUpperCase()

function encrypt(str) {
 return crypt(str, alpha, rotor)
}

function decrypt(str) {
 return crypt(str, rotor, alpha)
}

// swap position of char from one dictionary to the other
function crypt(msg, d1, d2) {
 var out=''
 var len=str.length
 for(var i=0; i < len; i++) {
  var c = msg.charAt(i)
  var j = d1.indexOf(c)
  out += d2.charAt(j)
 }
 return out
}

3

PHP

En kısa olanı değil!

Canlı örnek: https://eval.in/102173

<?php
$str = 'Today is a great day';
$out = implode('', array_map(function ($val) {
  if ($val == ' ') return ' ';
  $c = ord($val)+2;

  if (ctype_lower($val)) {
    if ($c > ord('z')) {
      return chr(ord('`') + ($c - ord('z')));
    }
    return chr($c);
  }
  else {
    if ($c > ord('Z')) {
      return chr(ord('A') + ($c - ord('Z')));
    }
    return chr($c);
  }  
}, str_split($str)));

var_dump($out);

Not:

ord('`') = ord('a') - 1

3

TI-Basic (TI-83 grafik hesap makinelerinde çalışan dil)

:ClrHome  
:" abcdefghijklmnopqrstuvwxyz" //all symbols that can be interpreted  
:Ans+Ans+Ans->Str1  
:Menu("crippter","encript",1,"decript",2  
:Lbl 2  
:1->C  
:Lbl 1  
:if not(C)  
:Imput ">",Str2  
:if C  
:Imput "<",Str2  
:length(Str2)->D  
:lenght(Str1)/3->E  
:if not(C)  
:Then  
:randInt(1,E)->B  
:sub(Str1,B,1)->Str3  
:Else  
:inString(Str1,sub(Str2,1,1),1)->B  
":"->Str3  
:For(X,1+C,D  
:inString(Str1,sub(Str2,X,1)->A  
:if not(C  
:A+E-B-X->A  
:if C  
:A+B+X-1->A  
:Str3+sub(Str1,A,1)->Str3  
:End  
:if C  
:sub(Str3,2,D-1)->Str3  
:Pause Str3  
:Goto A  

Bu güzel bir şifreleme yazılımıdır (TI-83 için). Ti-83 ile, ti-83 veya ti-84 ailesindeki herhangi bir hesap makinesini kastediyorum. "->", "STO>" tarafından erişilen "STORE" anlamına gelir


3

Yakut 40 32

p gets.tr("A-XY-Za-xy-z","C-ZA-Bc-za-b") 

güncelleme (danieros bash çözümünden görüldüğü gibi):

p gets.tr("A-Za-z","C-ZABc-zab")

3

Java, aslında anlaşılabilir.

Beyaz boşluk ve parantez olan her şeyin CG'de zor zamanlar geçirdiğini biliyorum, ama işte bir çekim.

    class SecretLanguage {

    public static void main(String[] args) {
    for (String S : args) {
        for (char s : S.toCharArray()) {
        System.out.print((char) (s + ((s < 'y') ? 2 : -24)));
        }
        System.out.print(" ");
    }
    }
}

Kodu gizlemek için ayrı yarışmalar var, ama benimkini de saçma yapabilirim.

class S{public static void main(String[]args){for(String str:args){for(char i:(str).toCharArray())System.out.print((char)(i+((i<'y')?2:-24)));System.out.print(" ");}}

2

JavaScript

var str = '';
var textInput = 'myString';
for (var i = 0; i < textInput.length; i++) {
    str += textInput.charAt(i).replace(/([a-zA-Z])[^a-zA-Z]*$/, function (a) {
        var c = a.charCodeAt(0);
        switch (c) {
            case 89:
                return 'A'; //Letter Y!
            case 90:
                return 'B'; //Letter Z!
            case 121:
                return 'a'; //Letter y!
            case 122: //Letter z!
                return 'b';
            default:
                return String.fromCharCode(c + 2); //If not y, Y, z, or Z, then just two more from the usual char code
        }
    })
}
console.log(str);

Tüm yorumlarda ne var, hamster bunu anlayabilir.


2

Sanırım ROT2 yapacağım!

JavaScript

function r(a,b){return++b?String.fromCharCode((a<"["?91:123)>(a=a.charCodeAt()+2)?a:a-26):a.replace(/[A-z]/g,r)}

console.log(r('Qccipcr'));

İlk başta böyle bir şey düşündüm, ama hiç düşünmedim [A-z]!
Diş fırçası

2

Haskell

İşte lens tabanlı bir uygulama. Ben Isonormal metin ve gizli dile dönüştürülmüş metin arasındaki izomorfizmi temsil etmek için kullanıyorum . Verdiğiniz sürece --fromseçeneği, giriş gizli bir dil dönüştürülür. Eğer --fromseçenek sağlanır, tersi dönüştürme gerçekleştirilir.

module Main where
import Control.Lens
import System.Environment (getArgs)
import Data.Char          (ord, chr, isUpper, isSpace)
import Data.Word          (Word8)

ord8 :: Char -> Word8
ord8 = fromIntegral . ord

chr8 :: Word8 -> Char
chr8 = chr . fromIntegral

ordIso :: Iso' Char Word8
ordIso = iso ord8 chr8

firstLetterOrd :: Word8 -> Word8
firstLetterOrd n
  | n ^. from ordIso . to isUpper = ord8 'A'
  | otherwise                     = ord8 'a'

secretChar :: Iso' Char Char
secretChar =
  iso toSecret
      fromSecret
  where
    toSecret, fromSecret :: Char -> Char
    toSecret   = secretConversion   2
    fromSecret = secretConversion (-2)

secretConversion :: Int -> Char -> Char
secretConversion n c
  | isSpace c = c
  | otherwise = c & over ordIso (secretShift n)

secretShift :: Int -> Word8 -> Word8
secretShift shiftAmount =
  preserveLetters $ (`mod` 26) . (+ shiftAmount)

preserveLetters :: (Int -> Int) -> Word8 -> Word8
preserveLetters fn n =
  firstLetter + overWord8 fn (n - firstLetter)
  where
    firstLetter = firstLetterOrd n

overWord8 :: (Int -> Int) -> Word8 -> Word8
overWord8 fn = fromIntegral . fn . fromIntegral

help :: IO ()
help =
  putStr
  $ unlines
      ["SecretLang [--from]"
      ,"If the --from option is provided, the program"
      ,"converts from the secret language. Otherwise,"
      ,"it converts to the secret language."
      ]

convertContents :: (String -> String) -> IO ()
convertContents fn = do
  input <- getContents
  putStrLn . ("Output: " ++) $ fn input

main :: IO ()
main = do
  args <- getArgs

  case args of
    ("--from":_) ->
      convertContents (^. mapping (from secretChar))

    ("--help":_) -> help
    ("-h"    :_) -> help

    _            ->
      convertContents (^. mapping secretChar)

Örnekler:

$ ./SecretLang
Today is a great day
Output: Vqfca ku c itgcv fca

$ ./SecretLang --from
Vqfca ku c itgcv fca
Output: Today is a great day

1

C

    #include<stdio.h>

    int main()
    { char p[256];
    int i;
    fgets ( p, 256, stdin );
    for(i=0; i<256 ; i++)
    {
   if ( p[i] == '\n' )
    {
    p[i] = '\0';
    break;
    }
    else
    {

    if((p[i] >= 'a' && p[i] <= 'x') || (p[i] >= 'A' && p[i] <= 'X') )
    {
        p[i] +=2;
    }

    else
    {
    switch(p[i])
     {
        case 'y':    p[i] = 'a';
                     break;

       case 'Y':    p[i] = 'A';
                     break;

       case 'z':    p[i] = 'b';
                     break;
       case 'Z':    p[i] = 'B';
                     break;
       case ' ':    p[i] = ' ';
                     break;


     }
    }
}}

printf("%s", p);

    return 0;
 }

chars üzerinde modulu aritmetik kullanarak kod bir çok kaydedebilirsiniz ...
blabla999

@ blabla999 bu bir popülerlik yarışması ve kod-golf değil
Mhmd

1
üzgünüm - kırmak istemiyordu. Bunu göz ardı ettim.
14:48

1

EcmaScript 6:

alert(prompt(_='').split(_).map(x=>String.fromCharCode(x.charCodeAt()+(x>' '?x>'x'|x>'X'&x<'['?-24:2:0))).join(_))

EcmaScript, benim dev olmanın düşmanı
Cilan

1

JAVA

32olduğu spacekonuda bir şey yazdırmak böylece
88olduğu Xşey bu yüzden az 892 karakter yukarı hamle
90olduğunu Zaz şey öylesine 9124 karakterden aşağı hamle (bir şeyle az 89zaten sadece ele 89ve 90etkili bir şekilde)
arasında değişen küçük harfler için aynı işlemi tekrarlayın 97olarak ahiç 122olarak z.

void secret(String s) {
    for (char c : s.toCharArray()) {
        System.out.print((char)(c == 32 ? c : c < 89 ? c + 2 : c < 91 ? c - 24 : c < 121 ? c + 2 : c - 24));
    }
}

1

Güç kalkanı

$chars = [int]('a')[0]..[int]('z')[0] | %{ [char]$_, [char]::ToUpper([char]$_) }

$y = $args[0].ToCharArray() | %{
    $idx = $chars.indexOf($_);
    if ($idx -ge 0) {
        $chars[($idx + 4) % 52]
    } else  {
        $_
    } 
}

-join [char[]]$y

Çıktı:

PS C:\Temp> .\z.ps1 "Today is a great day"
Vqfca ku c itgcv fca
PS C:\Temp>

1

PHP

Bu çözüm oldukça sıkıcı:

echo strtr('Today is a great day','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','CDEFGHIJKLMNOPQRSTUVWXYZABcdefghijklmnopqrstuvwxyzab');

1

Python 3

Soruyu tam olarak anlamadığımı düşünüyorum, ama yine de:

alphabet = "abcdefghijklmnopqrstuvwxyz"
rot = alphabet[2:] + alphabet[:2]
rot = rot + rot.upper()
alphabet = alphabet + alphabet.upper()

def encode_letter(letter):
    return rot[alphabet.index(letter)]

def encode_word(word):
    return "".join(encode_letter(letter) for letter in word)

def encode_string(string):
    return " ".join(encode_word(word) for word in string.split())

print("Output: " + encode_string(input("Input: ")))

1

Python 2.x

Zengin özelliklere sahip bir Python çözümü denemesi.

Özellikleri:

  • bir diksiyon kullanımı
  • listeyi dairesel bir şekilde yönetmek, böylece shift=2değiştirilebilir
  • bunu bildiğinizde deşifre etmek için de kullanabilirsiniz shift(sadece eksi kullanın), aynı zamanda çıktınızı test etmenizi sağlar.
  • "değişen kapsamlar" ekleme yeteneği - döngü yaptığınız kapsamlar
  • ya stricttanımsız karakterler için ya da tanımsız girdi karakterini döndürme seçeneği
  • gizli bir dil iz bırakmaz;)

İşte gidiyor:

# Shifting scopes
lower_case = map(chr, range(97, 123))
upper_case = map(chr, range(65, 91))
space = [" "] # space will always be transformed to space

def secret(instring, shift, scopes, strict=False):
    def buildTranslationDict(scores):
        translation_dict = {}
        for scope in scopes: 
            for index in range(len(scope)): 
                translation_dict[scope[index]] = scope[(index+shift) % len(scope)]
        return translation_dict 
    translation_dict = buildTranslationDict(scopes)
    # Use the translation dictionary to transform input
    output = ""        
    for char in instring:
        if strict:
           output += translation_dict[char]   # will crash if unexpected char
        else:
            try:    
               output += translation_dict[char]
            except: 
               output += char
    return output    

Kanıt:

secret(instring="Today is a great day", shift=2, scopes=[lower_case, upper_case, space])
'Vqfca ku c itgcv fca'

Deşifre edebilir misiniz 'Wrpruurz lv qrw edg hlwkhu!':)?


Sadece merak ediyorum, bu ekstra "katı" özelliği "noktaya değil " eklemeyi düşünüyor musunuz?
PascalVKooten

6 satır kod
kaydeder

1
Kendinle mi konuşuyorsun yoksa bir şey mi kaçırıyorum? Silinen yorumları beğendiniz mi?
Timtech

1
Evet, lütfen yorumunuzu da silmeyin ...
PascalVKooten

0

Genişletilmiş BrainFuck

Bu bir popülerlik yarışması olduğu için bunu EBF'nin izlemesi kadar kolay olması amacıyla yazdım. Çok yorumlandı ve program akışını daha gerçek hale getirmek için kasıtlı olarak makroları kullandım.

Muhtemelen buradaki en zor şey ana anahtardır, çünkü EBF'nin bunu yapmak için herhangi bir özel yolu yoktur, bu yüzden gerçekte değişkenler ve dengeleme parantezleri dışında bir kişinin BrainFuck'ta nasıl yapacağından daha basit değildir.

;;;; rot2.ebf : Perform rot2 on ascii text
;;;; Usage: bf ebf.bf < rot2.ebf > rot2.bf
;;;;        echo "Today is a great day" | bf rot2.bf
;;;;        # => Vqfca ku c itgcv fca
;;;;
;;;; BF interpreter/Compiler requirement: 
;;;; Wrapping cells at any size (allmost all of them do)
;;;;


;;; Memory map  
:tmp    ; a temporary cell used for the read routine
:input  ; a copy of the input for output purposes
:switch ; a copy of the input for the switch statements
:flag   ; flag to indicate the predicate has been processed or not

;;; Macros
;; Ultracompatible read
;; supports EOF 0, -1 and no change
{read_tmp 
  $input+ 
  $tmp(-),
  [+[-$input-]] ; blanks for all EOFs
  $switch [
    @input &clear
    $switch
  ]
}

;; for the switch we need
;; to do destructive testing
;; and we need to preserve the
;; original as well. 
{copy_input 
  $tmp(-$input+$switch+)
}

;; clears the cell
{clear (-)}

;; prints current cell
{print .}

;;; Main proram
;;; flow starts here
&read_tmp
while $tmp not eof
(
  &copy_input
  $flag+
  $switch 10-(22-(
    ;; not linefeed/space
    $switch 57-(-(31-(-(
       ;; default: not wrapping
       &clear
       $flag-
       $input 2+))))
    $flag (-
       ;; wrapping
       $input 24-)))
  $flag &clear
  $input &print &clear
  &read_tmp
)
;;; End

0

JavaScript

var STR = "Today is a great day";
//so i can replace chars at a index in the string
String.prototype.replaceAt=function(i, char) {
    var a = this.split("");
    a[i] = char;
    return a.join("");
}

function secretIt( str ){
    for( var i = 0; i < str.length; i++ ) {
        var c = str.charCodeAt( i );
        /**
        * check for spaces first
        * check if get outside of the letter range for both lower and upper
        * if we dont go then were good
        * if so go back 26 chars
        */
        str = str.replaceAt( i, String.fromCharCode( ( c == 32 ) ? c : ( ( c = c + 2 ) > 91 && c < 97 || c < 123 ) ? c : c - 26 ) ) ;
    }
    return str;
}

console.log( secretIt( "Qsncp qcapcr ambc" ), ' ' , secretIt( STR ));



0

C #, 163

Evet, bu kod golfü değil. Yine de en kısa için gittim (ya da en azından ilk bıçaklama yaptım)

using System.Linq;class P{static void Main(string[]a){System.Console.WriteLine(string.Concat(a[0].Select(c=>(char)(c==32?c:c<89?c+2:c<91?c-24:c<121?c+2:c-24))));}}

biçimlendirilmiş:

using System.Linq;
class P
{
    static void Main(string[] a)
    {
        System.Console.WriteLine(string.Concat(a[0].Select(c => (char)(c == 32 ? c : c < 89 ? c + 2 : c < 91 ? c - 24 : c < 121 ? c + 2 : c - 24))));
    }
}

Evet, ufis'in cevabına bir göz attım .


0

C # 5KB

(381 karakter)

391

using System;
namespace WinHelper {
    class P {
        static void Main(string[] args) {
            char[] f =  "abcdefghijklmnopqrstuvwxyz ".ToCharArray();
            char[] g =  "cdefghijklmnopqrstuvwxyzab ".ToCharArray();

            foreach (char c in Console.ReadLine().ToCharArray().ToLower()) 
                Console.Write(g[Array.FindIndex(f, a => a == c)]);
        }
    }
}

Derlenmiş boyut (5KB) önemli değil. İçin kod golf sayısı karakter genellikle (sourcecode ait) sayımları, ama bu özel zorluk olduğu için popülerlik yarışması değil kod golf karakter / size hiç önemli değil. Farenizi popularity contestmeydan okuma altındaki rozetin üzerine getirin (bunu açıklayan bir araç ipucu görürsünüz: " Popülerlik yarışması, en fazla oy kullanan doğru cevabın kazanacağı bir yarışmadırusually the most creative answer ").
RobIII

Ayrıca, Today is a great daybüyük harfleri desteklemediğinden , meydan okumanın örnek girdisinde kilitlenir .
RobIII

0

Bash, 8 karakter

... bsdgames paketinin kurulu olması durumunda! Standart girişten okur.

caesar 2

Misal

echo Today is a great day|caesar 2

Çıktı: Vqfca ku c itgcv fca


0

C

#include <stdio.h>
char c[100];
int main()
{
gets(c);
char *p=c,x;
while(*p)
{
    x=*p;
    if(x>='a'&&x<='z')
    {
        *p=((*p-'a'+2)%(26)+'a');
    }
    if(x>='A'&&x<='Z')
    {
        *p=((*p-'A'+2)%(26)+'A');
    }

    p++;
}
puts(c);
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.