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 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 MemoryOverlays(MemoryGame game) { // copieer de benodige object handles currentGame = game; // copieer de benodige data vanuit het memorygame object nKaartenGelijk = currentGame.nKaartenGelijk; memoryGrid = currentGame.memoryGrid; // maak een resource object van de kaart image resources overlayResource = new MemoryResource(GameData.sOverlayLocatie); overlayResource.Add(GameData.sOverlayFout); overlayResource.Add(GameData.sOverlayGoed); //Uri testURI = new Uri("Images/Overlays/Checkmark.png", UriKind.Relative); // BitmapImage testBitmap = new BitmapImage(testURI); ImageSource voorKant = overlayResource.Find(GameData.sOverlayGoed); feedbackCreate(); }