Najpiękniejsza wersja, mówisz? Spróbujmy tego w ...
The Marvelously Insane FizzBuzzJazz Program.
Lady Capulet, an old bossy woman that loves to count.
The Archbishop of Canterbury, an old fart who adores to spit out letters.
Act I: The only one of them.
Scene I: The Archbishop of Canterbury is a bastard.
[Enter The Archbishop of Canterbury and Lady Capulet]
The Archbishop of Canterbury:
You are nothing!
Scene II: Count, Lady Capulet, count.
The Archbishop of Canterbury:
You are as beautiful as the sum of yourself and a cat!
Lady Capulet:
Am I worse than the square of the product of the sum of a warm gentle flower and a rose
and my pretty angel?
The Archbishop of Canterbury:
If not, let us proceed to Scene VIII.
Scene III: Fizzing to no end!
The Archbishop of Canterbury:
Is the remainder of the quotient between yourself and the sum of a happy cow and a
chihuahua as good as nothing?
Lady Capulet:
If not, let us proceed to Scene IV. Thou art as handsome as the sum of the sum of
the sweetest reddest prettiest warm gentle peaceful fair rose and a happy proud kindgom
and a big roman. Speak thy mind!
Thou art as fair as the sum of thyself and a honest delicious cute blossoming peaceful
hamster. Thou art as cunning as the sum of the sum of an embroidered King and a horse
and thyself. Speak thy mind!
Thou art as amazing as the sum of the sum of a good happy proud rich hero and a hair and
thyself! Speak thy mind.
Speak your mind!
Scene IV: Milady, there is jazz in thy robe.
The Archbishop of Canterbury:
Is the remainder of the quotient between yourself and a proud noble kingdom as good as
nothing?
Lady Capulet:
If not, let us proceed to Scene V. You are as charming as the sum of the sum of a noble
cunning gentle embroidered brave mighty King and a big warm chihuahua and an amazing
pony! Speak your mind!
You are as prompt as the sum of yourself and a big black sweet animal. You are as noble
as the sum of the sum of a gentle trustworthy lantern and yourself and a hog. Speak your
mind!
You are as bold as the sum of the sum of yourself and a good delicious healthy sweet
horse and my smooth cute embroidered purse. You are as peaceful as the sum of a flower
and yourself. Speak your mind.
Speak your mind!
Scene V: Buzz me up, Scotty!
The Archbishop of Canterbury:
Is the remainder of the quotient between yourself and the sum of a gentle happy cow and a
chihuahua as good as nothing?
Lady Capulet:
If not, let us proceed to Scene VI. Thou art as handsome as the sum of the sweetest
reddest prettiest warm gentle peaceful fair rose and a small town. Speak your mind!
You are as prompt as the sum of yourself and a big healthy peaceful fair rich kingdom.
You are as loving as the sum of the sum of an embroidered King and a horse and thyself.
You are as amazing as the sum of yourself and a cute fine smooth sweet hamster. Speak
your mind!
You are as prompt as the sum of the sum of yourself and an amazing cunning Lord and a
hair. Speak your mind.
Speak your mind!
The Archbishop of Canterbury:
Let us proceed to Scene VII.
Scene VI: Output or die!
The Archbishop of Canterbury:
Open your heart!
Scene VII: Oh, to jump the line.
Lady Capulet:
You are as handsome as the sum of a proud noble rich kingdom and a rural town. Speak your
mind! You are as gentle as the sum of the sum of yourself and a green mistletoe and my
father. Speak your mind!
The Archbishop of Canterbury:
We must return to Scene II.
Scene VIII: Goodbye, cruel world!
[Exeunt]
Więc po mojej walce z SPL tutaj czułem, że muszę wykonać co najmniej jedno zgłoszenie przy każdym wyzwaniu. I to jest to.
Więc o co w tym wszystkim chodzi?
Po pierwsze, deklarujemy zmienne, których będziemy używać w całym programie, które muszą pochodzić ze sztuk Szekspira. Mając dość Romea, Julii, Ofelii i Othello, poszedłem z Arcybiskupem Canterbury i Lady Capulet . Ich opisy, a także tytuły Aktów / Scen, są odrzucane przez parser, więc możesz umieścić tam prawie wszystko, co chcesz.
Stwórzmy króla przekładów na coś nieco mniej bełkotliwego .
Akt I, Scena I
Begin
Lady Capulet = 0;
Akt I jest dość prosty: inicjujemy naszą zmienną wartością 0.
Akt I, Scena II
Lady Capulet += 1;
if(Lady Capulet < Math.pow((2*2*1+1)*(2*1),2))
continue;
else
goto Scene VIII;
Podnosimy wartość Lady Capulet i porównujemy ją ze 100 (tak, całe zdanie służy wyłącznie do uzyskania liczby 100); jeśli nie jest mniejszy, przeskakujemy do Sceny VIII (koniec); w przeciwnym razie przechodzimy do następnej Sceny.
Akt I, Scena III
if(Lady Capulet % (2+1) == 0)
continue;
else
goto Scene IV;
The Archbishop of Canterbury = 2*2*2*2*2*2*1;
System.out.print((char)The Archbishop of Canterbury);
The Archbishop of Canterbury += 2*2*2*2*2*1;
The Archbishop of Canterbury += 2*1+1;
System.out.print((char)The Archbishop of Canterbury);
The Archbishop of Canterbury += 2*2*2*2*1+1;
System.out.print((char)The Archbishop of Canterbury);
System.out.print((char)The Archbishop of Canterbury);
Po pierwsze, widzimy, czy moduł dzielenia przez 3 wynosi 0; jeśli nie, przeskakujemy do Sceny IV; jeśli tak jest, zaczynamy wykonywać operacje arytmetyczne i przechowywać je na Archiepersonie, wysyłając je w postaci postaci, gdy znajdziemy tę, której szukamy. Tak, w końcu chodzi o to, żeby dostać Fizz
.
Akt I, Scena IV
if(Lady Capulet % (2*2) == 0)
continue;
else
goto Scene V;
The Archbishop of Canterbury = 2*2*2*2*2*2*1+2*2*1+2*1;
System.out.print((char)The Archbishop of Canterbury);
The Archbishop of Canterbury += 2*2*2*1;
The Archbishop of Canterbury += 2*2*1+(-1);
System.out.print((char)The Archbishop of Canterbury);
The Archbishop of Canterbury += 2*2*2*2*1+2*2*2*1;
The Archbishop of Canterbury += 1;
System.out.print((char)The Archbishop of Canterbury);
System.out.print((char)The Archbishop of Canterbury);
Najpierw sprawdza, czy moduł dzielenia przez 4 wynosi 0, a następnie kontynuuje dla tej samej sceny jak poprzednio Jazz
.
Akt I, Scena V.
if(Lady Capulet % (2*2+1) == 0)
continue;
else
goto Scene VI;
The Archbishop of Canterbury = 2*2*2*2*2*2*1+2*1;
System.out.print((char)The Archbishop of Canterbury);
The Archbishop of Canterbury += 2*2*2*2*2*1;
The Archbishop of Canterbury += 2*1+1;
The Archbishop of Canterbury += 2*2*2*2*1;
System.out.print((char)The Archbishop of Canterbury);
The Archbishop of Canterbury += 2*2+1;
System.out.print((char)The Archbishop of Canterbury);
System.out.print((char)The Archbishop of Canterbury);
goto Scene VII;
Działa podobnie jak dwa poprzednie, sprawdzając, czy moduł dzielenia przez 5 zwraca 0, a następnie próbuje zapisać Buzz
; jedyną różnicą jest to, że ostatecznie pomijamy Scenę.
Akt I, Scena VI
System.out.print(Lady Capulet);
Aby dojść do tej Sceny, liczba przyjęta przez Lady Capulet nie może być ani Fizz, ani Jazz, ani Buzz; więc wyprowadzamy go w postaci liczbowej.
Akt I, Scena VII
The Archbishop of Canterbury = 2*2*2*1+2*1;
System.out.print((char)The Archbishop of Canterbury);
The Archbishop of Canterbury += 2*1+1;
System.out.print((char)The Archbishop of Canterbury);
goto Scene II;
Jest to jedyny sposób, w jaki udało mi się przejść do następnego wiersza: najpierw CR, potem LF; następnie wracamy do sceny II, aby kontynuować program.
Akt I, Scena VIII
End.
Dość proste.
Wciąż próbuję sprawdzić, czy mogę pokazać to działające online, ale nie mogę znaleźć kompilatora online - ten, który znam , nie łączy się dobrze z żadnym programem oprócz tego, który już został załadowany, a może jest jakiś problemu z interfejsem między klawiaturą a krzesłem ...
Aktualizacja 1:
Po komentarzu matmandana zredagowałem kolejność scen Jazz i Buzz. To musiało być zrobione.