Name von Frankensteins Monster

15

Einführung:

Da es fast Halloween ist, dachte ich nur an zufällige Halloween-Herausforderungen. Schließlich las ich Frankensteins Wikipedia-Seite durch und fand folgenden Text:

Die Kreatur

Ein Teil von Frankensteins Ablehnung seiner Schöpfung ist die Tatsache, dass er ihr keinen Namen gibt, was zu einem Mangel an Identität führt. Stattdessen wird es mit Worten wie "elend", "Monster", "Kreatur", "Dämon", "Teufel", "Unhold" und "es" bezeichnet. Wenn Frankenstein mit der Kreatur in Kapitel 10 spricht, spricht er sie als "abscheuliches Insekt", "abscheuliches Monster", "Unhold", "elender Teufel" und "abscheulicher Teufel" an.

Quelle

Herausforderung:

Bei zwei Ganzzahlen (Jahr und Kapitel) wird eine Zeichenfolge ausgegeben, die auf den folgenden Regeln basiert:

  1. Wenn das Jahr kürzer als 1818 ist: Geben Sie eine leere Zeichenfolge aus
  2. Wenn das Jahr genau 1818 ist und das Kapitel unter 10 liegt, geben Sie eine zufällige Zeichenfolge aus der Liste aus["wretch", "monster", "creature", "demon", "devil", "fiend", "it"]
  3. Wenn das Jahr genau 1818 und das Kapitel 10 oder höher ist, geben Sie eine zufällige Zeichenfolge aus der Liste aus["vile insect", "abhorred monster", "fiend", "wretched devil", "abhorred devil"]
  4. Ist das Jahr über 1818 (und somit wurde das Buch veröffentlicht), kehren Sie zurück "Frankenstein's Monster".

Herausforderungsregeln:

  • Sie können wählen, ob die Ausgabe in Kleinbuchstaben, in Großbuchstaben oder in einer Kombination erfolgen soll.
  • Das Jahr wird immer im Bereich liegen 1500-2017
  • Das Kapitel wird immer im Bereich sein 1-24(wenn ich richtig gegoogelt habe, hat das Buch 24 Kapitel)
  • Statt eine leere Zeichenfolge für die Option 1 der Ausgabe, sind Sie auch zur Ausgabe erlaubt null, undefined, false, 0, oder jeder andere Wert Ihrer Wahl nicht Teil der drei anderen Optionen (bitte angeben , was Sie in Ihrer Antwort verwendet haben).
  • Die Ausgabe darf weder führende oder nachfolgende Leerzeichen / Tabulatoren noch führende Zeilenumbrüche enthalten. Es kann eine optionale nachgestellte neue Zeile enthalten.

Allgemeine Regeln:

  • Das ist , also gewinnt die kürzeste Antwort in Bytes.
    Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden.
  • Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methode mit den richtigen Parametern und vollständige Programme verwenden. Ihr Anruf.
  • Standard-Regelungslücken sind verboten (insbesondere 'Falsche Zufallszahlen' ).
  • Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
  • Fügen Sie ggf. auch eine Erklärung hinzu.

Testfälle:

year,chapter possible outputs:

1700,1       ""; null; undefined; false; 0; etc.
1700,12      ""; null; undefined; false; 0; etc.
1817,10      ""; null; undefined; false; 0; etc.
1818,1       "wretch"; "monster"; "creature"; "demon"; "devil"; "fiend"; "it"
1818,9       "wretch"; "monster"; "creature"; "demon"; "devil"; "fiend"; "it"
1818,10      "vile insect"; "abhorred monster"; "fiend"; "wretched devil"; "abhorred devil"
1818,11      "vile insect"; "abhorred monster"; "fiend"; "wretched devil"; "abhorred devil"
1818,18      "vile insect"; "abhorred monster"; "fiend"; "wretched devil"; "abhorred devil"
1819,1       "Frankenstein's Monster"; "frankenstein's monster"; "FRANKENSTEIN'S MONSTER"
1819,18      "Frankenstein's Monster"; "frankenstein's monster"; "FRANKENSTEIN'S MONSTER"
2017,24      "Frankenstein's Monster"; "frankenstein's monster"; "FRANKENSTEIN'S MONSTER"
Kevin Cruijssen
quelle

Antworten:

3

Perl 5, 156 153 151 Bytes

-3 Bytes dank DomHastings.

Laufen Sie mit -p

$_=($d=devil,$m=monster,$w=wretch,<"{creature,demon,it,fiend,vile insect,{abhorr,$w}ed {$d,$d,$m},Frankenstein's $m}">)[/818/?6*/,../+rand 7:$_/606-5]

Diese Ausgabeverteilung ist ungleichmäßig, was standardmäßig akzeptiert wird . Insbesondere wenn das Datum 1818 ist und das Kapitel ≥10 ist, werden die Namen "abscheulicher Teufel" und "abscheuliches Monster" doppelt so stark gewichtet. Dies ermöglicht mir die Verwendung rand 7in beiden Fällen, obwohl die Listen unterschiedlich groß sind.

Die Ausgabe für Jahre vor 1818 ist "elendes Monster". Trotz einiger Ähnlichkeiten ist diese Saite nicht Teil einer der anderen drei Optionen, weshalb sie in Ordnung ist.

Dies schlägt für Jahre außerhalb des Bereichs 1212-2424 fehl, aber glücklicherweise ist das Jahr durch die Regeln garantiert, dass es im Bereich 1500-2017 liegt.

Probieren Sie es online!

Grimmig
quelle
Ich wusste gar nicht, dass eine Klammererweiterung in Perl überhaupt eine Sache ist ... Mit diesem Ansatz gibt es eine großartige Lösung für die bekannte Herausforderung ! Probieren Sie es online!
Dom Hastings
@DomHastings Ooh, ich wusste nicht, dass Sie solche Leerzeichen zitieren können. Das sind -3 Bytes hier!
Grimmy
Ich bin froh, dass ich helfen konnte! Ich werde auf jeden Fall versuchen müssen, mich daran zu <...>erinnern.
Dom Hastings
1
<> ist entweder readline oder glob, abhängig von ... Material (klassisches Perl: Die Grammatik ist nicht eindeutig, aber der Parser versucht DWYM). Wenn es sich um einen Glob handelt, ahmt es Shell-Globs sehr genau nach, einschließlich der Klammererweiterung, die in Shells häufig vorkommt.
Grimmy
Könnten Sie Ihrer Antwort vielleicht einen TIO-Link hinzufügen? :) Es ist momentan die kürzeste Antwort, aber ich möchte nur sicherstellen, dass alles funktioniert, bevor ich sie als die kürzeste akzeptiere.
Kevin Cruijssen
9

Python 2 , 227 220 214 Bytes

lambda y,c:[[choice([["wretch",m,"creature","demon",d,F,"it"],["vile insect",a+m,F,"wretched "+d,a+d]][c>9]),"Frankenstein's "+m][y>1818],0][y<1818]
from random import*
m,d,F,a='monster','devil','fiend',"abhorred "

Probieren Sie es online!

TFeld
quelle
1
Sie können weitere 6 Bytes einsparen, indem Sie diese ebenfalls 'abhorred 'in die Liste unten eintragen, da sie zweimal verwendet wurde. ( 'wretch'ist auch möglich, aber die Anzahl der Bytes bleibt gleich.)
Kevin Cruijssen
6

Perl 5 , 172 Bytes

171 Byte Code + 1 für -p.

@a=<><10?($}=wretch,$M=monster,creature,demon,$D=devil,fiend,it):("vile insect",($A="abhorred ").$M,fiend,"$}ed $D",$A.$D);$_=($a[rand@a],"frankenstein's $M",0)[$_<=>1818]

Probieren Sie es online!

Erläuterung

Ziemlich normal ist es, den 'Spaceship Operator' ( <=>) 1818zu verwenden -1, um den letzten, ersten oder zweiten Index der Quelldaten zurückzugeben , 0oder 1, wenn die Eingabe $_kleiner, gleich oder größer ist 1818. Auch ich mag den Fischoperator !

Dom Hastings
quelle
Ich wollte fragen, nicht zu verwenden $F=fiend, aber nach dem Testen endet es mit der gleichen Länge, um dies zu tun.
Kamil Drakari
@KamilDrakari Ja, muss wegen des Siegels mindestens sechs Jahre $alt sein :(
Dom Hastings
$}Was für ein Variablenname ...
Titus
@Titus Yup! Fast alles funktioniert, obwohl viele eine besondere Bedeutung haben. Ich habe es dort nur so benutzt, als hätte ich es $Wgebraucht, ${W}da es neben einem anderen Brief steht.
Dom Hastings
1
Das habe ich mir gedacht. gotcha nichtsdestotrotz :)
Titus
4

C # (Visual C # Compiler) , 225 209 Bytes

y=>c=>y<1818?"":y>1818?"frankenstein's monster":"wretch,monster,creature,demon,devil,it,fiend,vile insect,abhorred monster,wretched devil,abhorred devil".Split(',')[new System.Random().Next(c>9?6:0,c>9?11:7)];

Probieren Sie es online!

-16 danke an Kevin Cruijssen

Nicht besonders präzise, ​​aber ich würde erwarten, dass C # mehr Platz benötigt, um wiederholte Zeichenfolgen zu deklarieren und zu verwenden, als nur zu wiederholen. Der mitgelieferte Testrunner hat eine Thread.Sleep(1)interne Aufzählung der Testfälle, da Default Seeding fürRandom() die aktuelle Zeit verwendet wird und die eigentliche Funktion schnell genug ausgeführt wird, um bei nachfolgenden Läufen ohne Verzögerung denselben Startwert zu erhalten.

Aufrufe an die Funk verwenden die Currying-Syntax f(year)(chapter)(oder den Namen, in dem die Funktion anstelle von f gespeichert ist).

Kamil Drakari
quelle
2
Ich sehe, dass Sie den gleichen Trick angewendet haben, den ich mir vorgestellt hatte, als ich die Herausforderung gepostet habe, indem ich sie fiendin die Mitte eines einzelnen String-Arrays gestellt habe, da sie in beiden Listen vorhanden ist. Sie können einige Bytes sparen, indem Sie new[]{"wretch","monster","creature","demon","devil","it","fiend","vile insect","abhorred monster","wretched devil","abhorred devil"}durch "wretch,monster,creature,demon,devil,it,fiend,vile insect,abhorred monster,wretched devil,abhorred devil".Split(',')(-16 Bytes) ersetzen
Kevin Cruijssen
@KevinCruijssen Netter Trick, es scheint nicht sofort von Vorteil zu sein, aber das Ändern des Trennzeichens von ","in ,macht das im .Split(',')Vergleich zu new[]{}mehr als ein paar Elementen länger wett .
Kamil Drakari
3

Bash, 229 , 206 , 197 , 179 Bytes

m=monster
a=("Frankenstein's $m" wretch $m creature demon devil it fiend vile\ insect {abhorr,wretch}ed\ {devil,$m})
echo "${a[$1>1818?0:$1<1818?13:RANDOM%($2>9?5:7)+($2>9?7:1)]}"

die Erklärung zu geschweiften / variablen Erweiterungen

m=monster
{abhorr,wretch}ed\ {devil,$m}

wird zuerst erweitert um

abhorred\ {$m,devil} wretched\ {devil,$m}
abhorred\ $m abhorred\ devil wretched\ devil wretched\ $m

dann wird die Variable m erweitert

abhorred\ monster abhorred\ devil wretched\ devil wretched\ monster

Das Folgende funktioniert jedoch nicht, da $wes zuerst mit verknüpft edund wednicht definiert wird und zu einer leeren Zeichenfolge erweitert wird.

m=monster
w=wretch
{abhorr,$w}ed\ {devil,$m}

Es kann getan werden, explizite Klammern um w hinzuzufügen, wird aber länger sein

m=monster
w=wretch
{abhorr,${w}}ed\ {devil,$m}

TIO

Nahuel Fouilleul
quelle
Sie können 4 Bytes sparen, indem Sie Variablen für wretchund monster( 225 Bytes ) erstellen .
Kevin Cruijssen
nicht so einfach wegen der Klammer Expansion, die vor der variablen Expansion auftritt
Nahuel Fouilleul
Ich habe (fast) nie in Bash programmiert. Könnten Sie also klarstellen, was Sie damit meinen? Es scheint in TIO zu funktionieren , aber vielleicht fehlt mir etwas aufgrund des Verhaltens der Programmiersprache.
Kevin Cruijssen
1
@ KevinCruijssen danke, ich habe etwas gelernt, wenn Klammern das letzte Element Erweiterungsarbeiten sind
Nahuel Fouilleul
1
@ DomHastings, ja, behoben
Nahuel Fouilleul
2

APL (Dyalog Unicode) , 189 Byte

m'monster'
a'abhorred ',⊢
f'fiend'
d'devil'
{⊃⍵=1818:{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it'⋄(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵⋄{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵}

Probieren Sie es online!

Zum Testen hängen Sie den Testfall einfach wie folgt an die letzte geschweifte Klammer an:

{⊃⍵=1818:{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it'⋄(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵⋄{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵}1818 10

Ein großes Dankeschön an @ngn für die Unterstützung bei der Lösung der führenden Whitespace-Probleme.

Wie es funktioniert:

Es ist erwähnenswert, dass APL Zeichenfolgen als Arrays ( Vektoren ) von Zeichen 'wretch' 'creature'interpretiert und in anderen Sprachen als interpretiert[[w,r,e,t,c,h],[c,r,e,a,t,u,r,e]]

Dies sind Hilfsfunktionen:

m'monster'      #These are pretty self explanatory, variables m, f and d are being set to 'monster', 'fiend' and 'devil respectively.
f'fiend'
d'devil'
a'abhorred ',⊢  # a is being set to 'abhorred ' concatenated with the argument to it's right.

Dies ist die Hauptfunktion, die zum besseren Verständnis in drei Teile unterteilt wird:

{⊃⍵=1818:{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it'⋄(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵⋄{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵}

Teil 1:

{⊃⍵=1818:{Part2}⍵⋄{Part3}⍵} # First conditional
        :                   # If
                           # the first element
                           # of the argument ⍵
   =1818                    # Equals the literal 1818
         {Part2}⍵           # Executes part 2 with argument ⍵
                           # Else
                  {Part3}⍵  # Executes part 3 with argument ⍵

Teil 2:

{⊃⌽⍵<10:(?7)⊃'wretch'm'creature' 'demon'd f'it' # Second conditional
(?5)⊃'vile insect'(a m)f('wretched ',⊢d)(a d)}⍵                
       :                                         # If
                                                # the first element
                                                # of the inverse
                                                # of the argument ⍵
    <10                                          # is less than 10
                                                # pick the nth
       (?7)                                      # random element between [1,7]
            'wretch'm'creature' 'demon'd f'it'   # from this string array
                                                # Else
                                                # pick the nth
(?5)                                             # random element between [1,5]
     'vile insect'(a m)f('wretched ',⊢d)(a d)    # from this string array
                                             }⍵  # using argument ⍵

Teil 3:

{⊃⍵>1818:'frankenstein''s ',⊢m''}⍵ # Third conditional
        :                           # If
                                   # the first element
                                   # of the argument ⍵
   >1818                            # is greater than 1818
         'frankenstein''s ',⊢m      # print the string "frankenstein's" concatenated with m (which prints monster)
                                   # else
                               ''   # print an empty string
                                 }⍵ # with argument ⍵
J. Sallé
quelle
2

Java (OpenJDK 8) , 275 269 255 207 203 Bytes

y->c->y<1818?0:y>1818?"Frankenstein's monster":"wretch;monster;creature;demon;devil;it;fiend;vile insect;abhorred monster;wretched devil;abhorred devil".split(";")[c+=Math.random()*(c>9?5:7)+(c>9?6:0)-c]

Probieren Sie es online!

Roberto Graham
quelle
1
203 Bytes . Verwenden Sie IntFunctions anstatt es Function<Integer>zum Laufen zu bringen.
Olivier Grégoire
2

PHP, 184 176 Bytes

<?=strtr([0,1,2,Creature,Demon,It,Fiend,30,31,"2ed 1","Vile Insect","Frankenstein´s 0"][[rand(6*$x=$argv[2]>9,6+4*$x),11][$argv[1]<=>1818]],[Monster,Devil,Wretch,"Abhorred "]);

Führen Sie mit -nund geben Sie Jahr und Kapitel als Befehlszeilenargumente an oder probieren Sie es online aus .

Index und damit Ergebnis NULLfür Jahr <1818 auswerten , was zu leerer Ausgabe führt.

Titus
quelle
Was macht $argv[1]<=>1818das? Das habe ich noch nie gesehen.
YU NO WORK
1

Javascript (ES6), 205 Byte

a="abhorred ",d="devil",f="fiend",m="monster"
y=>c=>y<1818?0:y>1818?"frankenstein's "+m:(l=c<10?[f,"wretch",m,"creature","demon",d,f,"it"]:["vile insect",a+m,f,"wretched "+d,a+d])[0|Math.random()*l.length]

Gibt zurück, 0wenn das Jahr kürzer als 1818 ist

Herman L
quelle
1

Javascript 199 Bytes

M="monster"
A=(y,c)=>y<1818?"":y^1818?"Frankenstein's "+M:[W="wretch",M,"creature","demon",D="devil",F="fiend","it","vile insect",(H="abhorred ")+M,F,W+"ed "+F,H+D][Math.random()*(c>9?5:7)+7*(c>9)|0]

console.log(A(1700,1))
console.log(A(1700,12))
console.log(A(1817,10))
console.log(A(1818,1))
console.log(A(1818,9))
console.log(A(1818,10))
console.log(A(1818,11))
console.log(A(1819,1))
console.log(A(1819,18))
console.log(A(2017,24))

DanielIndie
quelle
1

C 380 Byte

void ok(int *year, int* chapter){char*below_10[] = {"wretch", "monster", "creature", "demon", "devil", "fiend", "it"}; char*at_10[] = {"vile insect", "abhorred monster", "fiend", "wretched devil", "abhorred devil"}; year < 1818?printf("0"):(year == 1818?(chapter<10 printf("%s",below_10[rand()%8]):printf("%s",at_10[rand()%7])):printf("Frankenstein's Monster"));}
Igbokwe Danny
quelle
4
Hallo, willkommen bei PPCG! Bei einer Code-Golf-Herausforderung ist es das Ziel, so wenig Bytes wie möglich zu haben. Daher eignen sich Methoden- / Variablennamen am besten als einzelne Zeichen. Außerdem können Sie alle unnötigen Leerzeichen und Zeilenumbrüche entfernen und "Frankenstein's Monster"direkt verwenden, anstatt eine Variable dafür zu erstellen. Auch wo ist das yearund chapterkommt es von jetzt? Ich sehe es nicht als Parameter der Methode. Tipps zum Golfen in <allen Sprachen> und Tipps zum Golfen in C können hilfreich sein. Genieße deinen Aufenthalt! :)
Kevin Cruijssen
Kein Problem. Und Sie können ein bisschen mehr Golf spielen: void o(int y,int c){char*b[]={"wretch","monster","creature","demon","devil","fiend","it"},*a[]={"vile insect","abhorred monster","fiend","wretched devil","abhorred devil"};printf("%s",y<1818?0:y==1818?c>9?a[rand()%6]:b[rand()%7]:"Frankenstein's Monster");} 256 Bytes Probieren Sie es hier aus! (Ich habe alle unnötigen Leerzeichen entfernt, Methode / Variablen / Parameter in Einzelbuchstaben umbenannt; einige unnötige Klammern bei ternary-if entfernt; single printf; geändert <10zu >9; usw.) Ich bin mir nicht sicher, warum ich rand()nicht in TIO arbeite.: S
Kevin Cruijssen
234 Bytes
Ceilingcat
1

MBASIC , 288 Bytes

1 DIM R$(12):FOR I=1 TO 12:READ R$(I):NEXT:INPUT Y,C:IF Y<1818 THEN 5
2 IF Y>1818 THEN O$="Frankenstein's Monster":GOTO 5
3 IF C>9 THEN O=7
4 O$=R$(O+INT(RND(1)*N+1))
5 PRINT O$:DATA wretch,monster,creature,demon,devil,fiend,it,vile insect,abhorred monster,fiend,wretched devil,abhorred devil
wooshinyobject
quelle
0

05AB1E , 114 110 Bytes

0…뢼–±¹.•ʒ¦Ë"ìËM₂G¶тá≠•ì#.•1ÏiT¥Ƶʒ“T¡Äg… 5ÀΘO¼™Ãí?ιË%4₄‡‡λYιi¾н••Jtm•17в£‚…'s 'ì³R7£R’¡¬ÿÿ±¹’¸¸)sŽ7X.S>èsT@èΩ

Wird ausgegeben, 0wenn das Jahr darunter liegt 1818.

Probieren Sie es online aus oder überprüfen Sie alle Testfälle .

Erläuterung:

0                    # Push a 0
…뢼–±¹              # Push dictionary string "creature devil monster"
 .•ʒ¦Ë"ìËM₂G¶тá≠•   "# Push compressed string "demon fiend it wretch "
  ì                  # Prepend it: "demon fiend it wretch creature devil monster"
   #                 # Split by spaces: ["demon","fiend","it","wretch","creature","devil","monster"]
.•1ÏiT¥Ƶʒ“T¡Äg 5ÀΘO¼™Ãí?ιË%4₄‡‡λYιi¾н•
                     # Push compressed string "abhorred devilabhorred monsterfiendvile insectwretched devil"
 Jtm               # Push compressed integer 1249548
      17в            # Converted to Base-17 as list: [14,16,5,11,14]
         £           # Split the string into parts of that size: ["abhorred devil","abhorred monster","fiend","vile insect","wretched devil"]
                    # Pair both string-lists together
's                 '# Push string "'s "
   'ì³              '# Push dictionary string "liechtenstein"
      R7£R           # Leave the last 7 characters: "enstein"
          ’¡¬ÿÿ±¹’   # Push dictionary string "frankÿÿmonster", where the "ÿ" are automatically
                     # replaced with the strings at the top of the stack: "frankenstein's monster"
                  ¸¸ # Wrap it twice into a list: [["frankenstein's monster"]]
)                    # Wrap everything on the stack into a list
                     # (We now have: [0,[["demon","fiend","it","wretch","creature","devil","monster"],["abhorred devil","abhorred monster","fiend","vile insect","wretched devil"]],[["frankenstein's monster"]]])
 s                   # Swap to get the first (implicit) input
  Ž7X                # Push compressed integer 1818
     .S              # Compare it with the input (-1 if below; 0 if equal; 1 if above)
       >             # Increase it by 1 (0 if below; 1 if equal; 2 if above)
        è            # Use it to index into the list
         s           # Swap to get the second (implicit) input
          T@         # Check if it's larger than or equal to 10 (results in 0 for falsey; 1 for truthy)
            è        # Use it to index into the inner list
             Ω       # And finally get a random value from that list (which is output implicitly)

Sehen Sie sich meinen Tipp 05AB1E an (Abschnitte Verwendung des Wörterbuchs ; Komprimieren von Zeichenfolgen, die nicht Teil des Wörterbuchs sind ; Komprimieren großer Ganzzahlen ; und Komprimieren von Ganzzahllisten ), um zu verstehen, warum:

  • …뢼–±¹ist "creature devil monster";
  • .•ʒ¦Ë"ìËM₂G¶тá≠•ist "demon fiend it wretch ";
  • .•1ÏiT¥Ƶʒ“T¡Äg… 5ÀΘO¼™Ãí?ιË%4₄‡‡λYιi¾н• ist "abhorred devilabhorred monsterfiendvile insectwretched devil";
  • •Jtm•ist 1249548und•Jtm•17в ist [14,16,5,11,14];
  • 'ì³ ist "liechtenstein ";
  • ’¡¬ÿÿ±¹’ ist "frankÿÿmonster";
  • Ž7Xist 1818.
Kevin Cruijssen
quelle
-1

JavaScript, 194 B

e=Math.random,f=Math.floor;x=(a,b,c=`insect,monster,wretch,creature,demon,devil,fiend,it`.split`,`,d=[`vile `,`abhorred `])=>a<1818||a-1818?`Frankenstein's `+c[1]:(b<10||c[f(e()*2)])+c[f(e()*8)]
user75200
quelle
stimmt nicht wirklich mit den Testfällen
überein