/** * Initialisiert ein neues Spiel */ public void InitGame() { App.getInstance().RootVisual.KeyDown += new KeyEventHandler(Page_KeyDown); App.getInstance().RootVisual.KeyUp += new KeyEventHandler(Page_KeyUp); Figure preview = boardModel.generateRandomFigure(); Figure current = boardModel.generateRandomFigure(); boardModel.setCurrentFigure(current); boardModel.setPreviewFigure(preview); boardModel.getCurrentFigure().newOnBoard(); GameStart(); }
/** * Figur kann nicht weiter fallen, * entweder wird neue Figur erzeugt oder man ist Gameover */ private void FigureIsFallen(Point[] previousPoints) { ghostPoints = null; board.writeCell(points, color); bool gameOver = false; /*Pruefen ob GameOver*/ for (int i = 0; i < points.Length; i++) { if (points[i].Y < 0) { gameOver = true; App.getInstance().gameOver(); } } if (!gameOver) { App.getInstance().NotifyFigureFallen(previousPoints, points, color); List <int> linesToRemove = getLinesToRemove(); /*Hier werden die zu loeschenden Zeilen geloescht*/ board.collapse(linesToRemove); /*Setzt Vorschaufigur als aktuelle Figur und generiert neue Vorschau*/ board.setCurrentFigure(board.getPreviewFigure()); board.setPreviewFigure(board.generateRandomFigure()); board.getCurrentFigure().newOnBoard(); } }