Tak s myšlením ti možná trošku pomůžu. Takové ty "hlavní" stavební prvky:
1) herní plocha - Bude to dvourozměrné pole, jehož buňky budou nabývat 4 hodnot (nic, zed, had, jidlo)
2) had - Bude to jednorozměrné pole (nebo spíše dynamické pole co se může natahovat) a prvkem tohoto pole budou souřadnice (X,Y) toho jednoho článku hada v té herní ploše. Na indexu 0 (ikdyž ted nevím delphi to možná indexuje od 1, takže prostě na začátku) bude jeho hlava, a postupně bude růst směrem k vyšším indexům.
3) Pohyb hada - Vždy když se had pohne o 1 pozici, tak nejprve zkontroluješ zda poslední a předposlední článek hada nejsou na stejné souřadnici, pokud ne tak z herní plochy smažeš článek hada na souřadnici, která je uložená na konci toho "hadího pole" (tj jeho ocas), následně to pole projdeš od posledního prvku do druhého prvku. A v tom cyklu budeš kopírovat souřadnice z předchozího indexu na ten aktuální. (nelze to dělat od začátku - od hlavy, to by sis vše přepsal stejnou hodnotou) To posune téměř celého hada až na hlavu. A pak podle "proměných" určujících směr určíš novou pozici pro hlavu a zapíšeš jí do hadího pole na první index. Pak v herní ploše zkontroluješ zda na souřadnicích nové hlavy něco není a podle toho se zachováš. (když nic nebude, umístíš tam hlavu, když tam bude zed nebo jiná část hada, tak game over a když tam bude jídlo, tak tam zase umístíš hlavu a navíc protáhneš tělo hada o 1 článek (stačí když ten poslední článek zkopíruješ se stejnou souřadnicí a dáš ho na konec toho pole).
4) Reakce na klávesy - Doporučuju proměnou kde bude uložený směr pohybu hada. a při stisku šipky zjistit co se stisklo a podle toho tu proměnou nastavit.
5) Snědení jídla - když při pohybu hada dojde ke snězení jidla, tak je nutné vygenerovat nové na náhodných souřadnicích a umístit ho do herního pole. A náhodně souřadnice generovat tak dlouho dokud se netrefíš do místa, kde je "prázdno". Případně třeba vyhlásit výhru, pokud pro postup do dalšího kola stačí sníst X kousků.
6) Timer - celou hru bude pohánět timer (nebo nějaký časovač), který s intervalem cca 0,5s (změnou intervalu lze regulovat rychlost pohybu) bude spouštět tu funkci na pohyb hada.
Tohle je imho takový ten "základ enginu" co bude potřeba. Jakým způsobem budeš zobrazovat herní plochu a jak budeš detekovat zmáčklé klávesy nechám na tobě. Ale když to co jsem tu popsal převedeš do kódu, tak budeš mít funkční prototyp.
Pak to můžeš vyšperkovat třeba tím, že budeš mít různé mapy nějakých tvarů, nebo třeba přecházení mezi horní/dolní a levou/pravou hranou. případně zvuky, atd.