Shall I Compare Thee to a Summer's Day?

Tue, Mar 21, 2006

Everybody have blogged this; it is still too tempting not to re-blog it.

William Shakespeare's Sonnet - "Shall I Compare Thee to a Summer's Day? (Shall I Compare Thee to a Summer's Day?)":http://www.google.com/search?hl=en&q=Shall+I+compare+thee+to+a+summer%27s+day%3F&btnG=Google+Search told in "ActionScript 2.0 (Shakespeare's sonnet in ActionScript 2.0)":http://www.heavyflash.com/poetry/Shakespeare_Sonnet18.html.

Via: "Digg ()":http://digg.com/programming/William_Shakespeare_s_Sonnet_18_Ported_to_ActionScript_2.0, "Justin Everett (Justin Everett)":http://justin.everett-church.com/index.php/2006/03/20/actionscript-is-pure-poetry/, "Mike Potter (Mike Potter)":http://blogs.adobe.com/mikepotter/2006/03/shakespeare_and.html

Reproduced here for the archives;

bc[as]. // Sonnet 18: Shall I compare thee to a summer's day?
// by William Shakespeare
// ported to ActionScript 2.0 by Satori Canton
//
// Original poem can be viewed at:
// http://plagiarist.com/poetry/915/
//
var summer:Object = {};
var thee:Object = {};
summer.name = "Summer Day";
thee.name = "Thee";
summer.lovelyness = 9;
thee.lovelyness = 10;
summer.temperature = 98;
thee.temperature = 98.6;
summer.lease = new Date(2006, 7, 31).getTime() - new Date(2006, 5, 1).getTime();
thee.lease = new Date(2042, 6, 12).getTime() - new Date(1970, 8, 25).getTime();
summer.complexion = 0xFFCC33;
thee.complexion = 0xFFCCCC;
summer.fair = 10;
thee.fair = 10;
//
summer.getValue = function():Number {
return --this.fair;
};
thee.getValue = function():Number {
return this.fair;
};
summer.incrementTime = function():Number {
return --this.lease;
};
thee.incrementTime = function():Number {
return this.lease;
};
//
var man:Object = {};
man.hasEyes = true;
man.canBreath = true;
man.lease = 10000;
man.liveLong = function():Void {
this.lease *= 10;
};
man.giveLife = function(o:Object):Void {
o.lease++;
trace(o.name + " is given life");
};
man.compare = function(o1:Object, o2:Object):Void {
if (this.canBreath && this.hasEyes) {
this.liveLong();
var n1:Number = 0;
var n2:Number = 0;
var o1isBetter:Boolean;
for (var i in o1) {
if (typeof (o1[i]) == "function") {
o1isBetter = o1[i]() > o2[i]() ? true : false;
} else {
o1isBetter = o1[i] > o2[i] ? true : false;
}
n1 += Number(o1isBetter);
n2 += Number(!o1isBetter);
}
this.giveLife(n1 > n2 ? o1 : o2);
}
};
man.compare(summer, thee);