গোপন ভাষায় রূপান্তর করা


9

কোনও ভাষাতে এমন কিছু কোড লিখুন যা "আজকের দিনটি দুর্দান্ত একটি দিন" (নোট করুন যে কোনও বিরামচিহ্ন নেই) এবং এটিকে "গোপন ভাষা" তে রূপান্তর করে। "সিক্রেট ল্যাঙ্গুয়েজ" এর বিধি এখানে।

  • a = c, b = d, c = e এবং আরও (y = a এবং z = b)
  • প্রতিটি শব্দ একটি স্পেস দ্বারা পৃথক করুন
  • যথাযথ মূলধন আছে তা নিশ্চিত করুন

উদাহরণ:

Input: "Today is a great day"

Output: "Vqfca ku c itgcv fca"

এটি একটি জনপ্রিয়তা-প্রতিযোগিতা। অন্যান্য ব্যবহারকারীদের সবচেয়ে বেশি "পয়েন্ট" এখনও "অনন্য" কোডটির সন্ধান করে পয়েন্ট দেওয়া উচিত should

চ্যালেঞ্জ: আমি অসাধারণ প্রোগ্রামিং ভাষার আপ খুঁজছেন ছিল এবং আমি নামক একটি ভাষা পাওয়া Piet ( esolang )। আমি এই ভাষায় যে কেউ লিখতে চ্যালেঞ্জ।


তা কি হওয়া উচিত নয় x=z, y=a, z=b?
r3mainer

আপনি ঠিক "duh" :)
Vik পি

3
আমি যতক্ষণ না আমি উপলব্ধি বিশৃঙ্খলা শুরু হয়ে গিয়েছিল a=cহয় a -> c
জাস্টিন

6
অন্য কথায়, এটি ROT2
টোবিয়াস কেইনজলার

2
রট 13 এবং রোট 2 উভয়ই বিভিন্ন কী (13 এবং 2) সহ সিজার সাইফার
সিলেস্টার

উত্তর:


18

স্মলটালক (স্মার্টটাক / এক্স), 29 27 টি অক্ষর

আমি ভাগ্যবান - এটি ইতিমধ্যে স্ট্রিং ক্লাসে রয়েছে:

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

আই / ও যুক্ত করা, এটি এটি করে:

(Stdin nextLine rot:2)print

নীচে ডোরকনব-এর উদাসীন উদাহরণের চেতনায়, কীভাবে:

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

2
আমি কখনও ভাবিনি যে আমি একটি ছোট্টালক সমাধান দেখতে পাবো!
টুথব্রাশ

13

রুবি, অস্পষ্ট সংস্করণ (মন্তব্য সহ অন্তর্ভুক্ত!)

আমি পুরো জিনিসটি পড়ার পরামর্শ দিচ্ছি; আমি এটি বেশ মজাদার মনে করি;)

$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

এটি কীভাবে কাজ করে সে সম্পর্কে ইঙ্গিতগুলি (ছদ্মবেশী, দেখানোর জন্য হোভার):

এই কোডটি একটি স্ট্রিং তৈরি করে এবং তারপরে এটি মূল্যায়ন করে।

এটি const_missingঅক্ষর দ্বারা স্ট্রিং চরিত্রটি তৈরি করতে ব্যবহার করে।

স্ট্রিংটি এটি বিল্ডিংয়ের শেষ হয় gets.tr'A-Za-z','C-ZABc-zab'


ভাষ্যটি এই প্রশ্নের কয়েকটি আড্ডার

13

পুনশ্চ

সদর দপ্তরের প্রয়োজন, এখন থেকে সমস্ত এজেন্ট কেবল মুদ্রিত আকারে যোগাযোগ করবে (বিশেষত শীর্ষ সিক্রেট ফন্ট ব্যবহার করে বৈদ্যুতিন চ্যানেলগুলি খুব বিশ্বাসযোগ্য নয়)। শীর্ষস্থানীয় গোপনীয় পদ্ধতিটি আমাদের মুদ্রণ সফ্টওয়্যার প্রচারের অন্তর্ভুক্ত করা আপনার দায়িত্ব:

/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

এবং কেবলমাত্র সেই ফন্টই অনুমোদিত, যেমন:

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

এবং এটি এটি প্রিন্ট করে: এখানে চিত্র বর্ণনা লিখুন


11

সজোরে আঘাত

ক্লাসিক।

tr A-Za-z C-ZABc-zab

উদাহরণ:

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

আমার মনে হয় আপনার উদ্ধৃতিগুলির দরকার নেই।
মেরিনাস

@ মারিনাস আপনি ঠিক বলেছেন, আমি এটি পরিবর্তন করব।
ডানিরো

5

ডিএফএসএআরটি (আইবিএম মেনফ্রেম বাছাই প্রোগ্রাম)

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

কোনও SORT নিয়ন্ত্রণ বিবৃতি কলামের প্রথমটিতে আরম্ভ করা যাবে না।

উপরেরগুলি এটির নিজের কাজ করার জন্য, আপনাকে চূড়ান্ত দুটি অক্ষরের চারপাশে upperর্ধ্ব এবং নিম্ন-অক্ষরের অক্ষরের জন্য সমস্ত মান অফসেট করতে, ডিফল্ট ইনস্টলেশন বিকল্প অনুবাদ টেবিলটি পরিবর্তন করতে হবে।

ডিফল্ট টেবিলটি পরিবর্তন না করে, এটির জন্য একটি ALTSEQ বিবৃতি প্রয়োজন যা সমস্ত প্রয়োজনীয় জোড়ের হেক্স মানগুলির তালিকা তৈরি করে (হেক্স-কোড থেকে তত্ক্ষণাত্-টেক্স-হেক্স-কোড, প্রতিটি জোড় কমা দ্বারা পৃথক করা):

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

সুতরাং উচ্চ-কেস EBCDIC এ থেকে সি এবং বি থেকে ডি পেতে:

ALTSEQ CODE = (C1C3, C2C4)

পুরো জিনিসটির জন্য, এটি অবশ্যই অনেকগুলি ত্রুটি-প্রবণ টাইপিং অবশ্যই থাকবে, সুতরাং আপনি এই ধাপের জন্য নিয়ন্ত্রণ কার্ডগুলি তৈরি করতে অন্য SORT পদক্ষেপটি ব্যবহার করতে চান এবং এই নতুন পদক্ষেপের দ্বারা তৈরি ডেটাसेट থেকে SORT এগুলি পড়তে দিন।

অবশ্যই, "অনুবাদ টেবিল" সমর্থন করে এমন কোনও ভাষার জন্য এটি অনুবাদ টেবিল পরিবর্তন করার মতোই সহজ। একটি নির্দিষ্ট কোডপেজ সহ চমৎকার কোবোল প্রোগ্রাম, এবং এটি সিওবিএল পদ্ধতি কোডের এক লাইনে করা যেতে পারে (প্লাস সিওবিওএল এর বাধ্যতামূলক রেখাগুলি যা সমস্ত কিছু নিয়ে যায় ... এই বিশেষ ক্ষেত্রে এতটা নয়)।

ওহ, 1,80 টি "কার্ড চিত্র" যা এতে পাঠ্য থাকবে। সম্ভবত সমস্ত প্রথম রান উপরের ক্ষেত্রে ...


+1 টি। ROT2 এর জন্য DFSORT ব্যবহার করা সত্যিই অনন্য।
অভিজিৎ

3

সি, 75 বাইট

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

উদাহরণ:

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

~(c=getchar())
ইওএফটি

এবং যেহেতু প্রশ্নটি বলে যে কোনও বিরামচিহ্ন নেই কেবলমাত্র অ-বর্ণানুক্রমিক চরিত্রটি স্থান, তাই আপনি এর c-32পরিবর্তে এটি পরীক্ষা করতে পারেন , যা আপনাকে 6 টি অক্ষর সাশ্রয় করে
ব্যবহারকারী 12205

এটি একটি জনপ্রিয়তা প্রতিযোগিতা এবং কোড-গল্ফ নয়
এমএমএইচএম

কোড গল্ফ এখন জনপ্রিয়তার বিরোধী?
ধ্বংস

@ ইউজার 689 আপনি ঠিক বলেছেন, দুঃখিত আমি প্রশ্নটি মনোযোগ দিয়ে পড়িনি। যেহেতু এই কোডটি একক লাইনে টেরিনারি অপারেটর এবং না দিয়ে লেখা হয়েছে intএবং এমনকি একটি চর গণনাও সরবরাহ করা হয়েছে, তাই আমি একরকম ধরে নিয়েছিলাম যে এটি কোড গল্ফ ছিল। দুঃখিত।
ব্যবহারকারী 12205

3

পাইথন

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

আউটপুট:

rfc ucyrfcp gq tcpw lgac rmbyw


(1) ঠিক +3, তাই না? (২) এটিকে আরও জটিল করার জন্য আপনি প্রচুর স্টাফ ইনলাইন করতে পারেন। (এটি এখানে একটি প্রবণতা বলে মনে হচ্ছে)
সাইমন কুয়াং

b = a[2:] + a[:2]কম টাইপো-প্রবণ হবে, এবং সেখানে স্ট্রিং রূপান্তর করার কোন প্রয়োজন হবে বলে মনে হয় aএকটি থেকেlist
Tobias Kienzler

উহু! অতঃপর c = dict(zip(a,b)) । এবং এটি exceptএত জেনেরিক হওয়া উচিত নয়, একটি ব্যবহার করুনexcept KeyError
টোবিয়াস কেইনজলার

strসংক্ষেপণ অতি ধীর। একটি তৈরি করুন listএবং তাদের সাথে যোগ দিন আরও ভাল হবে।
ইগেল

3

জাভাস্ক্রিপ্ট

// 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

পিএইচপি

সংক্ষিপ্ততম যদিও না!

সরাসরি উদাহরণ: 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);

বিঃদ্রঃ:

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

3

টিআই-বেসিক (টিআই -৩ graph গ্রাফিং ক্যালকুলেটরগুলিতে চলিত ভাষা)

: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  

এটি কিছু দুর্দান্ত এনক্রিপশন সফ্টওয়্যার (একটি টিআই -83 এর জন্য)। টিআই -৩৩ দ্বারা আমি টিআই -৩৩ বা টিআই -৪৪ পরিবারের কোনও ক্যালকুলেটরকে বোঝাব। "->" এর অর্থ "STO>" দ্বারা অ্যাক্সেস করা "স্টোর"


3

চুনি 40 32

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

আপডেট (ড্যানেরোস ব্যাশ সমাধান থেকে দেখা হিসাবে):

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

3

জাভা, এটি আসলে বোধগম্য।

আমি জানি যে শ্বেতস্পেস এবং বন্ধনীগুলির যে কোনও কিছুতে সিজি-তে খুব কঠিন সময় আছে তবে এখানে একটি শট রয়েছে।

    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(" ");
    }
    }
}

কোড অবলম্বনের জন্য পৃথক প্রতিযোগিতা রয়েছে, তবে আমি আমারকে হাস্যকরও করতে পারি।

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

জাভাস্ক্রিপ্ট

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);

সব মন্তব্যে কী, আমার হামস্টার এটি বুঝতে পারে।


2

আমি মনে করি আমি এটি ROT2 করব!

জাভাস্ক্রিপ্ট

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'));

আমি প্রথমে এরকম কিছু নিয়ে ভাবলাম, তবে আমি কখনই ভাবিনি [A-z]!
টুথব্রাশ

2

Haskell,

এখানে একটি লেন্স ভিত্তিক বাস্তবায়ন। আমি Isoগোপন ভাষায় রুপান্তরিত নিয়মিত পাঠ্য এবং পাঠের মধ্যে আইসোমর্ফিজম উপস্থাপন করতে ব্যবহার করছি । আপনি --fromবিকল্পটি সরবরাহ না করা হলে ইনপুটটি গোপন ভাষায় রূপান্তরিত হয়। তাহলে --fromবিকল্প প্রদান করা হয়, বিপরীত রূপান্তর সঞ্চালিত হয়।

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)

উদাহরণ:

$ ./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

সি

    #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;
 }

চরগুলিতে মডুলু গাণিতিক ব্যবহার করে আপনি প্রচুর কোড সংরক্ষণ করতে পারেন ...
ব্লেবলা999

@ blabla999 এটি একটি জনপ্রিয়তা প্রতিযোগিতা এবং কোড-গল্ফ নয়
এমএইচএমডি

1
দুঃখিত - আপত্তি না বোঝানো। আমি তা উপেক্ষা করেছি।
blabla999

1

একমাস্ক্রিপ্ট 6:

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

ECMAScript, আমার devolved ওল 'শত্রু
Cilan

1

জাভা

32হয় spaceতাই আমরা প্রিন্ট আউট হিসাবে
88হয় Xতাই কিছু কম 892 অক্ষর আপ প্যাচসমূহ
90হয় Zতাই কিছু কম 91(কম কিছু দিয়ে 24 টি অক্ষর নিচে প্যাচসমূহ 89ইতিমধ্যে তাই শুধুমাত্র ঘাঁটা 89এবং 90কার্যকরভাবে)
ছোট হাতের অক্ষর একই প্রক্রিয়া পুনরাবৃত্তি করুন, ছোটো থেকে 97যেমন aকরা 122হিসাবে 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

শক্তির উৎস

$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

আউটপুট:

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


1

পাইথন ঘ

আমি মনে করি আমি প্রশ্নটি বেশ বুঝতে পারিনি, তবে যাইহোক:

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

পাইথন 2.x

পাইথন সমৃদ্ধ বৈশিষ্ট্যযুক্ত একটি বৈশিষ্ট্য।

বৈশিষ্ট্য:

  • একটি ডিক ব্যবহার
  • একটি বিজ্ঞপ্তি উপায়ে তালিকা পরিচালনা, যাতে shift=2বৈচিত্র্যময় হতে পারে
  • যখন আপনি জানেন shift(আপনি কেবল বিয়োগ ব্যবহার করুন) তখন আপনি এটি ডিক্রিফারে ব্যবহার করতে পারেন , এটি আপনাকে আপনার আউটপুট পরীক্ষা করার অনুমতি দেয়।
  • "শিফটিং স্কোপস" যুক্ত করার ক্ষমতা - এমন স্কোপগুলি যেখানে আপনি চক্রটি চালান
  • হয় strictঅপরিজ্ঞাত অক্ষরগুলির জন্য বিকল্প , বা কেবল অপরিজ্ঞাত ইনপুট অক্ষরটি ফিরিয়ে আনুন।
  • একটি গোপন ভাষার কোনও চিহ্ন নেই;)

এখানে যায়:

# 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    

প্রমাণ:

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

তুমি কি ডিক্রিফার করতে পারবে 'Wrpruurz lv qrw edg hlwkhu!':)?


শুধু কৌতূহলী, আপনি কি এই অতিরিক্ত "কঠোর" বৈশিষ্ট্যটি "বিন্দুতে নয়" যুক্ত করার বিষয়টি বিবেচনা করছেন ?
পাসক্যালভিকুটেন

এটি কোডের 6 টি লাইন সাশ্রয় করবে ...
পাস্কালভিকুটেন

1
আপনি নিজের সাথে কথা বলছেন বা আমি কিছু মিস করছি? মুছে ফেলা মন্তব্য পছন্দ?
টিমটেক

1
হ্যাঁ মুছে ফেলা হয়েছে, দয়া করে আপনার মন্তব্যটিও মুছবেন না ...
পাস্কালভিকুটেন

0

বর্ধিত ব্রেইনফাক

যেহেতু এটি একটি জনপ্রিয়তা প্রতিযোগিতা, আমি ইবিএফ হিসাবে অনুসরণ করা যেমন সহজ তত সহজে উদ্দেশ্য নিয়েই এটি লিখেছি। এটি ভারী মন্তব্য করেছে এবং আমি প্রোগ্রামটি প্রবাহকে আরও আক্ষরিক করতে ইচ্ছাকৃতভাবে ম্যাক্রোগুলি ব্যবহার করেছি।

সম্ভবত এখানে সবচেয়ে মুশকিল বিষয় হ'ল মূল স্যুইচ যেহেতু ইবিএফের এটি করার কোনও বিশেষ উপায় নেই তাই বাস্তবে ভেরিয়েবল এবং ব্যালান্সিং বন্ধনী ব্যতীত কেউ ব্রেইনফাকে কীভাবে এটি করবে তার চেয়ে সহজ কোনও বিষয় নয়।

;;;; 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

জাভাস্ক্রিপ্ট

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

জাভা

void sl(String s){
    for (char c: s.toCharArray()){
        char l = Character.toLowerCase(c);
        System.out.print((char)(c + (l < 'y'? l < 'a'? 0: 2: -24)));
    }
}

আমি বলব এটি এই উত্তরের সাথে খুব মিল: কোডগল্ফ.স্ট্যাকেক্সেঞ্জাও.এ
ইউজার 12205

... এবং আমি আপনার সাথে একমত হব: পি
রডরিগপ্যাক

0

সি #, 163

হ্যাঁ, এটি কোড-গল্ফ নয়। আমি যাইহোক যাইহোক সংক্ষিপ্ততম জন্য গিয়েছিলাম (বা কমপক্ষে এটিতে প্রথমে ছুরিকাঘাত করা)

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))));}}

বিন্যাসকৃত:

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))));
    }
}

হ্যাঁ, আমি ইউফিসের উত্তরটি দেখেছিলাম


0

সি # 5 কেবি

(381 অক্ষর)

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)]);
        }
    }
}

সংকলিত আকার (5KB) কোনও ব্যাপার নয়। জন্য কোড-গলফ সংখ্যা অক্ষর (sourcecode এর) সাধারণত সংখ্যা, কিন্তু যেহেতু এই বিশেষ চ্যালেঞ্জ একটি হল জনপ্রিয়তা প্রতিযোগিতা এবং কোড-গলফ অক্ষর / সাইজ সমস্ত এ কোন ব্যাপার না। popularity contestচ্যালেঞ্জের নীচে ব্যাজটি ধরে আপনার মাউসটিকে ঘুরেusually the most creative answer দেখুন (আপনি এটি ব্যাখ্যা করার একটি সরঞ্জামদণ্ড দেখতে পাবেন: " একটি জনপ্রিয়তা-প্রতিযোগিতা এমন একটি প্রতিযোগিতা যেখানে সর্বাধিক উন্নত ব্যক্তিদের সঠিক উত্তর জিততে পারে ")।
রবিআইআইআই

এছাড়াও, এটি চ্যালেঞ্জের উদাহরণ ইনপুটকে ক্র্যাশ করে Today is a great dayযেহেতু এটি বড় হাতের অক্ষরকে সমর্থন করে না।
রবিআইআইআই

0

বাশ, 8 টি অক্ষর

... আপনি যদি বিএসডিগেমস প্যাকেজটি ইনস্টল করে থাকেন! স্ট্যান্ডার্ড ইনপুট থেকে পড়া।

caesar 2

উদাহরণ

echo Today is a great day|caesar 2

আউটপুট: Vqfca ku c itgcv fca


0

সি

#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);
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.