Shall I Compare Thee to a Summer’s Day?
Everybody wrote this; it is still too tempting not to mention it here.
William Shakespeare’s Sonnet - Shall I Compare Thee to a Summer’s Day?.
// Sonnet 18: Shall I compare thee to a summer's day? by William Shakespeare
// ported to ActionScript 2.0 by Satori Canton
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);