コード例 #1
0
 public FetchTilesHandler(IStore store, IPocket pocket, ITileMakerClient client, IOptions <PocketOptions> options)
     : base(store)
 {
     _pocket          = pocket;
     _tileMakerClient = client;
     _pocketOptions   = Guard.Against.Null(options, nameof(options)).Value;
 }
コード例 #2
0
 public static TThing TakeOrThrow <TThing>(this IPocket pocket, [NotNull] string name) where TThing : class
 {
     if (!pocket.TryTake <TThing>(name, out var item))
     {
         throw new KeyNotFoundException($"Could not find an item with the key '{name}'.");
     }
     return(item);
 }
コード例 #3
0
 private static void ifNeighbourUpdateBalance(IPocket pocket, IPlayer p, IBet bet)
 {
     if (bet is NeighbourBet nBet)
     {
         if (nBet.FirstNumber == pocket.Number | nBet.SecondNumber == pocket.Number)
         {
             p.UpdateBalance(nBet.GetReturnStake());
         }
     }
 }
コード例 #4
0
 private static void IfEvenBetUpdateBalance(IPocket pocket, IPlayer p, IBet bet)
 {
     if (bet is EvenUnevenBet eBet)
     {
         if (eBet.IsEven == pocket.Even)
         {
             p.UpdateBalance(eBet.GetReturnStake());
         }
     }
 }
コード例 #5
0
 private static void IfColorBetUpdateBalance(IPocket pocket, IPlayer p, IBet bet)
 {
     if (bet is ColorBet cBet)
     {
         if (cBet.Color == pocket.Color)
         {
             p.UpdateBalance(cBet.GetReturnStake());
         }
     }
 }
コード例 #6
0
ファイル: Round.cs プロジェクト: Nick-Honings/Roulette2
 private void EndRound()
 {
     HasEnded = true;
     Pocket   = _wheel.Spin();
     if (RoundEnded != null)
     {
         RoundEnded(this, new RoundEndedEventArgs("Round has ended"));
         // Update statement needs to be called here, after the round has ended.
     }
 }
コード例 #7
0
ファイル: WheelTests.cs プロジェクト: Nick-Honings/Roulette
        public void Spin_ShouldReturnValidIPocket()
        {
            // Arrange

            // Act
            IPocket pocket = wheel.Spin();

            Assert.True((int)pocket.Number < 37);
            Assert.True(pocket.Even == this.IsNumberEven((int)pocket.Number));
        }
コード例 #8
0
 private static void IfSingleUpdateBalance(IPocket pocket, IPlayer p, IBet bet)
 {
     if (bet is SingleNumberBet sBet)
     {
         if (sBet.Number == pocket.Number)
         {
             p.UpdateBalance(sBet.GetReturnStake());
         }
     }
 }
コード例 #9
0
ファイル: DoorLogic.cs プロジェクト: vadwave/AI-Shodan
 bool Unlocked(Collider2D collision)
 {
     if (isLocked)
     {
         IPocket pocket = collision.transform.GetComponent <IPocket>();
         bool    isOpen = pocket.UseKey();
         isLocked = !isOpen;
         return(isOpen);
     }
     return(true);
 }
コード例 #10
0
 private void EndRound()
 {
     HasEnded = true;
     Pocket   = _wheel.Spin();
     this._roundTimer.Stop();
     if (RoundEnded != null)
     {
         RoundEnded(this, new RoundEndedEventArgs("Round has ended"));
     }
     this._roundDAL.Update(this);
 }
コード例 #11
0
        public Round(int id, IRoundDAL roundDAL, IWheel wheel)
        {
            this.Id              = id;
            this._roundDAL       = roundDAL;
            this._wheel          = wheel;
            _roundTimer          = new Timer(1000);
            _roundTimer.Elapsed += RoundTimer_Elapsed;



            this.Pocket = ExtractPocket(_roundDAL.GetPocket(this.Id));
        }
コード例 #12
0
        // Might need testing
        private void UpdateUserBalance()
        {
            IPocket pocket = Rounds[Rounds.Count - 1].Pocket;

            foreach (IPlayer p in Players)
            {
                IBet bet = p.CurrentBet;
                IfColorBetUpdateBalance(pocket, p, bet);
                IfEvenBetUpdateBalance(pocket, p, bet);
                ifNeighbourUpdateBalance(pocket, p, bet);
                IfSingleUpdateBalance(pocket, p, bet);
            }
        }
コード例 #13
0
ファイル: RoomTests.cs プロジェクト: Nick-Honings/Roulette2
        public void UpdateUserBalance_ShouldUpdate(IPocket betResult, IBet bet, decimal expected)
        {
            // Arrange
            room.AddUser(player);
            player.MakeBet(bet, 10);
            room.StartNewRound();
            room.Rounds[0].Pocket = betResult;

            // Act
            room.UpdateUserBalance();
            decimal result = player.Balance;

            // Assert
            Assert.Equal(expected, result);
        }
コード例 #14
0
        public static TThing TakeOrPut <TThing>(
            this IPocket pocket,
            [NotNull] string name,
            [NotNull] Func <TThing> thingFactory) where TThing : class
        {
            if (thingFactory == null)
            {
                throw new ArgumentNullException(nameof(thingFactory));
            }
            if (pocket.TryTake <TThing>(name, out var thing))
            {
                return(thing);
            }

            var madeThing = thingFactory();

            pocket.Put(name, madeThing);
            return(madeThing);
        }
コード例 #15
0
        public void UpdateUserBalance()
        {
            IPocket pocket = Rounds[Rounds.Count - 1].Pocket;

            foreach (IPlayer p in Players)
            {
                IBet bet = p.CurrentBet;
                if (bet is ColorBet cBet)
                {
                    if (cBet.Color == pocket.Color)
                    {
                        p.Balance += cBet.GetReturnStake();
                    }
                }
                if (bet is EvenUnevenBet eBet)
                {
                    if (eBet.IsEven == pocket.Even)
                    {
                        p.Balance += eBet.GetReturnStake();
                    }
                }
                if (bet is NeighbourBet nBet)
                {
                    if (nBet.FirstNumber == pocket.Number | nBet.SecondNumber == pocket.Number)
                    {
                        p.Balance += nBet.GetReturnStake();
                    }
                }
                if (bet is SingleNumberBet sBet)
                {
                    if (sBet.PocketNumber == pocket.Number)
                    {
                        p.Balance += sBet.GetReturnStake();
                    }
                }
            }
        }
コード例 #16
0
    void AddItem(Collider2D collision)
    {
        IPocket pocket = collision.transform.GetComponent <IPocket>();

        pocket.AddKey();
    }
コード例 #17
0
ファイル: PocketExtensions.cs プロジェクト: Eshva/Eshva.Poezd
 public static KeyNotFoundException MakeKeyNotFoundException(this IPocket _, string propertyName) =>
 new KeyNotFoundException($"Could not find an item with the key '{propertyName}'.");
コード例 #18
0
 public static TThing TakeOrNull <TThing>(this IPocket pocket, [NotNull] string name) where TThing : class
 {
     pocket.TryTake <TThing>(name, out var item);
     return(item);
 }