В любой мобильной игре используются регулярные сетки, они же матрицы. Одна сетка всегда на виду — это экран телефона размера MxN. Кроме того, в Тетрисах и Лайнсах явно видны и другие, игровые сетки. В ААА играх матрицы спрятаны, но мы знаем, что они существуют. И, да, зеленые — самые опасные.
При работе с сетками возникает столько сладких задач, что от вожделения поскорее их решить, пот капает с пальцев на клавиатуру. Одна из таких задач — заполнить матрицу случайными значениями. Например, есть сетка 5x5, которую надо заполнить 24 шариками 4 цветов. Должно быть 6 шариков каждого цвета и одна дырка. Псевдо-код примерно такой:
var items = [Int]()
let nItems = 25
let nColors = 4