Exemple #1
0
        // create/load a game
        private void SetupGame(MemoryPlayers players = null, Point gridGroote = new Point(), TimerMode timerMode = 0, int nKaartenGelijk = 0, Stream loadStream = null)
        {
            // Check of we een spel moeten laden
            bool loadGame = loadStream != null;

            // setup de benodigde data
            // deze data leest de MemoryGrid en MemoryCards object
            if (loadGame)
            {
                SetupSpeelveldData((Point)loadStream.Load(), (int)loadStream.Load());
            }
            else
            {
                SetupSpeelveldData(gridGroote, nKaartenGelijk);
            }

            // maak de het speelveld in de grid
            memoryGrid.Create(nColumns, nRows);

            // leg de kaarten uit op het speelveld
            memoryCards = new MemoryCards(this, loadStream);

            // setup de game logic
            memoryLogic = new MemoryLogic(this, timerMode, players, loadStream);
        }
        public void Setup(MemoryLogic gameLogic)
        {
            pPlayerGroup = gameLogic.playerGroup;
            pGameStatus  = gameLogic.gameStatus;

            playerGrid.Create(2, 2);

            playerBords  = new List <PlayerBord>();
            bordControls = new List <UIElement>();

            // timer om de kaarten na een tijdje terug te leggen
            popupTimer           = new Timer();
            popupTimer.Interval  = 1000;    // tijd tot kaarten weer terug vallen in ms
            popupTimer.AutoReset = false;   // zorgt dat een timer een keer aftelt

            // registreer de callback functie KaartenTerugLeggen voor het event popupTimer Elapsed
            popupTimer.Elapsed += popupVerwijderen;

            // timer om de speeltijd bij te houden
            timerClock           = new Timer();
            timerClock.Interval  = 1000;
            timerClock.AutoReset = true;

            // registreer de callback functie gameTimerUpdate voor het event timerClock Elapsed
            timerClock.Elapsed += gameTimerUpdate;

            // zet de speeltijd timer aan
            timerClock.Enabled = true;

            int index = 0;

            foreach (MemoryPlayer player in pPlayerGroup.players)
            {
                PlayerBord playerBord = new PlayerBord(this)
                {
                    naam = player.naam, score = player.score
                };
                playerBords.Add(playerBord);

                bordControls.Add(playerBord.pControl);
                playerGrid.AddByIndex(playerBord.pControl, index++);

                if (index == pPlayerGroup.players.Count)
                {
                    playerBord.pControl.Loaded += playerBordsLoaded;
                }
            }
        }