11. Игральные кубики.
Условие:
Составить словарь (программно), где ключ - это сумма очков на двух кубиках, а значение - перечень всех комбинаций, которые дадут это количество очков.
Сделать словарь списков списков:
dice = {
2: [[1, 1]],
...
6: [[1, 5], [2, 4], [3, 3], [4, 2], [5, 1]],
7: [[1, 6], [2, 5], [3, 4], [4, 3], [5, 2], [6, 1]],
...
12: [[6, 6]]
}
Код:
# ввод данных (без проверки)
number = int(input("Введите максимальное значение кубика (любое натуральное число): "))
number_range = range(1, number + 1) # эту переменную будем обходить в цикле
number_range2 = range(1, number + 1) # эта переменная создана для второго кубика
result_dict = dict() # составим словарь, где ключ - это сумма, а его значения - это комбинации очков на кубиках
for i in number_range: # обойдём значения кубиков в цикле
for i2 in number_range2:
amount = i + i2 # сумма меняется в цикле
if amount not in result_dict.keys():
result_dict[amount] = [[i, i2]] # создаём ключ в словаре (это сумма) со значением
elif amount in result_dict.keys():
result_dict[amount] += [[i, i2]] # ключ в словаре уже есть, прибавляем ещё одну вариацию к значению ключа (это сумма) в словаре
# обойдем в цикле значения ключ:значение для печати
for i in result_dict.items():
print(i)