예제 #1
0
        /**
         * This method help for quick rebuilding the board after the pick.
         */
        private static bool isMatch(string i_Card1, string i_Card2)
        {
            bool         hasMatched = true;
            int          row1       = int.Parse(i_Card1[1].ToString());
            eColumnIndex col1       = (eColumnIndex)Enum.Parse(typeof(eColumnIndex), i_Card1[0].ToString());
            int          row2       = int.Parse(i_Card2[1].ToString());
            eColumnIndex col2       = (eColumnIndex)Enum.Parse(typeof(eColumnIndex), i_Card2[0].ToString());

            boardClearAndReBuild(i_Card2);
            if (s_Board.GetShownCard(row1, (int)col1).Equals(s_Board.GetShownCard(row2, (int)col2)))
            {
                string pointMessage = "";
                if (s_PlayerTurn == 1)
                {
                    s_Player1.Score++;
                    pointMessage = s_Player1.Name;
                }
                else if (s_PlayerTurn == 2)
                {
                    s_Player2H.Score++;
                    pointMessage = s_Player2H.Name;
                }
                else
                {
                    s_Player2C.Score++;
                    pointMessage = s_Player2C.Name;
                }

                if (!s_IsHuman)
                {
                    s_Player2C.RemoveFromBoardMemory(i_Card1, i_Card2);
                }

                Console.WriteLine("{0} got a point!\n", pointMessage);
            }
            else
            {
                hasMatched = false;
                System.Threading.Thread.Sleep(2000);
                //hides first card
                s_Board.Hide(row1, (int)col1);
                //hides second card
                s_Board.Hide(row2, (int)col2);

                boardClearAndReBuild("");
            }

            return(hasMatched);
        }