コード例 #1
0
ファイル: map.py プロジェクト: Tweety-7/npuzz
def validate_map(b):
    nums = [parse_int(s) for s in b.split("/")]
    dict_count = {i: nums.count(i) for i in nums}
    if max(dict_count.values()) > 1:
        [
            Printer.print_error(f'map error: duplicated number {key}')
            for key, val in dict_count if val > 1
        ]
        sys.exit(1)
    if list(filter(lambda x: x >= len(nums) or x < 0, nums)):
        for n in nums:
            if n >= len(nums) or n < 1:
                Printer.print_error(
                    f'map error: invalid number {n}: must be in range 0:{int(math.sqrt(nums))}'
                )
        sys.exit(1)