topical media & game development
graphic-processing-learning-18-example-18-6-example-18-6.pde / pde
// Learning Processing
// Daniel Shiffman
// http://www.learningprocessing.com
// Example 18-6: Analyzing King Lear
PFont f; // A variable to hold onto a font
String[] kinglear; // The array to hold all of the text
int counter = 1509; // Where are we in the text (start later b/c Project Gutenberg has licensing info at beginning)
// We will use spaces and punctuation as delimiters
String delimiters = " ,.?!;:[]";
void setup() {
size(200,200);
// Load the font
f = loadFont( "Georgia-Bold-16.vlw" );
// Load King Lear into an array of strings
String url = "http://www.gutenberg.org/dirs/etext97/1ws3310.txt";
String[] rawtext = loadStrings(url);
// Join the big array together as one long string
String everything = join(rawtext, "" );
// All the lines in King Lear are first joined as one big String and then split up into an array of individual words.
// Note the use of splitTokens() since we are using spaces and punctuation marks all as delimiters.
kinglear = splitTokens(everything,delimiters);
frameRate(5);
}
void draw() {
background(255);
// Pick one word from King Lear
String theword = kinglear[counter];
// Count how many times that word appears in King Lear
int total = 0;
for (int i = 0; i < kinglear.length; i ++ ) {
if (theword.equals(kinglear[i])) {
total ++;
}
}
// Display the text and total times the word appears
textFont(f);
fill(0);
text(theword,10,90);
text(total,10,110);
stroke(0);
fill(175);
rect(10,50,total/4,20);
// Move onto the next word
counter = (counter + 1) % kinglear.length;
}
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.