// 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 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); }
public void ExitGame() { memoryGrid.Delete(memoryCards.lSymboolButtons); memoryCards = null; memoryLogic.ExitGame(); }