def _is_name_and_number_set_a_score(names, numbers):
    """Return True if numbers can be interpreted and a match or game result.

    ' 1 0 ', '2 0', '0.5 0.5', '0.5 3.5'. and similar, can mean game or match
    scores.  Add in a third number and it must mean a board number and a game
    or match score, if it has meaning at all.

    A single ' 0.5 ' must mean a drawn game, being a short form of ' 0.5 0.5 ',
    like ' 1-0 ' meaning ' 1 0 ' and so forth.  ' draw ' fits with ' 1-0 ' in
    more reasonable way.  But ' 1 ' meaning ' 1-0 ' is not allowed.

    ' 2 0.5 ', '2.1 0.5 ', ' 0.5 3.6 ', and similar, must be a board number and
    drawn game, if the combination has meaning at all.

    """
    if not len(names) in {1, 2}:
        return False
    if len(numbers) == 3:
        return True
    if len(numbers) != 2:
        return False
    if len([n for n in numbers if n.endswith(".5")]) == 1:
        return False
    return True