Proč vše vymýšlíš naopak?
Proč prostě červovi plátno nepředáš? Ať už jako property nebo v konstruktoru nebo jako parametr metody na vykreslení...
V té první části jsi se v podstatě dobral k tomu, co jsem psal na začátku.
a pokud to chceš mít opravdu jako OOP, měl bys začít vytvořením základního objektu (jedno pole), které bude mít všechny společné metody.
Od něj odvodíš vykreslení zdí, překážek, červa(ů), laskomin pro červy...