topical media & game development

talk show tell print

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.