Danke für diesen Source-Code. Helfen kann ich dir aber nicht.
Mein Tipp, Teile grosse Problemstellungen in viele kleine auf, heisst unter anderem, fang mit etwas an das du verstehst, und arbeite dich sodann langsam aber sicher nach oben.