হাটটি বিড়ালের মধ্যে রাখুন


15

আসন্ন শীতকালীন বাশ ইভেন্ট দ্বারা অনুপ্রাণিত

Objetive

একটি টুপি যোগ করুন ^, ´অথবা `ইনপুটের প্রতিটি শব্দ একটি একক স্বরবর্ণ করতে।

বিধি

  • hatএবং vowelএলোমেলোভাবে নির্বাচিত করতে হবে। প্রতিটি টুপি একই সম্ভাবনা (33%) দিয়ে হাজির হতে হবে এবং শব্দের মধ্যে স্বরগুলির যথাযথ স্বরগুলির মধ্যে একই সম্ভাবনা থাকতে হবে (যদি শব্দটির 2 টি বৈধ স্বর থাকে তবে অবশ্যই প্রতিটি চয়ন করার সম্ভাবনা 50%) - বা নিকটতম আপনার ভাষা আছে।
  • কেবল AEIOUaeiouস্বর হিসাবে বিবেচিত হয় (দুঃখিত y)
  • ইনপুটটিতে টুপিযুক্ত স্বরগুলি বিধিগুলিতে হস্তক্ষেপ করবেন না (আপনি এটিকে ব্যঞ্জন হিসাবে বিবেচনা করতে পারেন)
  • যদি ইনপুটটির স্বর থাকে না তবে এটি সংশোধিত হবে না
  • মূলধন সংরক্ষণ করতে হবে।

উদাহরণ

winter> wintér
bash> bâsh
rhythm> rhythm
rng ftw> rng ftw
cat in the hat> cât ìn thê hát
dès> dès
tschüss> tschüss
principî>prìncipî
PROGRAMMING PUZZLES & code golf >PROGRÂMMING PÚZZLES & codé gòlf

জয়লাভ

এটি তাই সংক্ষিপ্ততম কোড জিততে পারে


"এলোমেলোভাবে (বা আপনার ভাষাতে নিকটতমতম)" তাই যদি আমার ভাষার কোনও র্যান্ডম কমান্ড না থাকে তবে আমি কেবল নির্বিচার কিছু করতে পারি ???
16:55

@ লুইস মেন্ডো আরও ভাল?
রড

@ ফ্যাটালাইজ কি get the current timeএলোমেলো নয়?
রড

@ রড আমার মনে কোনও ভাষা নেই। আমি কেবল বলছি যে আপনাকে চাপিয়ে দিতে হবে যে এটি এলোমেলো (এবং কী ধরণের এলোমেলো) অন্যথায় এটি মোটেই বোঝা যায় না।
23

চশমাগুলি বলে যে আমাদের ^ ´ বা ব্যাকটিক যুক্ত করতে হবে, তবে উদাহরণস্বরূপ tschuss একটি umlaut দেখায়। আমলাউটের দরকার আছে কি না?
স্তর নদী সেন্ট

উত্তর:


1

পার্ল 6 , 101 বাইট

~*.words.map: {(my$p=m:ex:i/<[aeiou]>/».to.pick)~~Mu:D??~S/.**{$p}<(/{("\x300".."\x302").pick}/!!$_}

চেষ্টা করে দেখুন

সম্প্রসারিত:

~      # stringify (join with spaces)
*\     # Whatever lambda (input parameter)
.words # split into words

.map:  # for each word

{ # bare block lambda with implicit parameter 「$_」
  (

    my $p =

    m
    :exhaustive               # all possible matches
    :ignorecase
    /<[aeiou]>/\              # match a vowel

    ».to.pick                 # pick one of the positions

  ) ~~ Mu:D                   # is it defined ( shorter than 「.defined」 )

  ??                          # if 「$p」 is defined

    ~                         # stringify

    S/
      . ** {$p}               # match 「$p」 positions

      <(                      # ignore them
    /{
      ("\x300".."\x302").pick # pick one of the "hats" to add
    }/


  !!                          # if 「$p」 is not defined    
    $_                        # return the word unchanged
}

2

সি #, 273 267 বাইট

using System.Linq;A=s=>{var r=new System.Random();var a=s.Split(' ');return string.Join(" ",a.Select(w=>w.Select((c,i)=>"AEIOUaeiou".Any(d=>c==d)?i:-1).Where(x=>x>=0).ToList()).Select((l,i)=>l.Any()?a[i].Insert(l[r.Next(l.Count)]+1,""+(char)r.Next(768,771)):a[i]));};

repl.it ডেমো

আমি সত্যিই অনুভব করছি যে আমি প্রতারণা করছি, যেহেতু আমি ইতিমধ্যে অক্ষরের সংমিশ্রণে তৈরি স্বরযুক্ত স্বরগুলিতে টুপি যুক্ত করি । যদি তা গ্রহণযোগ্য না হয় তবে আমাকে জানিয়ে দিন যাতে আমি বয়লারপ্লেট কোডগুলি যুক্ত করতে পারি এই উত্তরটি প্রতিদ্বন্দ্বিতামূলক ঘোষণা করে।

প্রতিটি জিনিস ইনপুট শব্দের (যদি থাকে তবে) এর এলোমেলো স্বর পরে এই জিনিসটি ইউ +0300 বা ইউ + 0301 বা ইউ + 0302 এর মধ্যে একটি এলোমেলো অক্ষর যুক্ত করে ।

অবহেলিত (কেবল ল্যাম্বডা দেহ)

var r=new System.Random();
// Split sentence to array of words
var a=s.Split(' ');
// Join the (hat-ed) words back to sentence
return string.Join(
    " ",
    // Select an IEnum of list of integers indicating the positions of vowels
    a.Select(w=>
        w.Select((c,i)=>
            // If it's vowel, return position (>=0), else return -1
            "AEIOUaeiou".Any(d=>c==d)?i:-1
        // Filter vowels only
        ).Where(x=>x>=0)
        .ToList()
    // Convert each list of integers to hat-ed words
    ).Select((l,i)=>
        l.Any()
            // Insert "something" into the word...
            ?a[i].Insert(
                // ...at the position after a random vowel in that word...
                l[r.Next(l.Count)]+1,
                // "something" is a random integer in [0x0300, 0x0303), then casted to UTF16 i.e. [U+0300, U+0302]
                ""+(char)r.Next(768,771))
            // List is empty => just return original word
            :a[i]));

1

গণিত, 226 বাইট

Join@@((p=Position[w=#,Alternatives@@(v=Characters@"aeiouAEIOU")];If[p!={},i=#&@@RandomChoice@p;w[[i]]=FromCharacterCode[ToCharacterCode["àèìòùÀÈÌÒÙ"][[#&@@Position[v,w[[i]]]]]+RandomInteger@2]];w)&/@Split[#,{##}~FreeQ~" "&])&

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

 1  v = Characters["aeiouAEIOU"];
 2  a = ToCharacterCode["àèìòùÀÈÌÒÙ"];
 3  Join @@ (
 4    (p = Position[w = #, Alternatives @@ v]; 
 5      If[p != {},
 6        i = First[RandomChoice[p]]; 
 7        w[[i]] =
 8          FromCharacterCode[
 9            a[[ First[ Position[ v, w[[i]] ] ] ]] + RandomInteger[2]
10          ]
11        ]; w
12    ) &
13  ) /@ Split[#1, FreeQ[{##1}, " "] &] &

লাইন 13 সমস্ত ফাঁকে শব্দগুলিতে (অক্ষরের সাবলিস্টগুলি) ইনপুট বিভক্ত করে; প্রতিটি শব্দ 4-12 রেখার দ্বারা সংজ্ঞায়িত ফাংশন দ্বারা চালিত হয় এবং ফলাফলগুলি লাইন 3 দ্বারা একক তালিকায় আবার একত্রিত হয়।

লাইন 4 pসূচকগুলির তালিকায় সেট করে যা নির্দেশ করে যে শব্দের কোন অক্ষর wস্বর হয়। যদি কোনও স্বর (লাইন 5) থাকে তবে আমরা এ জাতীয় একটি সূচকের এলোমেলো পছন্দ করিi (লাইন 6) এবং তারপরে শব্দের সেই একক অক্ষরটিকে একটি নতুন অক্ষরে পুনরায় সেট করি (লাইন 7-10)। অবশেষে আমরা শব্দটি আউটপুট করি (সম্ভবত পরিবর্তিত)w

নতুন চরিত্রটি নির্বাচন করতে, আমরা স্বরটি প্রতিস্থাপন করতে হবে যেখানে স্ট্রিংয়ে বসে এবং vসংশ্লিষ্ট বর্ণচিহ্ন কোডটি চয়ন করি a। তবে এলোমেলোভাবে তিনটি টুপি নির্বাচন করতে, আমরা সেই কোডটি গ্রহণ করি এবং একটি অক্ষরে ফিরে রূপান্তরিত করার আগে 0 এবং 2 (লাইন 9) এর মধ্যে একটি র্যান্ডম পূর্ণসংখ্যা যুক্ত করি। (ভাগ্যক্রমে প্রহরিত স্বরগুলি সমস্ত ইউটিএফ -8 অক্ষর কোডের ধারাবাহিক ত্রৈমাসিতে আসে))


1

পাইথন 3, 170 বাইট

from random import *
c=choice
print(' '.join([w,w[:i]+c('̀́̂')+w[i:]][i>0]for w in input().split()for i in[c([j+1 for j,x in enumerate(w)if x in 'aeiouAEIOU']or[0])]))

Ungolfed:

from random import choice
print(' '.join([
                   w,  # Don't modify the word if no vowels were found

                   w[:i] + choice('̀́̂') + w[i:]
               ][i > 0]
               for w in input().split()
                   for i in [choice([j + 1 for j, x in enumerate(w) if x in 'aeiouAEIOU']
                                    or [0])  # choice requires a non-empty sequence
                             ]))

1
আপনার মধ্যে importএবং এর মধ্যে স্থানের দরকার নেই *
মিঃ এক্সকোডার

j+1 forহতে পারে j+1for
জনাথন ফ্রেচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.