Exemple #1
0
        public async Task Initialize()
        {
            var mineItems = from y in Enumerable.Range(0, GameSize.Height)
                            from x in Enumerable.Range(0, GameSize.Width)
                            select new MineItem(x, y);

            await MineItemRepository.Add(mineItems);
        }
Exemple #2
0
 public async Task GenerateNearCount()
 {
     foreach (var item in await MineItemRepository.GetBombs())
     {
         foreach (var x in MineItemRepository.Nears(item).Where(x => x.IsSome).Bind(x => x))
         {
             x.CountAdd();
         }
     }
 }
Exemple #3
0
        public async Task Click()
        {
            foreach (var item in await MineItemRepository.GetAll())
            {
                await item.Click();
            }
            var mineItem = await MineItemRepository.Get(0, 0);

            await mineItem.Click();
        }
Exemple #4
0
        public async Task SetBombs(int count = 5)
        {
            var rand = new Random();

            for (var i = 0; i < count; i++)
            {
                var item = await MineItemRepository.Get(rand.Next(GameSize.Width),
                                                        rand.Next(GameSize.Height));

                if (item.IsBomb)
                {
                    i--;
                    continue;
                }
                await item.SetBomb();
            }
        }
Exemple #5
0
 public async Task Render() => await Renderer.Render(MineItemRepository.ToString());
Exemple #6
0
 public GameService(GameSize gameSize, IRenderer renderer, MineItemRepository mineItemRepository)
 {
     GameSize           = gameSize;
     Renderer           = renderer;
     MineItemRepository = mineItemRepository;
 }