public void SetColor(ePlayers player, eColors color)
 {
     if (players.ContainsKey(player))
     {
         players [player].Color = color;
     }
 }
示例#2
0
        public string GetLastStepPlayerName()
        {
            string   playerName = string.Empty;
            ePlayers StepOf     = ePlayers.UndefinedPlayer;

            foreach (Player player in r_Players)
            {
                player.IsPieceAvailable(m_LastStep.GetDestination, out StepOf);
                if (StepOf != ePlayers.UndefinedPlayer)
                {
                    break;
                }
            }

            if (StepOf == ePlayers.Player1)
            {
                playerName = r_Players[(int)ePlayers.Player1].GetPlayerName;
            }
            else
            {
                playerName = r_Players[(int)ePlayers.Player2].GetPlayerName;
            }

            return(playerName);
        }
    public Color GetSysColor(ePlayers player)
    {
        switch (players [player].Color)
        {
        case eColors.blue:
            return(new Color(93 / 255f, 93 / 255f, 244 / 255f, 255 / 255f));

            break;

        case eColors.red:
            return(new Color(255 / 255f, 68 / 255f, 68 / 255f, 255 / 255f));

            break;

        case eColors.yellow:
            return(new Color(246 / 255f, 229 / 255f, 38 / 255f, 255 / 255f));

            break;

        case eColors.green:
            return(new Color(111 / 255f, 255 / 255f, 11 / 255f, 255 / 255f));

            break;

        default:
            throw new System.Exception("Player get color error");
        }
    }
示例#4
0
 public Player(ePlayers i_PlayerIdentifier, bool i_isAI, string i_Name)
 {
     m_Name             = i_Name;
     m_AI               = i_isAI;
     m_PlayerIdentifier = i_PlayerIdentifier;
     decidePlayerSign(i_PlayerIdentifier);
 }
 public void AddMedal(ePlayers player, eMedals medal)
 {
     if (players.ContainsKey(player) && medal.GetHashCode() != 3)
     {
         players [player].AddMedal(medal);
     }
 }
示例#6
0
 public void InsertPieceInBoardSlot(ePlayers i_PlayerIdentifier, Piece i_PieceToInsert)
 {
     if (m_Piece == null)
     {
         m_Piece = i_PieceToInsert;
         this.syncPieceCoordinates();
     }
 }
示例#7
0
 public CCGameSettingsBase(ePlayers players)
 {
     Players = players;
     Player1 = new CSKPlayerClass();
     //Player2 = new PlayerClass();
     //Player3 = new PlayerClass();
     //Player4 = new PlayerClass();
 }
示例#8
0
 private void switchTurn()
 {
     if (m_CurrentPlayer == ePlayers.Player1)
     {
         m_CurrentPlayer = ePlayers.Player2;
     }
     else
     {
         m_CurrentPlayer = ePlayers.Player1;
     }
 }
 public bool IsPlaying(ePlayers player)
 {
     if (players.ContainsKey(player))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
示例#10
0
 public int GetPoints(ePlayers player)
 {
     if (players.ContainsKey(player))
     {
         return(players [player].Points);
     }
     else
     {
         return(0);
     }
 }
示例#11
0
 private void decidePlayerSign(ePlayers i_PlayerIdentifier)
 {
     if (i_PlayerIdentifier == ePlayers.Player1)
     {
         m_PlayerSign = "O";
     }
     else
     {
         m_PlayerSign = "X";
     }
 }
示例#12
0
 public void IsPieceAvailable(Point i_PieceLocation, out ePlayers o_StepOf)
 {
     o_StepOf = ePlayers.UndefinedPlayer;
     foreach (Piece piece in r_PlayerPieces)
     {
         if (i_PieceLocation == piece.Coordinates)
         {
             o_StepOf = m_PlayerIdentifier;
         }
     }
 }
示例#13
0
 public int GetMedal(ePlayers player, eMedals medal)
 {
     if (players.ContainsKey(player))
     {
         return(players [player].GetMedals(medal));
     }
     else
     {
         return(0);
     }
 }
示例#14
0
 public GameManager()
 {
     m_Player1                  = new Player(ePlayers.Player1);
     m_Player2                  = new Player(ePlayers.Player2);
     m_CheckersBoard            = new Board();
     this.m_CurrentPlayer       = ePlayers.Player1;
     this.m_PlayVScomputer      = false;
     this.m_CheckerWasCaptured  = false;
     m_PlayerHasQuit            = false;
     m_CheckIfGameIsOver        = false;
     m_MustUseSameChecker       = false;
     m_LastCheckerSquare        = new int[2];
     m_GameIsATie               = false;
     m_GameIsPlayedAgain        = false;
     m_CheckCapturedForComputer = false;
 }
示例#15
0
        public void UpdateStepInBoard(Step i_StepToUpdate, ePlayers i_PlayerIdentifierForMovedPiece, Player i_OpponentRefForJumpedOverPiece)
        {
            string    destination, source;
            BoardSlot boardSlotToRemovePiece;
            BoardSlot boardSlotToInsertPiece;

            source      = i_StepToUpdate.GetSource.ToString();
            destination = i_StepToUpdate.GetDestination.ToString();
            if (i_StepToUpdate.isJump)
            {
                boardSlotToRemovePiece = GetBoardSlotFromIdentifierString(GetJumpedOverPieceBoardSlotIdentifier(i_StepToUpdate));
                i_OpponentRefForJumpedOverPiece.RemovePiece(boardSlotToRemovePiece);
                boardSlotToRemovePiece.RemovePieceFromBoardSlot();
            }

            boardSlotToRemovePiece = GetBoardSlotFromIdentifierString(source);
            boardSlotToInsertPiece = GetBoardSlotFromIdentifierString(destination);
            boardSlotToInsertPiece.InsertPieceInBoardSlot(i_PlayerIdentifierForMovedPiece, boardSlotToRemovePiece.GetPieceRef());
            boardSlotToRemovePiece.RemovePieceFromBoardSlot();
        }
示例#16
0
        public Point NextTurn(ePlayers[,] i_Board, ePlayers i_PlayerTurn, bool i_IsLastTurnLegal, int i_Player1Score, int i_Player2Score)
        {
            string userSelectedMoveStr;
            Point  playersMove = new Point(-1, -1);

            Screen.PrintBoard((int)m_MatrixSize.MatrixSize, i_Board, Player1Name, Player2Name, i_PlayerTurn, i_Player1Score, i_Player2Score);
            if (!i_IsLastTurnLegal)
            {
                Screen.PrintWrongSquereMsg();
            }

            userSelectedMoveStr = System.Console.ReadLine();
            checkSyntactMoveInput(ref userSelectedMoveStr, m_MatrixSize);
            if (userSelectedMoveStr[0] == 'Q')
            {
                System.Environment.Exit(1);
            }

            boardCordParse(userSelectedMoveStr, playersMove);

            return(playersMove);
        }
示例#17
0
    /* CLASSIC RANK: WHO HAS MORE GOLDS WINS
     * public List<ePlayers> getWinners() {
     *      List<Player> playersToCtrl = new List<Player>();
     *      List<ePlayers> winners = new List<ePlayers> ();
     *
     *      //populate list to control
     *      for (int i=0; i<players.Count; i++)
     *              playersToCtrl.Add (players [(ePlayers)i]);
     *
     *
     *      while (playersToCtrl.Count > 0) {
     *              ePlayers winner = WhoHasMoreMedals(playersToCtrl, eMedals.Gold).Number;
     *              winners.Add(winner);
     *              playersToCtrl.Remove(players[winner]);
     *      }
     *
     *      return winners;
     * }
     *
     * Player WhoHasMoreMedals(List<Player> playersToCtrl, eMedals medal) {
     *      //find max golds value
     *      int max_medals = 0;
     *      foreach (Player p in playersToCtrl) {
     *              int medals = p.getMedals (medal);
     *              if (medals > max_medals) {
     *                      max_medals = medals;
     *              }
     *      }
     *
     *      //store players with max golds value
     *      List<Player> results = new List<Player>();
     *      foreach (Player p in playersToCtrl) {
     *              if (p.getMedals (medal) == max_medals) {
     *                      results.Add(p);
     *              }
     *      }
     *
     *      if(results.Count > 1 && medal.GetHashCode()!=2) {
     *              //if more then one, repeat
     *              return WhoHasMoreMedals(results, (eMedals)(medal.GetHashCode()+1));
     *      }else{
     *              return results[0];
     *      }
     * }
     */

    /*CUSTOM RANK: EACH MEDALS HAS A VALUE*/

    /**
     * Get ePlayers in order of scores
     *
     * \param drawAllowed if draw is allowed
     * \throw DrawException if draw is reached
     * \return List of ePlayers in order of scores
     */
    public List <ePlayers> GetWinners(bool drawAllowed)
    {
        List <Player>   playersToCtrl = new List <Player> ();
        List <ePlayers> winners       = new List <ePlayers> ();

        //populate list to control
        for (int i = 0; i < players.Count; i++)
        {
            playersToCtrl.Add(players [(ePlayers)i]);
        }


        while (playersToCtrl.Count > 0)
        {
            int      max    = -1;
            ePlayers winner = ePlayers.none;

            foreach (Player p in playersToCtrl)
            {
                if (p.Points == max && !drawAllowed)
                {
                    throw new DrawException("More than one player with same points");
                }
                if (p.Points > max)
                {
                    winner = p.Number;
                    max    = p.Points;
                }
            }

            winners.Add(winner);

            playersToCtrl.Remove(players [winner]);
        }

        return(winners);
    }
示例#18
0
 private void determinePlayerAndSignAttachmentForPotentialPiece(int i_BoardRow, out ePlayers o_CurrentPlayerToAttachPiece, out string o_PieceSign)
 {
     if (i_BoardRow < (m_BoardSize / 2) - 1)
     {
         o_PieceSign = "O";
         o_CurrentPlayerToAttachPiece = ePlayers.Player1;
     }
     else if (i_BoardRow > m_BoardSize / 2)
     {
         o_PieceSign = "X";
         o_CurrentPlayerToAttachPiece = ePlayers.Player2;
     }
     else
     {
         o_PieceSign = string.Empty;
         o_CurrentPlayerToAttachPiece = ePlayers.UndefinedPlayer;
     }
 }
示例#19
0
 public void AttachPieceToBoardSlotAndPlayer(Player[] i_Players, string i_PieceSign, ePlayers i_PlayerIdentifier)
 {
     m_Piece = new Piece(m_SlotCoordinates, i_PlayerIdentifier);
     i_Players[(int)i_PlayerIdentifier].AddPiece(m_Piece);
 }
示例#20
0
 public Player(ePlayers i_Player)
 {
     m_Player          = i_Player;
     m_TotalGamesScore = 0;
     m_CurrentPoints   = 0;
 }
 public void ChangeToOnePlayer()
 {
     m_PlayerCount = ePlayers.One;
 }
 public void ChangeToOnePlayer()
 {
     m_PlayerCount = ePlayers.One;
 }
 public void ChangeToTwoPlayers()
 {
     m_PlayerCount = ePlayers.Two;
 }
示例#24
0
 public eColors GetColor(ePlayers player)
 {
     return(players [player].Color);
 }
示例#25
0
 public bool IsActivePlayerHuman(ePlayers i_ActivePlayerIndex)
 {
     return(!r_Players[(int)i_ActivePlayerIndex].isAI);
 }
示例#26
0
 public Piece(Point i_PieceCoordinates, ePlayers i_PlayerAssociation)
 {
     m_Coordinates       = i_PieceCoordinates;
     m_PlayerAssociation = i_PlayerAssociation;
     m_Orientation       = (Step.eLookOrientation)i_PlayerAssociation;
 }
 public void ChangeToTwoPlayers()
 {
     m_PlayerCount = ePlayers.Two;
 }