Beispiel #1
0
            public void search_for(c_search_target search_target)
            {
                if (try_search(search_target))
                {
                    return;
                }

                grid = grid.rotate();
                if (try_search(search_target))
                {
                    return;
                }

                grid = grid.rotate();
                if (try_search(search_target))
                {
                    return;
                }

                grid = grid.rotate();
                if (try_search(search_target))
                {
                    return;
                }

                grid = grid.flip();
                if (try_search(search_target))
                {
                    return;
                }

                grid = grid.rotate();
                if (try_search(search_target))
                {
                    return;
                }

                grid = grid.rotate();
                if (try_search(search_target))
                {
                    return;
                }

                grid = grid.rotate();
                if (try_search(search_target))
                {
                    return;
                }
            }
Beispiel #2
0
            private bool try_search(c_search_target search_target)
            {
                bool found_target = false;

                for (int row = 0; row < grid.Length - search_target.max_row; row++)
                {
                    for (int column = 0; column < grid[row].Length - search_target.max_column; column++)
                    {
                        if (search_target.positions.All(search_position => grid[row + search_position.Item1][column + search_position.Item2] != e_grid_value.off))
                        {
                            foreach ((int, int)search_position in search_target.positions)
                            {
                                grid[row + search_position.Item1][column + search_position.Item2] = e_grid_value.monster;
                            }

                            found_target = true;
                        }
                    }
                }

                return(found_target);
            }