Игра «2048» · Шаг 4 из 5
Новая плитка
После каждого сдвига на поле появляется новая плитка: в случайной свободной клетке, обычно двойка, иногда — раз в десять ходов — четвёрка. Случайность приходит аргументом, как во всех играх сайта.
Что сделать
Выберите, где и какая появится новая плитка после хода.
Что приходит
pole— поле,0— пустоsluchay— генератор случайностей, какrandom.Random
Что вернуть
Тройку (ряд, столбец, значение): клетка — sluchay.choice из свободных по рядам, значение — 4, если sluchay.random() меньше 0.1, иначе 2; свободных нет — None.
Допишите функцию novaya_plitka в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Игра зовёт novaya_plitka дважды в начале партии и по разу после каждого хода. Решите шаг — и плитки будут появляться в случайных местах, иногда четвёрками.
Без этого шага: новая плитка — всегда двойка в первой свободной клетке.
Поле 2×2: [[2, 0], [0, 4]], свободны (0, 1) и (1, 0). Генератор с затравкой 3 сначала выбирает клетку (0, 1), потом random() даёт больше 0.1 — значит, двойка. Ответ: (0, 1, 2).
import random sl = random.Random(3)
novaya_plitka([[2, 0], [0, 4]], sl)
(0, 1, 2)
Функция принимает поле (0 — пусто) и генератор случайностей sluchay (как random.Random). Если свободных клеток нет — возвращает None. Иначе:
- клетка —
sluchay.choice(...)из свободных клеток, перечисленных по рядам сверху вниз, в ряду слева направо; - значение — 4, если
sluchay.random()меньше 0.1, иначе 2. Возвращает кортеж(ряд, столбец, значение). Именно в этом порядке обращений к генератору: сначала клетка, потом значение.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.