public bool IsMatch(string s) => (s.Length == 1 && BallReader.IsStrike(s[0]));
public BaseFrame GetFrame(string s) => new Open( BallReader.GetPins(s[0]), BallReader.GetPins(s[1]) );
public bool IsMatch(string s) => ( s.Length == 2 && BallReader.IsValid(s[0]) && BallReader.IsValid(s[1]) );
public bool IsMatch(string s) => (s.Length == 2 && BallReader.IsSpare(s[1]));
public BaseFrame GetFrame(string s) => new Spare(BallReader.GetPins(s[0]));
public BaseFrame GetFrame(string s) => new FinalStrike( BallReader.GetPins(s[1]), BallReader.GetPins(s[2]) );