Ejemplo n.º 1
0
 public void CreateMap()
 {
     MineMap = new MineMap(5, 5);
     MineMap.GenerateBombs(1);
     MineMap.GenerateCountNearBombs();
     MineMap.ConvertMap();
 }
Ejemplo n.º 2
0
        public static void SavePreSelection(WorldClient client, string[] args)
        {
            if (PreSelectionElementsIds == null)
            {
                client.Character.ReplyError("Create a pre-selection first using <i>.mine preselect</i>.");
                return;
            }

            var mapId = PreSelectionMapId;

            var mineMap = Mine.Maps.Find(map => map.MapId == mapId);

            if (mineMap == null)
            {
                mineMap = new MineMap(mapId);
                Mine.AddMap(ref mineMap);
            }

            for (int i = 1; i < PreSelectionElementsIds.Count; i++)
            {
                int elementId = PreSelectionElementsIds[i].ElementId;
                mineMap.AddElement(elementId);
            }

            client.Character.Reply($"Added {PreSelectionElementsIds.Count - 1} mine elements to map {mapId}.");
        }
Ejemplo n.º 3
0
        public static void AddMap(WorldClient client, string[] args)
        {
            if (Mine == null)
            {
                client.Character.ReplyError("You must initialize your mine first. See <i>.mine init</i>.");
                return;
            }

            if (args.Length < 2)
            {
                client.Character.Reply(".mine addmap|am [$ElementId ...]");
                client.Character.Reply(".mine <b>$ElementId</b> ⇒ The ID of the elements (see <i>.el show</i>) on your map.");
                return;
            }

            var mapId = client.Character.Map.Id;

            var mineMap = Mine.Maps.Find(map => map.MapId == mapId);

            if (mineMap == null)
            {
                mineMap = new MineMap(mapId);
                Mine.AddMap(ref mineMap);
            }

            for (int i = 1; i < args.Length; i++)
            {
                int elementId = int.Parse(args[i]);
                mineMap.AddElement(elementId);
            }

            client.Character.Reply($"Added {args.Length - 1} mine elements to map {mapId}.");
        }
Ejemplo n.º 4
0
        public void Should_EndGame()
        {
            MineItem[,] expect = new MineItem[3, 3]
            {
                {
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                },
            };

            // Act
            var mineMap = new MineMap(3, 3);

            mineMap.MineItems[0, 0].IsBomb = true;

            mineMap.GenerateCountNearBombs();
            //mineMap.Click(2, 2);

            //mineMap.Click(0, 0);

            for (int j = 0; j < 3; j++)
            {
                for (int i = 0; i < 3; i++)
                {
                    mineMap.Click(i, j);
                }
            }
            // Assert
            mineMap.CheckEndGame().Should().Be(true);
        }
Ejemplo n.º 5
0
        public void CreateMap(int height, int width)
        {
            Width  = width;
            Height = height;

            minemap = new MineMap(Height, Width);
            minemap.GenerateBombs(4);
            minemap.GenerateCountNearBombs();
            minemap.ConvertMap();
        }
Ejemplo n.º 6
0
        //public DelegateCommand ClickCommand { get; set; }
        //public ObservableCollection<MineMap> mineitem { get; set; }


        public MineMapViewModel()
        {
            MineMap minemap = new MineMap(5, 5);

            minemap.GenerateBombs(2);
            minemap.GenerateCountNearBombs();


            //mineitem = new ObservableCollection<MineMap>();


            //mineitem.Add(minemap);

            //CreateMap(5, 5);
            //CreateGrid();
        }
Ejemplo n.º 7
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var button = sender as Button;


            if (button != null)
            {
                int row  = Grid.GetRow(button);
                int col  = Grid.GetColumn(button);
                var Item = MineMap.MineItems[row, col];

                if (Item.IsBomb == false)
                {
                    if (Item.IsCovered == true)
                    {
                        Item.IsCovered = false;
                        button.Content = Item.NearBombsCount;

                        if (Item.NearBombsCount == 0)
                        {
                            MineMap.Click(row, col);
                        }
                    }
                    else
                    {
                        button.Content = Item.NearBombsCount;
                    }
                }
                else
                {
                    MessageBox.Show("Boom!");
                }
            }
            else
            {
                MessageBox.Show("Button is null");
            }
        }
Ejemplo n.º 8
0
        public void Should_GenerateBombs(int expectBombCount)
        {
            // arrange

            // act
            var mineMap = new MineMap(5, 5);

            mineMap.GenerateBombs(expectBombCount);

            // assert
            int countBombs = 0;

            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    if (mineMap.MineItems[i, j].IsBomb)
                    {
                        countBombs++;
                    }
                }
            }
            countBombs.Should().Be(expectBombCount);
        }
Ejemplo n.º 9
0
        public void Should_Generated_Bombs()
        {
            // Arrange
            var actualMineMap = new MineMap(9, 9, 10);

            // Act
            actualMineMap.GeneratedBombs();

            // Assert
            int countBombs = 0;

            for (int j = 0; j < actualMineMap.Height; j++)
            {
                for (int i = 0; i < actualMineMap.Width; i++)
                {
                    if (actualMineMap[j, i].IsBomb)
                    {
                        countBombs++;
                    }
                }
            }

            countBombs.Should().Be(10);
        }
Ejemplo n.º 10
0
        public void Should_Generated_All_Near_Bombs_Count()
        {
            // Arrange
            var expectedMineItems = new MineItem[9, 9]
            {
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 3
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 3
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
            };

            var actualMineMap = new MineMap(9, 9);

            actualMineMap[1, 2].IsBomb = true;
            actualMineMap[1, 7].IsBomb = true;
            actualMineMap[3, 4].IsBomb = true;
            actualMineMap[3, 7].IsBomb = true;
            actualMineMap[4, 0].IsBomb = true;
            actualMineMap[4, 4].IsBomb = true;
            actualMineMap[5, 2].IsBomb = true;
            actualMineMap[5, 6].IsBomb = true;
            actualMineMap[7, 1].IsBomb = true;
            actualMineMap[7, 4].IsBomb = true;


            // Act
            actualMineMap.GenerateAllNearBombsCount();

            // Assert
            for (int j = 0; j < actualMineMap.Height; j++)
            {
                for (int i = 0; i < actualMineMap.Width; i++)
                {
                    actualMineMap[j, i].Value.Should().Be(expectedMineItems[j, i].Value, $"[{j}, {i}]");
                }
            }
        }
Ejemplo n.º 11
0
        public void Should_GenerateCountNearBombs2()
        {
            // arrange
            MineItem[,] expect = new MineItem[5, 5]
            {
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 3
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 3
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
            };

            // act
            var mineMap = new MineMap(5, 5);

            mineMap.MineItems[0, 3].IsBomb = true;
            mineMap.MineItems[1, 2].IsBomb = true;
            mineMap.MineItems[3, 1].IsBomb = true;
            mineMap.MineItems[3, 2].IsBomb = true;

            mineMap.GenerateCountNearBombs();

            // assert
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    mineMap.MineItems[i, j].ToString().Should().Be(expect[i, j].ToString(), $"[{i}, {j}]");
                }
            }
        }
Ejemplo n.º 12
0
        public void Should_Click2()
        {
            MineItem[,] expect = new MineItem[5, 5]
            {
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1, IsCovered = false
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 3
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 3
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = true
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
                {
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 2
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 1
                    },
                    new MineItem {
                        IsBomb = false, NearBombsCount = 0
                    }
                },
            };

            // Act
            var mineMap = new MineMap(5, 5);

            mineMap.MineItems[0, 3].IsBomb = true;
            mineMap.MineItems[1, 2].IsBomb = true;
            mineMap.MineItems[3, 1].IsBomb = true;
            mineMap.MineItems[3, 2].IsBomb = true;

            mineMap.GenerateCountNearBombs();

            int y = 0;
            int x = 1;

            mineMap.Click(y, x);
            //mineMap.MineItems[y,x].ToString().Should().Be(expect[y, x].ToString(), $"[{y}, {x}]");

            // assert
            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 5; j++)
                {
                    mineMap.MineItems[i, j].ToString().Should().Be(expect[i, j].ToString(), $"[{i}, {j}]");
                }
            }
        }