Beispiel #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);
        }
Beispiel #2
0
        public MemoryLogic(MemoryGame game, TimerMode timerMode, MemoryPlayers players, Stream loadStream = null)
        {
            // Check of we een spel moeten laden
            bool loadGame = loadStream != null;

            // copieer de benodige data vanuit het memorygame object game
            currentGame    = game;
            context        = currentGame.context;
            memoryCards    = currentGame.memoryCards;
            gameInterface  = currentGame.context.gameInterface;
            nKaartenGelijk = currentGame.nKaartenGelijk;

            // deze lijst gebruiken we om de zetten te onthouden
            moves = new List <Move>();

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

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

            // maak de feedback overlay images
            KaartFeedback = new MemoryOverlays(currentGame);

            // Setup de player data
            if (loadGame)
            {
                playerGroup = loadStream.Load() as MemoryPlayers;
            }
            else
            {
                playerGroup = players;
            }

            // als een nieuwe game word gestart dobbelen we wie start
            if (!loadGame)
            {
                playerGroup.aanZet = Global.RandomNumberGenerator.Next(playerGroup.players.Count);
            }

            // setup of herlaad de game status
            if (loadGame)
            {
                gameStatus = loadStream.Load() as GameStatus;
            }
            else
            {
                gameStatus = new GameStatus(timerMode, currentGame.nKaartenUniek);
            }

            // setup het game interface
            gameInterface.Setup(this);
        }
Beispiel #3
0
 public void ExitGame()
 {
     memoryGrid.Delete(memoryCards.lSymboolButtons);
     memoryCards = null;
     memoryLogic.ExitGame();
 }