Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="IdDB">ID de la partie dans la bases de données</param>
        public ReplayManager(int IdDB)
        {
            GameDataManager db = DBManager.getInstance();

            gameToReplay = db.getGameById(IdDB);
            listMemento  = new List <MementoTurn>();
            p1           = new PlayerReplay(ColorTranslator.FromHtml(gameToReplay.colorP1), gameToReplay.nameP1, gameToReplay.numP1, gameToReplay.numberTurnP1);
            p2           = new PlayerReplay(ColorTranslator.FromHtml(gameToReplay.colorP2), gameToReplay.nameP2, gameToReplay.numP2, gameToReplay.numberTurnP2);
            board        = new Board(gameToReplay.initialBoard, p1, p2, true);
        }
Esempio n. 2
0
        /// <summary>
        /// Construit un game depuis la base de données
        /// </summary>
        /// <param name="IdDB">Identifiant dans la BDD.</param>
        /// <returns><see cref="Diaballik.Game"/></returns>
        public Game build(int IdDB)
        {
            GameModelDB gameInfo = getGameInfoById(IdDB);
            Player      p1       = initPlayer(gameInfo.typeP1, ColorTranslator.FromHtml(gameInfo.colorP1), gameInfo.nameP1, gameInfo.numP1, gameInfo.numberTurnP1);
            Player      p2       = initPlayer(gameInfo.typeP2, ColorTranslator.FromHtml(gameInfo.colorP2), gameInfo.nameP2, gameInfo.numP2, gameInfo.numberTurnP2);

            p1.Nbmove = gameInfo.nbMoveP1;
            p2.Nbmove = gameInfo.nbMoveP2;
            Board board = new Board(gameInfo.lastBoard, p1, p2);

            board.MementoManager.setId(gameInfo.Id);
            return(new Game(board, p1, p2, gameInfo.gameStatus));
        }
Esempio n. 3
0
        /// <summary>
        /// Action sur une partie existante
        /// </summary>
        /// <param name="index">Index dans la liste</param>
        public void ActionOnItem(int index)
        {
            GameModelDB game = listGames.ElementAt(index);

            if (game.gameStatus == GameModelDB.GameStatus.FINISHED)
            {
                mI.replayGame(game.Id);
            }
            else
            {
                mI.resumeGame(game.Id);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Construit un game
        /// </summary>
        /// <returns><see cref="Diaballik.Game"/></returns>
        /// <exception cref="PlayerNumberException">Nombre de joueur invalide</exception>
        /// <exception cref="PlayerSameColorException">Veuillez choisir des couleurs distinctes</exception>
        public Game build()
        {
            if (player1 == null || player2 == null)
            {
                throw new PlayerNumberException("invalid number players");
            }
            Player p1 = player1.build(1);
            Player p2 = player2.build(2);

            if (p1.Color.Equals(p2.Color))
            {
                throw new PlayerSameColorException("Veuillez choisir des couleurs distinctes");
            }

            Board board = new Board(Properties.DEFAULT_SIZE_BOARD);

            configureBoard(board, p1, p2);

            GameModelDB gameDB = new GameModelDB
            {
                nameP1          = p1.Name,
                colorP1         = "#" + p1.Color.R.ToString("X2") + p1.Color.G.ToString("X2") + p1.Color.B.ToString("X2"),
                numP1           = p1.NumberPlayer,
                typeP1          = p1.getType(),
                numberTurnP1    = 0,
                nbMoveP1        = 0,
                nameP2          = p2.Name,
                colorP2         = "#" + p2.Color.R.ToString("X2") + p2.Color.G.ToString("X2") + p2.Color.B.ToString("X2"),
                numP2           = p2.NumberPlayer,
                typeP2          = p2.getType(),
                numberTurnP2    = 0,
                nbMoveP2        = 0,
                initialBoard    = board.convertBoardForCpp(),
                lastBoard       = board.convertBoardForCpp(),
                turnInformation = new String[0],
                gameStatus      = GameModelDB.GameStatus.STARTING
            };
            int idDB = createGameInDB(gameDB);

            board.MementoManager.setId(idDB);

            return(new Game(board, p1, p2));
        }
Esempio n. 5
0
        /// <summary>
        /// sauvegarde les mouvements dans la base de données
        /// </summary>
        /// <param name="currentBoard">Board</param>
        /// <param name="p1">Joueur 1</param>
        /// <param name="p2">Joueur 2</param>
        /// <param name="gS">statut de la partie <see cref="GameModelDB.GameStatus"/></param>
        public void saveData(int[] currentBoard, Player p1, Player p2, GameModelDB.GameStatus gS)
        {
            GameModelDB gameModelDB = gameDataManager.getGameById(this.idGame);

            gameModelDB.lastBoard = currentBoard;
            List <String> listTurnInfo = gameModelDB.turnInformation.ToList <String>();

            while (listMementoObjects.Count != 0)
            {
                MementoTurn mt = listMementoObjects.ElementAt(0);
                listMementoObjects.RemoveAt(0);
                listTurnInfo.Add(mt.dataToString());
            }

            gameModelDB.numberTurnP1 = p1.NumberTurn;
            gameModelDB.numberTurnP2 = p2.NumberTurn;

            gameModelDB.nbMoveP1 = p1.Nbmove;
            gameModelDB.nbMoveP2 = p2.Nbmove;

            gameModelDB.turnInformation = listTurnInfo.ToArray <String>();
            gameModelDB.gameStatus      = gS;
            gameDataManager.updateGame(gameModelDB);
        }
Esempio n. 6
0
        /// <summary>
        /// Créer une partie au sein de la BDD
        /// </summary>
        /// <param name="gameModelDB">La partie à sauvegarder.</param>
        /// <returns>id dans la base de données</returns>
        private int createGameInDB(GameModelDB gameModelDB)
        {
            DBManager dBManager = DBManager.getInstance();

            return(dBManager.createGame(gameModelDB));
        }