コード例 #1
0
ファイル: ProjectData.cs プロジェクト: LAndrade1093/GTECH
        public bool OpenProject()
        {
            bool loadSuccessful = true;

            Microsoft.Win32.OpenFileDialog openDialog = new Microsoft.Win32.OpenFileDialog();
            openDialog.DefaultExt = DEFAULT_EXT;
            openDialog.Filter     = FILTER;
            bool?result            = openDialog.ShowDialog();
            bool isCorrectFileType = System.Text.RegularExpressions.Regex.IsMatch(openDialog.FileName, DEFAULT_EXT);

            if (result == true && isCorrectFileType) //User pressed OK and the extension is correct
            {
                loadSuccessful  = true;
                projectFileName = openDialog.FileName;

                IFormatter  format        = new BinaryFormatter();
                Stream      stream        = new FileStream(projectFileName, FileMode.Open, FileAccess.Read, FileShare.Read);
                ProjectData loadedProject = (ProjectData)format.Deserialize(stream);
                savedPrizeLevels = loadedProject.savedPrizeLevels;
                savedGameSetup   = loadedProject.savedGameSetup;
                savedDivisions   = loadedProject.savedDivisions;
            }
            else if (result == true && !isCorrectFileType) //User pressed OK, but the extension is incorrect
            {
                System.Windows.MessageBox.Show("The file must be of type " + DEFAULT_EXT);
                loadSuccessful = this.OpenProject();
            }
            else if (result == false) //User pressed Cancel or closed the dialog box
            {
                loadSuccessful = false;
            }

            return(loadSuccessful);
        }
コード例 #2
0
        public void testBuildGameDataThreeDivisonsFourPicksWithLoss()
        {
            //Custom input for a game
            GameSetupModel gs = new GameSetupModel();

            gs.maxPermutations = 1000;
            gs.totalPicks      = 4;

            PrizeLevel pl1 = new PrizeLevel();

            pl1.isInstantWin   = false;
            pl1.numCollections = 3;
            pl1.prizeValue     = 100;

            PrizeLevel pl2 = new PrizeLevel();

            pl2.isInstantWin   = false;
            pl2.numCollections = 2;
            pl2.prizeValue     = 50;

            PrizeLevel pl3 = new PrizeLevel();

            pl3.isInstantWin   = false;
            pl3.numCollections = 2;
            pl3.prizeValue     = 25;

            PrizeLevels pls = new PrizeLevels();

            pls.addPrizeLevel(pl1);
            pls.addPrizeLevel(pl2);
            pls.addPrizeLevel(pl3);

            DivisionModel dm1 = new DivisionModel();

            dm1.addPrizeLevel(pl1);

            DivisionModel dm2 = new DivisionModel();

            dm2.addPrizeLevel(pl2);

            DivisionModel dm3 = new DivisionModel();

            dm3.addPrizeLevel(pl2);
            dm3.addPrizeLevel(pl3);

            DivisionModel dm4 = new DivisionModel();

            DivisionsModel dms = new DivisionsModel();

            dms.addDivision(dm1);
            dms.addDivision(dm2);
            dms.addDivision(dm3);
            dms.addDivision(dm4);

            //File Generator
            FileGenerationService fgs = new FileGenerationService();

            fgs.buildGameData(dms, pls, gs, "testBuildGameDataThreeDivisonsFourPicksWithLoss");
        }
コード例 #3
0
 /// <summary>
 /// Sets model of the Divisions panel
 /// </summary>
 /// <param name="model">The model instance</param>
 public void SetModel(DivisionsModel model)
 {
     if (_model != null)
     {
         _model.PropertyChanged -= DivisionsListChanged;
     }
     _model = model ?? new DivisionsModel();
     DataBind();
 }
コード例 #4
0
        public void testGetDivision()
        {
            DivisionsModel dm = new DivisionsModel();

            for (int i = 0; i < numberOfTestRuns; i++)
            {
                DivisionModel div = new DivisionModel();
                dm.addDivision(div);
                Assert.IsTrue(dm.getDivision(i) != null, "Number of divisions is wrong.");
            }
        }
コード例 #5
0
ファイル: ProjectData.cs プロジェクト: LAndrade1093/GTECH
        public void SaveProject(GameSetupModel gsObject, PrizeLevels.PrizeLevels plsObject, DivisionsModel divisionsList)
        {
            if (isProjectSaved)
            {
                savedGameSetup   = gsObject;
                savedPrizeLevels = plsObject;
                savedDivisions   = divisionsList;

                IFormatter formatter = new BinaryFormatter();
                Stream     stream    = new FileStream(projectFileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
                formatter.Serialize(stream, this);
                stream.Close();
            }
            else
            {
                SaveProjectAs(gsObject, plsObject, divisionsList);
            }
        }
コード例 #6
0
        public void testBuildGameDataMaxDivison()
        {
            GameSetupModel gs = new GameSetupModel();

            gs.maxPermutations = 300000;
            gs.totalPicks      = 20;

            int numPrizeLevels = 12;

            PrizeLevel[] prizes = new PrizeLevel[numPrizeLevels];
            PrizeLevels  pls    = new PrizeLevels();

            for (int i = 0; i < numPrizeLevels; i++)
            {
                prizes[i] = new PrizeLevel();
                prizes[i].isInstantWin   = false;
                prizes[i].numCollections = i + 1;
                prizes[i].prizeValue     = 100 * i;
                pls.addPrizeLevel(prizes[i]);
            }

            int numberOfDivions = 30;

            DivisionModel[] divisions = new DivisionModel[numberOfDivions];
            DivisionsModel  dms       = new DivisionsModel();
            Random          rand      = new Random();

            for (int i = 0; i < numberOfDivions; i++)
            {
                divisions[i] = new DivisionModel();
                divisions[i].addPrizeLevel(prizes[rand.Next(0, 12)]);
                dms.addDivision(divisions[i]);
            }

            FileGenerationService fgs = new FileGenerationService();

            fgs.buildGameData(dms, pls, gs, "T:\\Work\\JunkOut\\MaxTest.txt");
        }
コード例 #7
0
        public void testBuildGameDataFiveDivisionsNinePicksWithFailDivision()
        {
            GameSetupModel gs = new GameSetupModel();

            gs.maxPermutations = 1000;
            gs.totalPicks      = 9;

            PrizeLevel pl1 = new PrizeLevel();

            pl1.isInstantWin   = false;
            pl1.numCollections = 5;
            pl1.prizeValue     = 100;

            PrizeLevel pl2 = new PrizeLevel();

            pl2.isInstantWin   = false;
            pl2.numCollections = 4;
            pl2.prizeValue     = 50;

            PrizeLevel pl3 = new PrizeLevel();

            pl3.isInstantWin   = false;
            pl3.numCollections = 4;
            pl3.prizeValue     = 25;

            PrizeLevel pl4 = new PrizeLevel();

            pl4.isInstantWin   = false;
            pl4.numCollections = 3;
            pl4.prizeValue     = 10;

            PrizeLevel pl5 = new PrizeLevel();

            pl5.isInstantWin   = false;
            pl5.numCollections = 3;
            pl5.prizeValue     = 5;

            PrizeLevels pls = new PrizeLevels();

            pls.addPrizeLevel(pl1);
            pls.addPrizeLevel(pl2);
            pls.addPrizeLevel(pl3);
            pls.addPrizeLevel(pl4);
            pls.addPrizeLevel(pl5);


            DivisionModel dm1 = new DivisionModel();

            dm1.addPrizeLevel(pl1);

            DivisionModel dm2 = new DivisionModel();

            dm2.addPrizeLevel(pl1);
            dm2.addPrizeLevel(pl2);

            DivisionModel dm3 = new DivisionModel();

            dm3.addPrizeLevel(pl1);
            dm3.addPrizeLevel(pl3);

            DivisionModel dm4 = new DivisionModel();

            dm4.addPrizeLevel(pl2);
            dm4.addPrizeLevel(pl3);

            DivisionModel dm5 = new DivisionModel();

            dm5.addPrizeLevel(pl4);
            dm5.addPrizeLevel(pl5);

            DivisionModel dm6 = new DivisionModel();

            DivisionsModel dms = new DivisionsModel();

            dms.addDivision(dm1);
            dms.addDivision(dm2);
            dms.addDivision(dm3);
            dms.addDivision(dm4);
            dms.addDivision(dm5);
            dms.addDivision(dm6);

            FileGenerationService fgs = new FileGenerationService();

            fgs.buildGameData(dms, pls, gs, "testBuildGameDataFiveDivisionsNinePicksWithFail");
        }
コード例 #8
0
        public void testBuildGameDataFourDivisionsSixPicks()
        {
            GameSetupModel gs = new GameSetupModel();

            gs.maxPermutations = 1000;
            gs.totalPicks      = 6;

            PrizeLevel pl1 = new PrizeLevel();

            pl1.isInstantWin   = false;
            pl1.numCollections = 3;
            pl1.prizeValue     = 100;

            PrizeLevel pl2 = new PrizeLevel();

            pl2.isInstantWin   = false;
            pl2.numCollections = 3;
            pl2.prizeValue     = 50;

            PrizeLevel pl3 = new PrizeLevel();

            pl3.isInstantWin   = false;
            pl3.numCollections = 3;
            pl3.prizeValue     = 25;

            PrizeLevels pls = new PrizeLevels();

            pls.addPrizeLevel(pl1);
            pls.addPrizeLevel(pl2);
            pls.addPrizeLevel(pl3);

            DivisionModel dm1 = new DivisionModel();

            dm1.addPrizeLevel(pl1);
            dm1.addPrizeLevel(pl2);

            DivisionModel dm2 = new DivisionModel();

            dm2.addPrizeLevel(pl2);
            dm2.addPrizeLevel(pl3);

            DivisionModel dm3 = new DivisionModel();

            dm3.addPrizeLevel(pl1);
            dm3.addPrizeLevel(pl3);

            DivisionModel dm4 = new DivisionModel();

            dm4.addPrizeLevel(pl2);

            DivisionsModel dms = new DivisionsModel();

            dms.addDivision(dm1);
            dms.addDivision(dm2);
            dms.addDivision(dm3);
            dms.addDivision(dm4);

            FileGenerationService fgs = new FileGenerationService();

            fgs.buildGameData(dms, pls, gs, "testBuildGameDataFourDivisionsSixPicks");
        }
コード例 #9
0
        public void testBuildGameDataFourDivisonsFivePicks()
        {
            //Custom input for a game
            GameSetupModel gs = new GameSetupModel();

            gs.maxPermutations = 1000;
            gs.totalPicks      = 5;
            gs.isNearWin       = true;
            gs.nearWins        = 2;

            PrizeLevel pl1 = new PrizeLevel();

            pl1.isInstantWin   = false;
            pl1.numCollections = 3;
            pl1.prizeValue     = 100;

            PrizeLevel pl2 = new PrizeLevel();

            pl2.isInstantWin   = false;
            pl2.numCollections = 2;
            pl2.prizeValue     = 50;

            PrizeLevel pl3 = new PrizeLevel();

            pl3.isInstantWin   = false;
            pl3.numCollections = 2;
            pl3.prizeValue     = 25;

            PrizeLevel pl4 = new PrizeLevel();

            pl4.isInstantWin   = false;
            pl4.numCollections = 4;
            pl4.prizeValue     = 10000;

            PrizeLevel pl5 = new PrizeLevel();

            pl5.isInstantWin   = false;
            pl5.numCollections = 3;
            pl5.prizeValue     = 1000;

            PrizeLevels pls = new PrizeLevels();

            pls.addPrizeLevel(pl1);
            pls.addPrizeLevel(pl2);
            pls.addPrizeLevel(pl3);
            pls.addPrizeLevel(pl4);
            pls.addPrizeLevel(pl5);

            DivisionModel dm1 = new DivisionModel();

            dm1.addPrizeLevel(pl1);

            DivisionModel dm2 = new DivisionModel();

            dm2.addPrizeLevel(pl2);

            DivisionModel dm3 = new DivisionModel();

            dm3.addPrizeLevel(pl2);
            dm3.addPrizeLevel(pl3);

            DivisionModel dm4 = new DivisionModel();

            dm4.addPrizeLevel(pl5);

            DivisionModel dm5 = new DivisionModel();

            dm5.addPrizeLevel(pl5);
            dm5.addPrizeLevel(pl2);

            DivisionsModel dms = new DivisionsModel();

            dms.addDivision(dm1);
            dms.addDivision(dm2);
            dms.addDivision(dm3);
            dms.addDivision(dm4);
            dms.addDivision(dm5);

            //File Generator
            FileGenerationService fgs = new FileGenerationService();

            fgs.buildGameData(dms, pls, gs, "T:\\Work\\JunkOut\\testBuildGameDataFourDivisonsFivePicks.txt");
        }
コード例 #10
0
ファイル: ProjectData.cs プロジェクト: LAndrade1093/GTECH
        public void SaveProjectAs(GameSetupModel gsObject, PrizeLevels.PrizeLevels plsObject, DivisionsModel divisionsList)
        {
            Microsoft.Win32.SaveFileDialog dialog = new Microsoft.Win32.SaveFileDialog();
            if (String.IsNullOrEmpty(projectFileName))
            {
                dialog.FileName = "CollectionGameGeneratorProject" + DEFAULT_EXT;
            }
            else
            {
                dialog.FileName = projectFileName;
            }
            dialog.DefaultExt = DEFAULT_EXT;
            dialog.Filter     = FILTER;
            bool?result = dialog.ShowDialog();

            if (result == true)
            {
                projectFileName = dialog.FileName;
                isProjectSaved  = true;
                SaveProject(gsObject, plsObject, divisionsList);
            }
        }
コード例 #11
0
ファイル: ProjectWriter.cs プロジェクト: Riother/WordGame
 /// <summary>
 /// Constructs project writer with references to the project models
 /// </summary>
 /// <param name="plModel">PrizeLevels model</param>
 /// <param name="gsuModel">GameSetup model</param>
 /// <param name="divModel">Divisions model</param>
 public ProjectWriter(PrizeLevelsModel plModel, GameSetupModel gsuModel, DivisionsModel divModel)
 {
     project = new AllModelsModel(plModel, gsuModel, divModel);
 }
コード例 #12
0
 /// <summary>
 /// Constructs a ProjectData object that holds the references to the models of the project
 /// </summary>
 /// <param name="plModel"></param>
 /// <param name="gsuModel"></param>
 /// <param name="divModel"></param>
 public AllModelsModel(PrizeLevelsModel plModel, GameSetupModel gsuModel, DivisionsModel divModel)
 {
     PrizeLevelsModel = plModel;
     GameSetupModel   = gsuModel;
     DivisionsModel   = divModel;
 }
コード例 #13
0
 /// <summary>
 /// Constructor that creates the model data for the client project
 /// </summary>
 public AllModelsModel()
 {
     GameSetupModel   = new GameSetupModel();
     PrizeLevelsModel = new PrizeLevelsModel();
     DivisionsModel   = new DivisionsModel();
 }