Exemple #1
0
        /// <summary>
        /// Get player move
        /// </summary>
        /// <returns></returns>
        public virtual GameDB.MoveType GetMove()
        {
            // move to return
            GameDB.MoveType res = (GameDB.MoveType) 0;
            if (delagateUserMoveLogic != null)
            {
                res = delagateUserMoveLogic();
            }

            return(res);
        }
Exemple #2
0
        /// <summary>
        /// Record last match informations
        /// </summary>
        /// <param name="opponentmov"></param>
        /// <param name="playermov"></param>
        /// <param name="matchres"></param>
        public void RecordGameResult(GameDB.MoveType opponentmov, GameDB.MoveType playermov, GameDB.MatchResult matchres)
        {
            OpponentHistory.Add(opponentmov);
            PlayerMoveHistory.Add(playermov);
            MatchResultHistory.Add(matchres);

            // Increase GameControler win counter if win
            if (matchres == GameDB.MatchResult.eWin)
            {
                currentGameWinCnt++;
            }
        }
Exemple #3
0
        /// <summary>
        /// Move strategy : Random
        /// </summary>
        /// <returns></returns>
        public override GameDB.MoveType GetMove()
        {
            GameDB.MoveType res = (GameDB.MoveType) 0;

            Console.WriteLine("CPU : " + this.GetName());

            // Get the randome move from 1 to PlayerMove list count
            int value = new Random().Next(1, this.GetPlayerMoves().Count);

            res = (GameDB.MoveType)value;


            return(res);
        }
        public override GameDB.MoveType GetMove()
        {
            GameDB.MoveType res = (GameDB.MoveType) 0;

            Console.WriteLine("Player : " + this.GetName());
            Console.WriteLine("");
            Console.WriteLine("Choose your move : ");
            Console.WriteLine("");
            int keyindex = 0;

            // Show list of move to player
            foreach (GameDB.MoveType mv in this.GetPlayerMoves())
            {
                // Increase index 1 => Move1 2 => Move2 so and so
                keyindex++;

                // Add separator before excepted for the first one XX / YY / ZZ
                if (keyindex > 1)
                {
                    Console.Write(" / ");
                }
                Console.Write(keyindex.ToString() + " => " + mv.ToString());
            }
            Console.WriteLine("");

            bool validinput = false;

            while (validinput == false)
            {
                char input = Console.ReadKey().KeyChar;
                int  value = (input - '0') - 1;
                if ((value >= 0) && (value <= keyindex))
                {
                    validinput = true;
                    res        = (GameDB.MoveType)value;
                }
            }

            return(res);
        }
Exemple #5
0
        /// <summary>
        /// Move strategy : Random
        /// </summary>
        /// <returns></returns>
        public override GameDB.MoveType GetMove()
        {
            GameDB.MoveType res = (GameDB.MoveType) 0;

            Console.WriteLine("CPU : " + this.GetName());

            bool FoundCpuMove = false;

            if (MatchResultHistory.Count > 0)
            {
                GameDB.MoveType prvMove = OpponentHistory[OpponentHistory.Count - 1];

                foreach (KeyValuePair <GameDB.MoveType, List <GameDB.MoveType> > listMove in GameDB.MoveTable)
                {
                    foreach (GameDB.MoveType mvt in GameDB.MoveTable[listMove.Key])
                    {
                        if (mvt == prvMove)
                        {
                            res          = listMove.Key;
                            FoundCpuMove = true;
                            break;
                        }
                    }
                    if (FoundCpuMove)
                    {
                        break;
                    }
                }
            }
            else
            {
                // Get the randome move from 1 to PlayerMove list count
                int value = new Random().Next(1, this.GetPlayerMoves().Count);
                res = (GameDB.MoveType)value;
            }

            return(res);
        }