Vous aimez le taekwondo?

9

Choi Hong Hi est décédé le 15 juin 2002 à l'âge honorable de 83 ans. Il a fondé le Taekwondo .

15 ans après sa mort, j'aimerais devenir maître de Taekwondo. C'est mon moment de briller!

Tâche

Étant donné une chaîne, vous devez sortir une version Taekwondo .

Règles

  • Vous recevrez une chaîne / phrase non vide par n'importe quelle entrée valide
  • Vous devez remplacer chaque titre (insensible à la casse) par l' équivalent de romanisation révisé .
  • Vous devez ajouter , *side kick*à la fin de la phrase car j'aime faire des coups de pied latéraux.
  • Vous devez sortir cette phrase modifiée sous forme de chaîne.
  • Il s'agit de vous devez viser à minimiser le nombre d'octets de votre réponse

Exemples

"I am a Student and I do Taekwondo twice a week" 
  => "I am a Geup and I do Taekwondo twice a week, *side kick*"

"I am a Teacher willing to be a President" 
  => "I am a Gyosa nim willing to be a Gwanjang nim, *side kick*"

Liste des titres

English             =>  Revised Romanization
============================================
President           =>  Gwanjang nim
Founder             =>  Gwanjang nim
Master instructor   =>  Sabeom nim
Teacher             =>  Gyosa nim
Black Belt          =>  Dan
Student             =>  Geup
Color Belt          =>  Geup
Master level        =>  Godanja
Weedoze
la source
1
insensible à la casse? et est un espace nécessaire avant*side kick*
LiefdeWen
10
@LiefdeWen L'espace est évidemment nécessaire. Comment pouvez-vous faire un side kicksans espace entre vous et votre adversaire?
Weedoze
1
En tant que Coréen, j'approuve ce défi. Mais je dois dire que Geup(급) ne signifie pas vraiment «étudiant». Haksaeng(학생) serait mieux. En outre, vous utiliseriez Sabeom nim(사범님) au lieu de Gyosa nim(교사 님) en ce qui concerne l'instructeur d'arts martiaux, quelle que soit la maîtrise (le mot Gyobeom nim(교범 님) existe, mais il est rarement utilisé).
JungHwan Min
2
side kickest différent deside-kick
sergiol
1
@sergiol Question mise à jour
Weedoze

Réponses:

2

Rétine , 154 octets

i(`president|founder
Gwanjang_
master instructor
Sabeom_
teacher
Gyosa_
black belt
Dan
student|color belt
Geup
master level
Godanja
_
 nim
$
, *side kick*

Essayez-le en ligne!

Okx
la source
3

PHP , 241 octets

<?=preg_replace(["#\b(President|Founder)\b#i","#\bMaster instructor\b#i","#\bTeacher\b#i","#\bBlack Belt\b#i","#\b(Studen|Color Bel)t\b#i","#\bMaster level\b#i"],[Gwanjang.$n=" nim",Sabeom.$n,Gyosa.$n,Dan,Geup,Godanja],"$argn, *side-kick*");

Essayez-le en ligne!

Jörg Hülsermann
la source
1
Comme je compte, ce serait plus court avec str_ireplace().
manatwork
Pas clair ce que "Vous devez sortir cette phrase modifiée sous forme de chaîne." signifie en fait, mais étant donné que le coup de pied latéral doit toujours être ajouté, je dirais que la phrase changera toujours, donc quelque chose devrait toujours être sorti. Par exemple en cas d'entrée comme "Me coder, no Taekwondo".
manatwork
@manatwork C'est dire une entrée valide. Sous entrée valide, je suppose une entrée avec un titre. Votre compte str_ireplaceétait correct
Jörg Hülsermann
1
Il semble y avoir assez « nim » pour la valeur d' une variable: [$a=Gwanjang.$n=" nim",$a,Sabeom.$n,Gyosa.$n,….
manatwork
@manatwork Oui, il enregistre deux octets. J'ai essayé une version avec supplémentaire strtrmais cela ne sauve rien
Jörg Hülsermann
2

C #, 262 octets

s=>{for(int i=0;i<8;)s=s.ToUpper().Replace("PRESIDENT|FOUNDER|MASTER INSTRUCTOR|TEACHER|BLACK BELT|MASTER LEVEL|STUDENT|COLOR BELT".Split('|')[i],(i<2?"GWANJANG":i>3?"GEUP":"SABEOM|GYOSA|DAN|GODANJA".Split('|')[i-2])+(i++<4?" NIM":""));return s+", *SIDE KICK*";}

Version complète / formatée:

class Program
{
    static void Main(string[] args)
    {
        System.Func<string, string> f = s =>
        {
            for (int i = 0; i < 8;)
                s = s.ToUpper().Replace("PRESIDENT|FOUNDER|MASTER INSTRUCTOR|TEACHER|BLACK BELT|MASTER LEVEL|STUDENT|COLOR BELT".Split('|')[i],
                                        (i < 2 ? "GWANJANG"
                                               : i > 3 ? "GEUP"
                                                       : "SABEOM|GYOSA|DAN|GODANJA".Split('|')[i-2])
                                        + (i++ < 4 ? " NIM" : ""));

            return s + ", *SIDE KICK*";
        };

        System.Console.WriteLine(f("I am a Student and I do Taekwondo twice a week"));
        System.Console.WriteLine(f("I am a Teacher willing to be a President"));

        System.Console.ReadLine();
    }
}
TheLethalCoder
la source
Nous devrions demander si *SIDE KICK*peut être sous cette forme, dans les exemples, il a été mis en minuscule
M. Xcoder
@ Mr.Xcoder Le commentaire sur l'OP dit qu'il est insensible à la casse, de toute façon ce n'est pas un changement dans le nombre d'octets. De plus, un coup de pied en majuscule est plus puissant donc il devrait être autorisé ...
TheLethalCoder
1
Oui, juste faire cette remarque ... Cette réponse est mortelle de toute façon :))
M. Xcoder
1

Rétine , 163 octets

i`President|Founder
Gwanjang¶
i`Master instructor
Sabeom¶
i`Teacher
Gyosa¶
i`Black Belt
Dan
i`Student|Color Belt
Geup
i`Master level
Godanja
¶
 nim
$
, *side kick*

Essayez-le en ligne!

ovs
la source
0

tcl, 212

puts "[string map -nocase {President Gwanjang\ nim Founder Gwanjang\ nim Master\ instructor Sabeom\ nim Teacher Gyosa\ nim Black\ Belt Dan Student Geup Color\ Belt Geup Master\ level Godanja} $argv], *side kick*"

démo

sergiol
la source
@manatwork: fixe.
sergiol
0

Python 3 , 281 octets

import re
x=input();a="Gwanjang";b=" nim";c="Geup";d="Master";e=" Belt"
for i in range(8):x=re.sub("(?i)"+["President","Founder",d+" instructor","Teacher","Black"+e,"Student","Color"+e,d+" level"][i],[a+b,a+b,"Sabeom"+b,"Gyosa"+b,"Dan",c,c,"Godanja"][i],x)
print(x+", *side kick*")

Essayez-le en ligne!

officialaimm
la source
0

JavaScript (ES6), 251 octets

a=>a.replace(RegExp(b='president|founder|master instructor|teacher|black belt|student|color belt|master level','gi'),c=>((d='Gwanjang nim|')+d+'Sabeom nim|Gyosa nim|Dan|Geup|Geup|Godanja').split`|`[b.split`|`.indexOf(c.toLowerCase())])+', *side kick*'

Essayez-le en ligne!

Ce n'est pas aussi compact qu'il pourrait l'être car JavaScript est tellement verbeux, mais c'est une excellente question. J'ai reconnu la plupart de ces termes car je suis un 2e ceinture noire Dan au Taekwondo.

Explanaion

a=>
  a.replace(                                    // Replace on input string
    RegExp(                                     // Regex matching English phrases
      b='president|founder|master instructor|teacher|black belt|student|color belt|master level',
      'gi'                                      // Match all, case insensitive
    ),
    c=>
      ((d='Gwanjang nim|')+d+                   // Duplicate string portion
        'Sabeom nim|Gyosa nim|Dan|Geup|Geup|Godanja') // Add remaining phrases
      .split`|`                                 // Split into array by pipe
        [b.split`|`.indexOf(c.toLowerCase())])  // Access Korean phrase by corresponding index of matched English phrase
      +', *side kick*'                          // I like to do side kicks
andrewarchi
la source
0

JavaScript (ES6), 233 octets

s=>(btoa`>·¬×§·mÁ©ãjx4)µ§uêö§©àÒx¦ÔƬµêô{-®ç-¢½i·¨IâTÞiÈ^¯a²¢Æ´)µV@^Ýj}R¶ç^Ýzêu
h¯@^Ýzêu1«-z½%z÷¥ØjjxÚ`.split(0).join` `.split`1`.map(d=>([a,b]=d.split(/2+/),s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*"')


JavaScript (ES6), 243 octets

s=>(`President${A=':Gwanjang nim|'}Founder${A}Master instructor:Sabeom nim|Teacher:Gyosa nim|Black Belt:Dan|Student:Geup|Color Belt:Geup|Master level:Godanja`.split`|`.map(r=>([a,b]=r.split`:`,s=s.replace(RegExp(a,'gi'),b))),s+', *side kick*')

darrylyeo
la source