Skip to main content
6 of 7
Retag
emanresu A
  • 44.3k
  • 5
  • 100
  • 240

Bring my memories about Geronimo Stilton back

If you have read in your childhood a Geronimo Stilton's book i am sure that you remember the style of the text, sometimes the words was decorated for making the act of reading more funny for kids, example

But when you are an adult you dont have that little entertainment in your readings... why? In a nostalgic attack i have decided to make an algorithm to create that output with every text in the world

Its not very similar, but its curious

Idea:

Make a program that with an input like this:

It was in the morning of June 21, and I had just set
paw in the office. Right away I could tell it wasn't
going to be a good day. My staff was running
around like a pack of rats in a maze. And everyone
was complaining about something.
"Geronimo, the air-conditioner's broken!"
yelled my secretary, Mousella MacMouser.
"Geronimo, we are run out of coffee!" shrieked
Blasco Tabasco, one of my designers.
"Geronimo, the computers are all down!"
cried my proofreader. Mickey Misprint.

Create an output like this:

output

or this:

enter image description here

(This outputs are an image because there is two ways to create the output, show it in your program some way or create an output html like mine) thats my truly output:

<font face="Verdana">It was in the morning of June 21, and I had just set </br>
paw in the <b><font face="Comic Sans MS" size="5" style="color:rgb(111,229,136);">office</font></b>. Right away I could tell it wasn't </br>
going to be a good day. My staff was <b><font face="Comic Sans MS" size="5" style="color:rgb(77,170,241);">running</font></b> </br>
around like a pack of rats in a maze. And everyone </br>
was complaining about something. </br>
"Geronimo, the air-conditioner's broken!" </br>
<b><font face="Comic Sans MS" size="5" style="color:rgb(174,152,239);">yelled</font></b> my secretary, Mousella MacMouser. </br>
"Geronimo, we are run out of coffee!" shrieked </br>
Blasco Tabasco, one of my <b><font face="Comic Sans MS" size="5" style="color:rgb(101,139,153);">designers</font></b>. </br>
"Geronimo, the computers are all down!" </br>
cried my <u><font face="Comic Sans MS" size="5" style="color:rgb(70,164,71);">proofreader</font></u>. Mickey Misprint. </br>
</font>

Algorithm:

I have made an example of the algorithm (not golfed) in java: Here is it This is the list of steps that you have to follow starting whit the base input:

  1. Start catching a random word in position 5-20(words)
  2. If the word is less or equals to 3 char long her a catch the next word until you find someone whit more than 3 char
  3. "Clean the word", the transformed word cant contain characters like " or .. The modified word has to starts and end whit [A-Z][a-z] and only whit that characters so... clean it if you need is the 3th step
Examples of this step:
if you word is    | word cleaned
------------------|----------------
"Geronimo,        | Geronimo
final.            | final
air-conditioner   | air-conditioner  (Dont remove special characters inside the word)
  1. Put it randomly (1/3 cases) in bold, cursive or underlined (Only one at the same time for word)
  2. Give the word a bigger size than the rest of the text (how much big is your election)
  3. Give the word a random color (Try to make this in the most rangue of colors that you can, in my code creates an rgb with java random function in every color that goes from 0 to 255)
  4. Give the word any font... (What you want, doesnt matter what you use but must be diferent to the text font)
  5. from this word repeat the 1º step for grab a new one random word next to this

Example of algorithm:

In step one by a random decision betwen 5 and 20 you have to start in word 7 for example:
It was in the morning of *June* 21, and I had just set
paw in the office.

On time that you have modified that word you start again the random fuction and 
you add the result to your actual position for get the next word... the result 
of the random function this time has been 8:
It was in the morning of *June* 21, and I had just set
paw *in* the office.

But that word is 2 char long and the next one too so we take the word "office"
It was in the morning of *June* 21, and I had just set
paw in the *office.*

Office has a point at the end, lets clean it:
It was in the morning of *June* 21, and I had just set
paw in the *office*.

And the last step is modify this last word

Rules

  • As i have said, the output can be show in your program (or directly in html if you uses javascript or something like that) or ouputs an html text whit all the properties in it.
  • The structure of the html can be as you want always that when you execute it the result follow the rules. Basically, you dont have to make it like my example output.
  • The base font and size can be what you want, i have used Verdana in my example because i think that the output is more... "beautiful"? and my code is not golfed.
  • If you can put a picture to the executed html in your solution please.
  • In reference to the randomness, the only thing that is relevant is that the output text has diferent colors, styles and words every time you run the program, if there is a more probably options (for example red is more problably than green at the color) dont mind.
  • And in reference to the randomness of the colors, its not necesary that all colors are contempled in the output, try to put the most color you can... I know that this is not very mathematecally precise because is a problem to talk about colors when there is so much ways to create them (rgb, hexadecimal, hsv...) so im going to try to put a "minimal" rule:
  • Lets say that the "extreme" colors must have non 0 probability, for example in rgb i mean that this colors are mandatory: 0,0,0 255,255,255 255,0,0 0,255,0 0,0,255 255,0,255 0,255,255 255,255,0 but if you want you can use too the colors in betwen (That is the principal idea) And if for some reason you cant use that rule of extreme colors have in mind that at least the output must be 8 diferent colors.
  • This is codegolf so the shortest code wins