示例#1
0
 public Player(Board b, ModelLevel m, ModelScore s, MainWindow mw)
 {
     board = b;
     levelModel = m;
     scoreModel = s;
     windowMain = mw;
 }
示例#2
0
        // 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.
                }
            }
        }
示例#3
0
 /**
  * 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;
 }
示例#4
0
        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();
        }
示例#6
0
        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;
        }