Модуль random
Продовжимо створювати нашу гру. Розглянемо цікавий вбудований модуль random та його функції.
Модуль random
Випадкові числа знаходять безліч застосувань в науці і програмуванні.
Модуль random містить функції для генерації випадкових чисел, букв або випадкового набору елементів послідовності. Для налагодження генератора випадкових чисел використовується системний час, тому при його ініціалізації кожен раз буде генеруватися нова послідовність.
Отримання випадкових чисел засноване на спеціальних алгоритмах, тобто вони не є дійсно випадковими, однак їх такими можна вважати. Інколи такі числа називають псевдовипадкові.
Для роботи з цим модулем його попередньо потрібно імпортувати, тобто вказати команду import random.
random.random(). Повертає псевдовипадкове дійсне число з діапазону [0.0, 1.0).
random.randrange(start, stop[, step]). Повертає псевдовипадкове ціле число від 0 до stop-1 з кроком step. За замовчуванням параметри start=0, step=1.
random.randint(A, B). Повертає псевдовипадкове ціле число, що належить відрізку [A, B]. (A, B - включно)
random.choice(sequence). Повертає один (!) випадковий елемент з послідовності sequence (рядка, списку, кортежу, тощо).
random.shuffle(sequence). Перемішує та повертає елементи послідовності sequence (рядка, списку, кортежу, тощо). Оскільки змінюється сама послідовність, то функція не застосовна для незмінних об'єктів.
random.sample(population, k). Повертає список з псевдовипадкових k елементів послідовності population (рядка, списку, кортежу, тощо). k не може бути більше за довжину послідовності population.
random.seed(X=None, version=2). Налаштування стану генератора випадкових чисел на нову послідовність генерації. Для однакового значення параметра X генеруються однакові послідовності. Як значення параметра X за замовчуванням використовується системний час.
Імпортуємо цей модуль в нашу гру на початку коду:
import random
Використовуючи функцію random.choice() зміну напрямку руху з попереднього уроку можна записати в такій варіації:
if player_rect.bottom >= HEIGHT:
player_speed = random.choice(([1, -1], [-1, -1]))
і подібно для інших сторін.