%========================================================================================
% TU Dortmund, Informatik Lehrstuhl VII
%========================================================================================

\chapter{Probleme und L{\"o}sungen}
\label{Probleme_und_Loesungen}
%
Im folgendem Abschnitt werden einige Probleme, die bei der Implementierung des Projektes aufgekommen sind, beschrieben und des weiteren werden verschiedenen L{\"o}sungsans{\"a}zen dazu vorgestellt.

\section{Bewegung der Schlange}
\label{Bewegung der Schlange}
%
Bei der Implementation der Schlange wurde am Anfang erst ein Quadrat erstellt, danach musste die Bewegung hinzugef{\"u}gt werden. Da am Anfang noch keine Bildschirmrate gab, konnte die Schlange in jede Richtung in Echtzeit laufen, je nach Eingabe der Richtung. Um die Schlange in direkter Diagonalen Richtungen zu vermeiden, wurde die Bewegung in Horizontaler- und Vertikaler-Achse beschr{\"a}nkt. Das Problem war, dass die Schlange in die entgegengesetzte Richtung laufen kann, d.h. die Schlange konnte durch sich selbst durchlaufen.

Der erste L{\"o}sungsansatz war mit Hilfe von einer Variable die aktuelle Richtung zu speichern um je nachdem in die andere Achse zu laufen. Damit wird verhindert direkt in die entgegengesetzte Richtung zu laufen. Jedoch wurde das Problem noch nicht behoben, da durch gleichzeitige benutzen von mehreren Richtungseingaben die Variable eine falsche Richtung erh{\"a}lt und somit die entgegengesetzte Richtung erlaubt. Dies kann so schnell passieren, sodass die Schlange die zweite Richtung nicht wahrnimmt und sofort in die entgegengesetzte Richtung l{\"a}uft.

Deshalb gab es es eine endg{\"u}ltigen L{\"o}sungsansatz, welcher mit zwei Variablen und mit der Methode, die jeden Schritt der Schlange verarbeitet, arbeitet. Die Variablen sind dabei einmal $p1Direction$ (f{\"u}r Player1 und Player2 p2Direction) f{\"u}r die aktuelle Richtung und $p1NextDirection$ (f{\"u}r Player1 und Player2 p2NextDirection) f{\"u}r die n{\"a}chste Richtung. Die Idee mit dem verhindern der Achse bleibt. Jedoch wird die aktuelle Richtung erst der neuen Richtung gesetzt, sobald die Schlange sich um ein Feld bewegt. 
%
\section{Elemente Erzeugen}
\label{Elemente Erzeugen}
%

%
\section{Spielleistung}
\label{Spielleistung}
%

%
