कन्वर्ट जापानी मारियो खिताब अमेरिकी खिताब के लिए


16

सुपर मारियो श्रृंखला में खेलों के लिए नामकरण परंपराएं बहुत अजीब हैं, और क्षेत्रों के बीच मेल नहीं खाती हैं।

| Japanese Name       | American Name                      |
|---------------------|------------------------------------|
| Super Mario Bros.   | Super Mario Bros.                  |
| Super Mario Bros. 2 | Super Mario Bros.: The Lost Levels |
| Super Mario USA     | Super Mario Bros. 2                |
| Super Mario Bros. 3 | Super Mario Bros. 3                |
| Super Mario Bros. 4 | Super Mario World                  |

क्या झंझट है!


चुनौती:

सुपर मारियो गेम के जापानी नाम से युक्त एक स्ट्रिंग को देखते हुए, इसी अमेरिकी नाम का उत्पादन करते हैं। आप किसी भी उचित विधि के माध्यम से जापानी स्ट्रिंग इनपुट कर सकते हैं, और किसी भी उचित विधि के माध्यम से अमेरिकी स्ट्रिंग (एक वैकल्पिक newline के साथ) का उत्पादन कर सकते हैं।

आपको ऊपर दिखाए गए सटीक तारों का उपयोग करना होगा। मानक खामियों की मनाही है!

सबसे छोटा कोड (बाइट्स में) विजेता है।


1
codegolf.meta.stackexchange.com/questions/8047/… फैंसी टेबल से बचने की कोशिश करें ...
रोमन ग्रैफ

1
लेकिन मुझे लगा कि सुपर मारियो ब्रदर्स 2 के लिए जापानी नाम डोकी डोकी पैनिक था। या उन्होंने फिर से जापान में उसी खेल को फिर से जारी किया लेकिन मारियो की खाल के साथ?
शफ़लपैंट्स

@ शफ़लपेंट IIRC, हाँ, उन्होंने इसे "सुपर मारियो यूएसए" के रूप में मारियो की खाल के साथ फिर से रिलीज़ किया।
पोकेचू 22

1
क्या हम मान सकते हैं कि इनपुट सटीक जापानी नाम होना चाहिए?
स्टीववेस्टल

1
@SteveFest हाँ।
जूलियन लाचनीट

जवाबों:


14

सेड, ५२

  • 1 बाइट ने @MikeScott को धन्यवाद दिया

सीधा प्रतिस्थापन:

s/ 2/: The Lost Levels/
s/USA/Bros. 2/
s/B.*4/World/

इसे ऑनलाइन आज़माएं


2
आप अंतिम पंक्ति बनाकर एक चरित्र को बचा सकते हैं s/B.*4/World/
माइक स्कॉट

@MikeScott हाँ - धन्यवाद!
डिजिटल ट्रामा

6

रेटिना, ४३

  • 1 बाइट ने @MikeScott को धन्यवाद दिया

मेरे sed उत्तर का सीधा पोर्ट :

 2
: The Lost Levels
USA
Bros. 2
B.*4
World

इसे ऑनलाइन आज़माएं


सेड संस्करण से मेरा सहेजा गया चरित्र यहाँ भी काम करता है - के B.*4बजाय उपयोग \S* 4
माइक स्कॉट

6

जावास्क्रिप्ट (ईएस 6), 82 81 बाइट्स

s=>s.replace(/ 2|o.*4|USA/,(_,i)=>['Bros. 2',': The Lost Levels','o World'][i&3])

इसे ऑनलाइन आज़माएं!

कैसे?

मैं

Pattern | Found in              | Position in string | Position MOD 4 | Replaced with
--------+-----------------------+--------------------+----------------+--------------------
/ 2/    | "Super Mario Bros. 2" |                 17 |              1 | ": The Lost Levels"
/o.*4/  | "Super Mario Bros. 4" |                 10 |              2 | "o World"
/USA/   | "Super Mario USA"     |                 12 |              0 | "Bros. 2"

2
अब वह चतुर है।
darrylyeo


3

जावास्क्रिप्ट (ईएस 6), 84 बाइट्स

s=>s[r='replace'](' 2',': The Lost Levels')[r]('USA',(b='Bros. ')+2)[r](b+4,'World')


2
[r='replace']चाल के लिए +1 ।
अर्जुन

मैं जेएस को ज्यादा नहीं जानता ... कैसे []एक फ़ंक्शन के रूप में कार्य का उपयोग करता है
पूरी तरह से

3
@totallyhuman 1) JS ऑब्जेक्ट प्रॉपर्टीज को इन दो सिंटैक्स के साथ एक्सेस किया जा सकता है: object.propertyया object['property']। 2) एक वस्तु का एक तरीका एक संपत्ति है जिसे एक फ़ंक्शन सौंपा गया है। 3) हुड के तहत, जेएस संक्षिप्त रूप से एक आदिम प्रकार को एक वस्तु में एक स्ट्रिंग के रूप में बदल देता है जब एक संपत्ति पहुंच सिंटैक्स का उपयोग किया जाता है। निष्कर्ष: उपरोक्त सभी को मिलाकर, हम समझ सकते हैं कि s['replace']()वास्तव में टिन पर यह क्यों कहता है।
अरनुलद


2

जाप , 48 बाइट्स

d" 2"`: T” Lo¡ Levels`"USA"`Bžs. 2``Bžs. 4``WŽld

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

 d" 2"`: T” Lo¡ Levels`"USA"`Bžs. 2``Bžs. 4``WŽld

U                                //  Implicit U = Input
 d                               //  Replace:
   " 2"                          //    " 2" with
       `...`                     //    ": The Lost Levels" decompressed,
            "USA"                //    "USA" with
                 '...'           //    "Bros. 2" decompressed,
                      '...'      //    "Bros. 4" decompressed with
                           '...' //    "World" decompressed

जाप स्ट्रिंग संपीड़न के लिए शुको लाइब्रेरी का उपयोग करता है । बैकटिक्स का उपयोग स्ट्रिंग्स को डिकम्प्रेस करने के लिए किया जाता है।



1

जेली ,  44  43 बाइट्स

⁹
HḂ+2⁹Ḳ¤ḣK;⁸ị“¥ḄḞ“ḋṗYP8ḷẇ?Ṅ“¡Ạ ṙṗ%»¤
0ịVĊŀ

एक पूर्ण कार्यक्रम जो परिणाम प्रिंट करता है।

इसे ऑनलाइन आज़माएं!

कैसे?

⁹ - Link 1: yield right argument: number a, list of characters b
⁹ - link's right argument, b

HḂ+2⁹Ḳ¤ḣK;⁸ị“¥ḄḞ“ḋṗYP8ḷẇ?Ṅ“¡Ạ ṙṗ%»¤ - Link 0: change a name: number a, list of characters b
                   ...Note: at this point a will be 0, 2 or 4 for USA, 2 and 4 respectively
H                                   - halve a (0,1, or 2)
 Ḃ                                  - mod 2   (0,1, or 0)
  +2                                - add 2   (2,3, or 2)
      ¤                             - nilad followed by link(s) as a nilad:
    ⁹                               -   link's right argument, b
     Ḳ                              -   split at spaces
       ḣ                            - head (first two for USA or 4, first three for 2)
        K                           - join with spaces
                                  ¤ - nilad followed by link(s) as a nilad:
          ⁸                         -   link's left argument a
            “¥ḄḞ“ḋṗYP8ḷẇ?Ṅ“¡Ạ ṙṗ%»  -   list of dictionary/string compresions:
                                    -     [" World",": The Lost Levels"," Bros. 2"]
           ị                        - index into (1-based & modular; respectively [4,2,0])

0ịVĊŀ - Main link: list of characters, J
0ị    - index 0 into J - gets the last character '.', '2', 'A', '3', or '4'
  V   - evaluate as Jelly code - the evaluations are:
      -     "Super Mario Bros." :  . - literal 0.5
      -   "Super Mario Bros. 2" :  2 - literal 2
      -       "Super Mario USA" :  A - absolute value (default argument is 0) = 0
      -   "Super Mario Bros. 3" :  3 - literal 3
      -   "Super Mario Bros. 4" :  4 - literal 4
   Ċ  - ceiling - changes a 0.5 to 1 and leaves others as they were
    ŀ - call link at that index as a dyad (left = the evaluation, right = J)
      -   this is one based and modular so 1 & 3 go to Link 1, while 0, 2 & 4 go to Link 0.

3
"क्रॉस-आउट 44 सामान्य 44 है" के लिए अच्छा समाधान है।
wizzwizz4

1

मैथेमेटिका, 80 बाइट्स

#~StringReplace~{" 2"->": The Lost Levels","USA"->"Bros. 2","Bros. 4"->"World"}&

अनाम फ़ंक्शन। एक स्ट्रिंग को इनपुट के रूप में लेता है और एक स्ट्रिंग को आउटपुट के रूप में देता है।


1

पायथन 3: 111 बाइट्स

from re import sub as r
print(r(" USA","Bros. 2",r(" 2",": The Lost Levels",r("Bros. 4","World",input()))))

उपयोगकर्ता इनपुट हो जाता है, regex- आधारित प्रतिस्थापन की एक श्रृंखला चलाता है, और परिणाम प्रिंट करता है।


साइट पर आपका स्वागत है! मुझे लगता है कि यह छोटा है अगर आप इसके from re import*बजाय करते हैं from re import sub as r। फिर दूसरी पंक्ति बन जाएगी:print(sub(" USA","Bros. 2",sub(" 2",": The Lost Levels",sub("Bros. 4","World",input()))))
DJMcMayhem

अहा, उत्कृष्ट। धन्यवाद!
स्ट्रूआन डंकन-विल्सन

0

जाओ , 134 बाइट्स

import."strings"
func f(s string)string{r:=Replace;return r(r(r(s," 2",": The Lost Levels",1),"USA","Bros. 2",1),"Bros. 4","World",1)}

इसे ऑनलाइन आज़माएं!

चूंकि गो तर्कों के लिए डिफ़ॉल्ट मानों का समर्थन नहीं करता है, इसलिए आपको 1हर बार मैन्युअल रूप से पास करना होगा ।


0

बैच, 237 99 बाइट्स

मान लिया गया कि इनपुट प्रश्न में सटीक प्रारूप में है

@set s=%*
@set s=%s: 2=: The Lost Levels%
@set s=%s:USA=Bros. 2%
@set s=%s:Bros. 4=World%
@echo %s%

0

पास्कल (एफपीसी) , 184 182 बाइट्स

const s='Super Mario ';b='Bros.';m=s+b;var t:string;z:array[0..4]of string=(m+' 2',m+' 3',m,s+'World',m+': The Lost Levels');begin read(t);write(z[(length(t)+ord(t[19])*2)mod 5])end.

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

zवह सरणी है जो 5 संभावित आउटपुट रखती है, हमें बस इसे इंडेक्स करने का तरीका खोजने की आवश्यकता है। मैंने 2 मापदंडों पर ध्यान दिया, जिनका उपयोग इनपुट को अलग करने के लिए किया जा सकता है। पहला भाग इनपुट की लंबाई है:

Super Mario Bros.   -> 17
Super Mario Bros. 2 -> 19
Super Mario USA     -> 15
Super Mario Bros. 3 -> 19
Super Mario Bros. 4 -> 19

केवल 3 इनपुट्स की लंबाई समान है। 5. दूसरा भाग यह है कि इनपुट्स में स्थिति 19 पर है 2,3 और4 इसमें लगातार कोड पॉइंट हैं, इसलिए इनका उपयोग आसानी से बाकी इंडेक्सों को भरने के लिए किया जा सकता है जबकि शेष 2 इनपुट हैं कम।

Stringकरने के लिए प्रकार चूक ShortStringऔर डिफ़ॉल्ट रूप से, 255 अक्षरों के लिए क्षमता, सभी शून्यों के साथ प्रारंभ किया है तो यह उपयोग करने के लिए सुरक्षित है t[19]सभी स्ट्रिंग्स पर और उसके कोडपॉइंट छोटे तार के लिए 0 है, अनुक्रमण के लिए कुछ भी नहीं बदल रहा है, इसलिए छोटे 'तार अनुक्रमित 0 कर रहे हैं और 2. इसलिए, हमें अनुक्रमित 1, 3 और 4 की आवश्यकता है 2, 3और 4

  | Codepoint |  *2 | +19 | mod 5
2 |        50 | 100 | 119 | 4
3 |        51 | 102 | 121 | 1
4 |        52 | 104 | 123 | 3

0

05AB1E , 37 बाइट्स

l„ 2“:€€‹×Œä“:'„À"bros. 2"©:®Y4:'‚ï:™

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें।

स्पष्टीकरण:

l                  # Convert the input to lowercase
 „ 2         :     # Replace " 2" with:
    “:€€‹×Œä“      #  ": the lost levels"
 '„À          :    # Then replace "usa" with:
    "bros. 2"      #  "bros. 2"
             ©     # And store the string "bros. 2" in the register
 ®                 # Retrieve "bros. 2" from the register,
  Y4:              # and replace its "2" with "4"
        :          # Then replace "bros. 4" with:
     '‚ï           #  "world"
™                  # Convert the result to title-case (and output implicitly)

क्यों अधिक जानकारी के लिए इस देखें “:€€‹×Œä“है ": the lower levels"; '„Àहै "usa"; और '‚ïहै "world"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.