编程介的小学生 2019-09-07 21:57 采纳率: 20.5%
浏览 165

根据语法用程序生成的问题,怎么实现

Problem Description
In all the annals of knighthood, no personality trait has been in more dire need than the fortitude to withstand the diplomatically deleterious effects of a vicious, relentless taunting. Tasked with strengthening the mental endurance of Camelot’s knights, King Arthur's court decided that instructional taunting must be applied, yet it could not be delivered by the chivalrous administration. Thus, Sir Lancelot commanded a local anarcho-syndicalist peasant to write a program that generates taunts (a.k.a. mudslinging) thereby producing a script to test the patience of knights in a training environment. To prevent unbridled creativity in taunting from spoiling the otherwise stately proceedings of a nobleman’s education, the following rules designed by committee (The Round Table) must be adhered to:

::= | | ! |
::= | |
::=
::= |
::= |
::= your
::= your
::= steed | king | first-born
::= mother | father | grandmother | grandfather | godfather
::= hamster | coconut | duck | herring | newt | peril | chicken | vole | parrot | mouse | twit
::= is | “masquerades as”
::= was | personified
::= a
::= silly | wicked | sordid | naughty | repulsive | malodorous | ill-tempered
::= conspicuously | categorically | positively | cruelly | incontrovertibly

Note that all phrases in double quotes are to be treated as one word for taunt simulation output.

The number of taunts elicited at any given time is derived from the number of words spoken by the knight. For every three words (or fraction thereof) delivered by the knight, the generator produces one or more taunts in a theater-style script format. In the event that 2 taunts must be produced on a single line, they will be counted as 2 taunts towards the total required. By a mandate from the masses, a word will always contain at least one alphabetic character, and will be separated from other words by at least 1 space.

In exception to the above rules, whenever the program finds the holy grail, which is to say, the letters t-h-e-h-o-l-y-g-r-a-i-l (case insensitive) in that order in a line of input, then the first taunt generated will be displayed by the program as "(A childish hand gesture)".

To ensure all royal quality assurance criteria are met, the program must be demonstrated by a simulation showing the taunts produced from a series of inputs. Each taunt is generated by applying the taunt generation rules until all of the <...> have been replaced with appropriate words. In most cases, you will face a choice of alternate rules for expanding a phrase name. In these cases, you should make a choice as follows: Suppose that this is the kth such choice that you have faced for that rule since the start of program execution, and that you must choose one of n rules for expanding a given kind of phrase. Let the rules for that phrase be numbered from 1…n in the order of appearance above, and then choose rule number ((k-1) mod n) + 1.

Well, get on with it!

Input
The input will consist of an unspecified number of lines. Each line will contain a statement uttered by a knight consisting of letters, digits, the characters ",.-!?" and whitespace. Each line of input will be more than 1 character and less than 72 characters in length. All words will be separated by whitespace. Each statement will contain at least one word.

Output
For every line of input, print a block of output containing the following:
A single line containing "Knight:", a space, and the input. Any appearance of whitespace inside the input will be replaced by a single space.

All taunts (as explained in the above rules) prefaced by "Taunter:" and a space, the taunt, and a period. Each word should be separated from neighboring words by a single space.

A blank line
Each taunt should begin with a capital letter, and no extra characters should be added.

Sample Input
Hello!
Are you feeling alright?
Is there someone else I could talk to?
Anyone at all?
We seek the holy grail . . .

Sample Output
Knight: Hello!
Taunter: Your mother was a hamster.

Knight: Are you feeling alright?
Taunter: Coconut! Your steed is a silly duck.

Knight: Is there someone else I could talk to?
Taunter: Your father personified a herring.
Taunter: Your grandmother was a newt.
Taunter: Peril! Your king masquerades as a conspicuously wicked chicken.

Knight: Anyone at all?
Taunter: Your grandfather personified a vole.

Knight: We seek the holy grail . . .
Taunter: (A childish hand gesture).
Taunter: Your godfather was a parrot.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
    • ¥15 用C语言输入方程怎么
    • ¥15 网站显示不安全连接问题
    • ¥15 github训练的模型参数无法下载
    • ¥15 51单片机显示器问题
    • ¥20 关于#qt#的问题:Qt代码的移植问题
    • ¥50 求图像处理的matlab方案
    • ¥50 winform中使用edge的Kiosk模式
    • ¥15 关于#python#的问题:功能监听网页
    • ¥15 怎么让wx群机器人发送音乐