public MemoryCards(MemoryGame game, Stream loadStream = null) { // Check of we een spel moeten laden bool loadGame = loadStream != null; // copieer de benodige object handles currentGame = game; memoryGrid = currentGame.memoryGrid; // copieer de benodige data vanuit het memorygame object game nColumns = currentGame.nColumns; nRows = currentGame.nRows; nKaartenUniek = currentGame.nKaartenUniek; nKaartenGelijk = currentGame.nKaartenGelijk; if (loadGame) { // laad de gebruikte kaarten lUsedKaartIds = loadStream.Load() as List <int>; } else { // maak een lijst van random kaart IDs lUsedKaartIds = GetRndmKaartLijst(nKaartenUniek); } // maak een resource object van de kaart gebruikte image resources kaartResource = GetKaartResources(lUsedKaartIds); if (loadGame) { // laad de kaart posities lGridKaarten = loadStream.Load() as List <int>; } else { // zorg dat alle kaarten twee keer voorkomen en zet ze in toevallige volgorde lGridKaarten = SplitAndRandomize(lUsedKaartIds); } // maak een lijst van buttons voor de kaart speelveld lSymboolButtons = GetBttnLijst(lGridKaarten); if (loadGame) { // laad en set de status van de kaarten SetKaartStatus(loadStream.Load() as List <KaartStatus>); } // registreer de buttons in het grid van het speelveld int index = 0; foreach (Button symboolBttn in lSymboolButtons) { memoryGrid.AddByIndex(symboolBttn, index++); } }
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; } } }