public Player(Board b, ModelLevel m, ModelScore s, MainWindow mw) { board = b; levelModel = m; scoreModel = s; windowMain = mw; }
// vraag 4 punt 1: private int zoekInsertPositie(ModelScore score) { if (scores.Count == 0) { return 0; } int lowerbound = 0; int upperbound = scores.Count - 1; int middle; int compareResult; while (true) { middle = (upperbound + lowerbound) / 2; compareResult = score.compareTo(scores[middle]); if (compareResult == 0) { return middle; //Hetzelfde element staat hier al! (rekening houdend dat dubbele waarden mogen voorkomen, kan hier de nieuwe waarde bij komen. } else if (lowerbound > upperbound) { return lowerbound; //Plaats gevonden voor het nieuwe element. } else if (compareResult < 0) { upperbound = middle - 1; //Element moet in de onderste helft toegevoegd worden. } else if (compareResult > 0) { lowerbound = middle + 1; //Element moet in de bovenste helft toegevoegd worden. } } }
/** * Methode om 2 ModelScore objecten te vergelijken. * Eerst word naar het aantal moves gekeken. Daarna naar de tijd. */ public int compareTo(ModelScore score) { int compare = moves.CompareTo(score.moves); if (compare == 0) { compare = time.CompareTo(score.time); } return compare; }
public void saveScore(ModelScore score, String level) { getHighScore(level); int insertAt = zoekInsertPositie(score); scores.Insert(insertAt, score); StreamWriter sw = new StreamWriter(file); foreach (ModelScore arrayScore in scores) { sw.WriteLine(arrayScore.PlayerName + ";" + arrayScore.Moves + ";" + arrayScore.Time); } sw.Close(); }
public InfoGrid(ModelLevel ml, ModelScore t) { levelModel = ml; scoreModel = t; this.Width = levelModel.InfoGridWidth; var bc = new BrushConverter(); this.Background = (Brush)bc.ConvertFrom("#FF5EC5F5"); createGrid(); createTimer(); clock = new System.Windows.Threading.DispatcherTimer(); clock.Tick += new EventHandler(clock_Tick); clock.Interval = new TimeSpan(0, 0, 1); clock.Start(); initAll(); }
public void startLevel(string level) { levelModel.StartupLevel = level; levelReader.readMapString(); levelReader.readMapObject(); levelModel.LevelStarted = true; //Change the width and height and the title of the window this.Width = 16 + (levelModel.ColumnLenght * levelModel.CellSize) + levelModel.InfoGridWidth; this.Height = 39 + (levelModel.RowLenght * levelModel.CellSize); this.MinHeight = 39 + (8 * levelModel.CellSize); this.Title = "Sokoban: " + levelModel.StartupLevel; colInfoGrid.Width = new GridLength(levelModel.InfoGridWidth); if (board != null) { board.Visibility = Visibility.Collapsed; infoGrid.Visibility = Visibility.Collapsed; } board = new Board(this.levelModel); board.SetValue(Grid.ColumnProperty, 0); board.SetValue(Grid.RowProperty, 0); gameGrid.Children.Add(board); scoreModel = new ModelScore(); infoGrid = new InfoGrid(this, this.levelModel, scoreModel, highScore); infoGrid.SetValue(Grid.ColumnProperty, 1); infoGrid.SetValue(Grid.RowProperty, 0); gameGrid.Children.Add(infoGrid); player = new Player(board, levelModel, scoreModel, this); mainGrid.Visibility = Visibility.Collapsed; gameGrid.Visibility = Visibility.Visible; }