Для создания фабрики изображений в C# для Windows вы можете использовать классы `Bitmap`, `Graphics` и `Image` из пространства имен `System.Drawing`. Вам потребуется создать методы, которые будут принимать различные параметры (например, размеры изображения, цвет фона и так далее) и возвращать новые экземпляры `Bitmap` с заданными параметрами.
Кроме того, вам может понадобиться загружать изображения из файлов, если вы хотите использовать существующие картинки в вашей фабрике. Для этого можно использовать метод `Bitmap.FromFile()`.
Чтобы заполнять хвост змейки картинками без написания отдельного кода для каждой картинки, вы можете создать коллекцию (например, словарь или список) для хранения связок между значениями (например, состояние змейки) и соответствующими изображениями. Вместо того, чтобы вручную создавать новые экземпляры `Bitmap` для каждого состояния хвоста змейки, вы можете просто получать нужное изображение из коллекции с помощью ключа (например, индекса состояния) и использовать его для отображения.
Таким образом, можно создать фабрику картинок, где каждой картинке соответствует определенное значение или ключ, и использовать эту фабрику для эффективного управления изображениями в вашей игре на winforms. Вы сможете динамически изменять изображения, обновлять их или добавлять новые без написания отдельного кода для каждой картинки.