Пример #1
0
 public Tile Take(PlayerData p)
 {
     if (p != m_current)
     {
         return(null);
     }
     if (m_mutextaken == true)
     {
         return(null);
     }
     try
     {
         Tile tmp = GetNewTile();
         m_current.AddHand(tmp);
         m_mutextaken = true;
         Tile         ttmp = GetPreviousPlayer().GetRejected();
         TilePosition tp   = GetTilePosition(ttmp);
         if (tp == TilePosition.Rejected)
         {
             ChangeTileStatus(GetPreviousPlayer().GetRejected(), TilePosition.Cemetery);
             GetPreviousPlayer().AddCemetery(GetPreviousPlayer().GetRejected());
             GetPreviousPlayer().AddRejected(null);
         }
         return(tmp);
     }
     catch (EndGameException edg)
     {
         ///
     }
     return(null);
 }
Пример #2
0
        public void PongSimple3()
        {
            PlayerData p1 = new PlayerData("toto");
            PlayerData p2 = new PlayerData("toto2");

            p1.AddHand(new Tile(Tile.Family.Bamboo, 1));
            p1.AddHand(new Tile(Tile.Family.Bamboo, 1));
            p1.AddHand(new Tile(Tile.Family.Bamboo, 1));

            p2.AddRejected(new Tile(Tile.Family.Bamboo, 1));
            IRule rule = new Pong();

            List <PlayerData> lpd = new List <PlayerData>();

            lpd.Add(p1);
            lpd.Add(p2);

            List <Mahjong.Plugin.IReferee.m_rulepossibility> possi = rule.Execute(lpd, p1);

            Assert.AreEqual(possi.Count, 1);
        }