Я вот вообще не хотел опускаться в разговоре до конкретного кода, просто потому что всегда есть 100500 способов решить задачу, и какой из них оптимальный, зависит от множества факторов. А когда начинаешь приводить код, выглядит так что ты настаиваешь на конкретно таком вот решении. А я вообще никак не настаиваю, просто показываю возможный вариант, ОК?

Код AS3:
package
{
public class Character
{
private var _strength:int = 50;
private var _intelligence:int = 50;
private var _agility:int = 50;
public function Character()
{
}
public function get strength():int
{
return _strength;
}
public function get intelligence():int
{
return _intelligence;
}
public function get agility():int
{
return _agility;
}
}
}
////--------------------------
package
{
public class Hash
{
static public const AGILITY:String = "agility";
static public const STRENGTH:String = "strength";
static public const INTELLIGENCE:String = "intelligence";
static private const HINTS:Object =
{
strength: ["слабак", "атлет", "силач"],
intelligence: ["дурак", "умник", "ботан"],
agility: ["тюфяк", "ловкач", "гимнаст"]
}
static public function getHint(propName:String, propValue:int) : String
{
if (propValue < 30) return HINTS[propName][0];
if (propValue > 70) return HINTS[propName][2];
return HINTS[propName][1];
}
}
}
////----------------------
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
private var _character:Character;
public function Main()
{
_character = new Character();
trace(Hash.getHint(Hash.STRENGTH, _character[Hash.STRENGTH]));
trace(Hash.getHint(Hash.INTELLIGENCE, _character[Hash.INTELLIGENCE]));
trace(Hash.getHint(Hash.AGILITY, _character[Hash.AGILITY]));
}
}
}