#!/usr/bin/perl -w use strict; use warnings; use Tk; use LWP::Simple; #Read the predictions my @answers = ; chomp @answers; my $szURL = "http://www.random.org/cgi-bin/randnum?num=1&min=0&max=$#answers&co+l=1"; #Initialise state my $szState = 'Starting...'; #Create main window with a canas and bind the mouse event my $main = new MainWindow; my $canvas = $main->Canvas( -height=>300, -width=>300); $canvas->pack( -expand, -fill ); $main->bind('', \&Display); #Create the fonts my $fontLarge = $canvas->fontCreate( -family=>'arial', -size=>100, -weight=>'bold' ); my $fontSmall = $canvas->fontCreate( -family=>'arial', -size=>10, -weight=>'bold' ); #First time in do the display Display(); MainLoop; sub Display { my ($myFont, $szText, $iPrediction); #Depending on the state do the "right thing" tm. if ($szState eq 'Starting...' or $szState eq 'Prediction') { $szState = 'Displaying 8'; $myFont = $fontLarge; $szText = '8'; } else { $szState = 'Prediction'; $myFont = $fontSmall; $iPrediction = get( $szURL); $szText = $iPrediction ? $answers[$iPrediction] : 'Error!'; } #Over write anything $canvas->createOval( 10, 10, 290, 290, -fill=>'black', -outline =>'black' ); $canvas->createOval( 70, 70, 230, 230, -fill=>'white', -outline =>'white' ); #Put up the message $canvas->createText( 150, 150, -justify=>'center', -text=>$szText, -font=>$myFont, -width=>80 ); } __DATA__ Outlook Good Outlook Not So Good My Reply Is No Don't Count On It You May Rely On It Ask Again Later Most Likely Cannot Predict Now Yes Yes, Definitely Better Not Tell You Now It Is Certain Very Doubtful It Is Decidedly So Concentrate and Ask Again Signs Point to Yes My Sources Say No Without a Doubt Reply Hazy, Try Again As I See It, Yes