コード例 #1
0
ファイル: Fish.cs プロジェクト: bash/Wator
        private IAction? WithRandomUnoccupiedCell(IOrganismEnvironment environment,
            UnoccupiedCellMapper unoccupiedCellMapper)
        {
            var unoccupiedNeighbours = environment.GetFreeNeighbours().ToList();

            if (unoccupiedNeighbours.Count == 0)
            {
                return null;
            }

            var destination = RandomElementPicker.PickRandomElement(unoccupiedNeighbours);

            return unoccupiedCellMapper(destination);
        }
コード例 #2
0
ファイル: Reproducer.cs プロジェクト: bash/Wator
        private IAction?Reproduce(OrganismKind ownKind, IOrganismEnvironment environment)
        {
            var unoccupiedNeighbours = environment.GetFreeNeighbours().ToList();

            if (unoccupiedNeighbours.Count == 0)
            {
                return(null);
            }

            var destination = RandomElementPicker.PickRandomElement(unoccupiedNeighbours);
            var clone       = Organism.Clone();

            return(new Copy(destination, clone, ownKind));
        }