ผมชอบคำถามนี้และในขณะที่มีบางส่วน ที่น่าสนใจในคำตอบที่เชคสเปียภาษาที่นี่เป็นหนึ่ง
A Tale of Two Cites (sic).
Julius Caesar, the first citizen of the Roman Republic.
Brutus, a traitor -- member of the Fifth Column.
Cicero, the greatest Roman orator.
Cleopatra, a proud queen, whom the Romans want to make one of their own.
Romeo, a man who's sometimes there.
Juliet, a maiden who can follow Romeo or stand on her own.
Act I: Imperium Romanum.
Scene I: Cleopatra puts men in their place.
[Enter Cleopatra and Julius Caesar]
Julius Caesar:
Thou art as lovely as the sum of an amazing delicious gentle blossoming warm angel and a charming noble reddest rose.
Speak your mind. Open your mind. Open your mind. Open your mind! Open your mind!
Cleopatra:
You are as stuffed as the sum of a hard old green horse and the sum of a grandmother and
a normal tiny bottomless furry small purple roman.
[Exit Julius Caesar]
[Enter Brutus]
Cleopatra:
You are as sorry as the difference between a rich morning and a leech.
You are as smelly as the difference between yourself and a sunny rural blue bold uncle.
You are as vile as the difference between Julius Caesar and yourself.
[Exit Brutus]
[Enter Cicero]
Cleopatra:
You are as half-witted as the difference between Brutus and the bluest death.
Scene II: How do you solve a problem like Cleopatra?
[Exeunt]
[Enter Cleopatra and Julius Caesar]
Julius Caesar:
Listen to your heart!
[Exit Cleopatra]
[Enter Brutus]
Julius Caesar:
Is Cleopatra more pretty than a fair charming noble angel?
Brutus:
If so, we must proceed to Scene IV. Is Cleopatra not worse than the sweetest small aunt?
Julius Caesar:
If so, let us proceed to Scene III.
Brutus:
Speak your mind.
Julius Caesar:
Is Cleopatra nicer than the moon?
Brutus:
If so, speak your mind.
Julius Caesar:
Is Cleopatra better than a golden King?
Brutus:
If so, speak your mind.
Julius Caesar:
We shall proceed to Scene V.
Scene III: Brutus and his friends.
Julius Caesar:
Is Cleopatra as fair as the blossoming smooth sky?
Brutus:
If so, speak your mind!
Julius Caesar:
Speak your mind!
Julius Caesar:
Is Cleopatra jollier than the sum of a yellow sweet road and a summer's day?
Brutus:
If so, speak your mind!
Julius Caesar:
Is Cleopatra friendlier than the sum of a sweet large angel and a white cow?
Brutus:
If so, speak your mind!
Julius Caesar:
Is Cleopatra as furry as a rich handsome huge mistletoe?
Brutus:
If so, speak your mind!
Julius Caesar:
We shall proceed to Scene V.
Scene IV: Cicero is asked to speak.
[Exit Brutus]
[Enter Cicero]
Julius Caesar:
Is Cleopatra as beautiful as the sum of a small furry white angel and a summer's day?
Cicero:
If so, speak your mind!
Julius Caesar:
Speak YOUR mind!
Scene V: A period piece -- Cleopatra's reprisal.
[Exeunt]
[Enter Cleopatra and Julius Caesar]
Julius Caesar:
You are as beautiful as the sum of a embroidered sweetest sunny delicious trustworthy Lord
and a reddest charming mighty honest King.
You are as healthy as the difference between yourself and a embroidered Lord. Speak your mind!
Open your mind! Open your mind! Open your mind! Open your mind! Open your mind! Open your mind!
Cleopatra:
Are you jollier than the sum of a little rural white bottomless blue blue sky and a rural furry white green old morning?
Julius Caesar:
If so, we must proceed to Act II. Open your mind! Open your mind!
Cleopatra:
You are as damned as the difference between yourself and a half-witted dusty snotty rotten oozing death.
[Exit Julius Caesar]
[Enter Brutus]
Cleopatra:
You are as rotten as the difference between yourself and a rural rotten bottomless evil miserable famine.
[Exit Brutus]
[Enter Cicero]
Cleopatra:
You are as fatherless as the difference between Brutus and a normal pig. Let us return to Scene II.
Act II: Lovers' arithmetick.
Scene I: Our lovers discuss what they have in common.
[Exeunt]
[Enter Romeo and Juliet]
Romeo:
Thou art as bold as a curse. Listen to your heart!
Juliet:
Am I better than nothing? If so, let us proceed to Scene III.
Romeo:
Open your mind. Open your mind.
Juliet:
Listen to your heart! Open your heart!
Romeo:
Thou art as amazing as the product of the difference between a handsome white proud white grandfather and an aunt
and the sum of a loving niece and the Heaven. Speak your mind! Open your mind.
Listen to your heart. Is the quotient between yourself and the sum of the sum of
a noble noble mighty blossoming embroidered good father
and a gentle large large normal old joy and an old happy squirrel as yellow as the quotient between
myself and the sum of the sum of a pretty beautiful yellow green bold charming kingdom and
a beautiful blue normal cute large nephew and a pretty big cousin?
Juliet:
If not, we shall proceed to Scene II.
Romeo:
You are as sweet as the remainder of the quotient between yourself and the sum of the sum of
a blossoming bottomless golden peaceful noble healthy nose and
a happy honest sunny green healthy hero and a hard blue fellow.
Juliet:
YOU are as sweet as the remainder of the quotient between yourself and the sum of the sum of
a blossoming bottomless golden peaceful noble healthy nose and
a happy honest sunny green healthy hero and a hard blue fellow.
Scene II: Tense times.
Juliet:
Is the quotient between yourself and the sum of a good beautiful delicious grandmother
and a noble wind as amazing as the quotient between myself and the sum of
a smooth furry embroidered roman and a honest sister?
Romeo:
If so, you are as amazing as the remainder of the quotient between
yourself and the sum of a cute healthy smooth kingdom and a normal mother.
Scene III: Parting is such sweet sorrow.
Romeo:
Open your heart! You are as noble as the sum of a honest charming smooth peaceful fine rose and the sum of
a cute amazing trustworthy summer's day and an angel. Speak your mind!
(ยาวกว่า 6,000 ไบต์) มีลูกเล่นบางอย่างในนั้น แต่ฉันไม่ได้พยายามตีกอล์ฟมากเพราะ: (1) ฉันมีส่วนร่วมในการเล่นกอล์ฟกับคำตอบอื่นแล้วและ (2) เปลี่ยนอักขระทั้งหมดเป็น "หน้า "และ" Puck "หรือวลีทั้งหมดเพื่อ" แมวโตตัวโตตัวโตตัวใหญ่ "ดูเหมือนจะทำให้เสียความสนุก สำหรับส่วนที่เกี่ยวข้องกับตัวเลขโรมันฉันได้ใช้ตัวละครที่เป็นชาวโรมัน ฯลฯ ฉันใช้ตัวอักษรและคำแนะนำเพื่อบันทึกการพิมพ์ :-)
โปรแกรมควรตรงไปตรงมาส่วนใหญ่ แต่หนึ่งรอยย่นที่ควรกล่าวถึงคือเมื่อฉันเขียนสิ่งนี้ฉันสันนิษฐานว่าการอ่านจำนวนเต็มจะทำงานเช่นscanf
: (1) กินตัวอักษรจำนวนมากจากอินพุตที่สอดคล้องกับจำนวนเต็มและ (2) ในกรณี ของความล้มเหลวปล่อยให้ตัวแปรไม่เปลี่ยนแปลง (ฉันใช้คุณสมบัติที่สองนี้เพื่อแยกความแตกต่างระหว่างเทมเพลต 1 และ 2 ใน Act II โดยอ่านถึง "Line" และพยายามอ่านจำนวนเต็ม) โชคไม่ดีที่ปรากฎว่ามี (สิ่งที่ฉันพิจารณา) ข้อผิดพลาดในการใช้งานดั้งเดิมของ ภาษาที่อ่านทุกอย่างที่กินจำนวนเต็มถึงจุดสิ้นสุดของบรรทัดและโยนความผิดพลาดถ้ามันล้มเหลวดังนั้นจึงต้องการแพทช์เพื่อlibspl.c
ที่จะทำให้การประพฤติมากขึ้นเช่นint_input
scanf
และด้วยการทำงาน:
% spl2c < good.spl > good.c
% gcc -lspl -o good good.c
% for f in in-*; do cat $f; echo "->"; ./good < $f; echo "\n"; done
(Act 1, Scene 2, Lines 345-346)
->
(I.ii.345-6)
(Act 3, Scene 4, Lines 34-349)
->
(III.iv.34-349)
(Act 5, Scene 9, Lines 123-234)
->
(V.ix.123-234)
(Act 3, Scene 4, Line 72)
->
(III.iv.72)
(Act 2, Scene 3, Lines 123-133)
->
(II.iii.123-33)
(Act 4, Scene 8, Lines 124-133)
->
(IV.viii.124-33)
pseudocode ระดับสูงกว่าเล็กน้อยที่ฉันทำงานนอกคอกเพื่อช่วยให้ทุกคนพยายามเข้าใจ
Print `(`=40
Read 5 chars
Read Int A
Output A in Roman
Output `.`=46
Read 8 chars
Read Int S
Output S in roman
Output `.`=46
Read 6 chars
Set N to -1
Read Int N
If N ≠ -1 goto finish
Read 2 chars
Read Int M
Output Int M
Output `-`=45
Read 1 char
Read Int N
Reduce N wrt M
finish:
Output N
Print `)`=41
ความสัมพันธ์ข้างต้นกับรหัสสุดท้ายจะถูกปล่อยให้เป็นแบบฝึกหัด :-) โปรดทราบว่า ShakespearePL มีเลขคณิตและสแต็กและ gotos แต่ไม่มีตัวชี้ (เฉพาะป้ายกำกับ) ดังนั้นการใช้ "รูทีนย่อย" เช่นการแปลงเป็นโรมันนั้นค่อนข้างน่าสนใจ