echo $begrüßung;
Zum Problem: Es hat sich ein Bug gezeigt, den ich einfach nicht lokalisieren kann.
Welche Maßnahmen hast du bereits ergriffen? Stimmen die Werte der betroffenen Variablen mit den von dir zum jeweiligen Zeitpunkt erwarteten überein? Sicherlich nicht. Hier gilt es zunächst die Differenz zu Wunsch und Wirklichkeit herauszufinden. Weitere Maßnahmen ergeben sich dann daraus.
Es kann sich eigentlich nicht um einen Logikfehler handeln, denn der würde ja bereits zu Beginn des Spiels auftreten. Andererseits tritt der Fehler in allen getesteten Browsern auf (Mozilla, IE, Opera) unter WIN2000.
Was ist Logik und was nicht? Fehlerhaft initialisierte Variablen, Inhalte die man nicht erwartet hat, ... zählt sowas nicht zur Logik?
Der kritische Punkt im Programm ist der Zeitpunkt, wo die Koordinaten des aktuellen Steins (var piece) beim "aufsetzen" (m==1) in das Array v eingetragen werden,
Der kritische Punkt, der mir das Debugging vermiest sind für mich eher deine Variablenbezeichner und die zu wenigen Quelltext-Kommentare. Verwende sprechende Bezeichner. Einzelne Buchstaben, auch wenn du deren Bedeutung einmal kommentiert hast, sparen zwar ein wenig Tipparbeit, verringern die Verständlichkeit unnötig. Auch newArr usw. sind keine sprechenden Variablennamen. Die verwendete Technik (hier ein Array) ergibt sich aus dem Programmablauf (z.B. bei der Initialisierung der Variablen). Den Sinn dieser Variablen aus dem Programm heraus verstehen zu müssen ist schwieriger.
Funktionalitäten in Funktionen zu packen ist schon sehr sinnvoll. Noch besser zum Verständnis der Funktion wäre eine Beschreibung ihrer Aufgabe (die etwas ausführlicher als deine Kurzkommentare sein darf), ihrer Parameter die sie erwartet und das Rückgabeergebnis. Ebenso gehört in die Beschreibung, welche globalen Variablen sie verwendet/verändert (wenn sich sowas nicht generell vermeiden lässt).
echo "$verabschiedung $name";
P.S: Ich habe bei vielen Tetris-Spielen, die mir so über den Weg liefen, und auch bei diesem, den Eindruck, dass die langen Steine (4x1) viel zu selten auftauchen.
P.P.S: Wenn du den Fehler nicht findest, verkauf es als Feature... (-: