Игра «Три в ряд» · Шаг 3 из 5
Досыпать сверху
После падения наверху остаются пустые клетки, и игра заполняет их новыми случайными камнями. Случайность здесь общая на всю партию — её выбирает генератор, который приходит доводом, — и чтобы партию можно было переиграть заново, клетки заполняются в одном и том же порядке.
Что сделать
Заполните пустые клетки поля новыми случайными камнями — по строкам сверху вниз, в строке слева направо.
Что приходит
pole— список строк;.— пустая клеткаcveta— строка цветов, например"ROYGBP"sluchay— генератор случайностей, какrandom.Random
Что вернуть
Новое поле — список строк: каждая . заменена на sluchay.choice(cveta), остальные клетки — как были.
Допишите функцию dosypat в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт dosypat после каждого падения и в начале партии, на пустом поле. Решите шаг — и новые камни станут случайными.
Без этого шага: новые камни не случайные — каждая клетка всегда получает один и тот же цвет, и поле повторяется.
dosypat(["R.", ".G"], "RGB", random.Random(1)): пустых клеток две — (0, 1) и (1, 0), генератор выбирает им по цвету по очереди, и камни R и G остаются на месте.
import random
dosypat(["R.", ".G"], "RGB", random.Random(1))
['RR', 'BG']
Пустые клетки обходятся по строкам сверху вниз, в строке — слева направо. На каждую пустую клетку — ровно один вызов sluchay.choice(cveta), на занятые — ни одного: генератор общий на партию, и лишний вызов сдвинул бы все следующие камни.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.