Esempio n. 1
0
            public CellStackData CopyData()
            {
                CellStackData data = new CellStackData();

                data.ColumnCount = ColumnCount;
                data.RowCount    = RowCount;
                data.LayerCount  = LayerCount;
                data.CellAges    = GetCellAge();
                data.CellStates  = GetCellState();

                data.Position = new float[] { 0, 0, 0 };

                data.MeanStackDensity = MeanStackDensity;
                data.MaxLayerDensity  = MaxLayerDensity;
                data.MinLayerDensity  = MinLayerDensity;
                data.MaxAge           = MaxAge;
                data.AvgAge           = AvgAge;

                data.Fitness  = Fitness;
                data.DNAGENES = DNA.Genes;
                data.Name     = _name;

                data.LayerAvgAges   = new float[LayerCount];
                data.LayerDensities = new float[LayerCount];
                data.LayerMaxAges   = new float[LayerCount];

                for (int i = 0; i < LayerCount; i++)
                {
                    data.LayerAvgAges[i]   = Layers[i].AvgAge;
                    data.LayerDensities[i] = Layers[i].Density;
                    data.LayerMaxAges[i]   = Layers[i].MaxAge;
                }
                return(data);
            }
Esempio n. 2
0
            public void ResetStackFromStackData()
            {
                OpenFileDialog choofdlog = new OpenFileDialog();

                choofdlog.Filter      = "All Files (*.*)|*.*";
                choofdlog.FilterIndex = 1;
                choofdlog.Multiselect = true;

                if (choofdlog.ShowDialog() == DialogResult.OK)
                {
                    string        sFileName   = choofdlog.FileName;
                    string[]      arrAllFiles = choofdlog.FileNames; //used when Multiselect = true
                    CellStackData stackdata   = Interop.DeserializeBinary <CellStackData>(sFileName);


                    if (stackdata.ColumnCount != _rowCount || stackdata.RowCount != _columnCount || stackdata.LayerCount != _layerCount)
                    {
                        _columnCount = stackdata.ColumnCount;
                        _rowCount    = stackdata.RowCount;
                        _layerCount  = stackdata.LayerCount;
                        InitializeCells();
                    }


                    //set stack values
                    _name             = stackdata.Name;
                    _meanStackDensity = stackdata.MeanStackDensity;
                    _maxLayerDensity  = stackdata.MaxLayerDensity;
                    _minLayerDensity  = stackdata.MinLayerDensity;
                    _maxAge           = stackdata.MaxAge;
                    _avgAge           = stackdata.AvgAge;
                    _fitness          = stackdata.Fitness;
                    _dna = DNAI.CreateFromGenes(stackdata.DNAGENES);

                    UpdateDataText();



                    for (int z = 0; z < _layerCount; z++)
                    {
                        CellLayer layer = _layers[z];

                        //set layer values
                        layer.Density = stackdata.LayerDensities[z];
                        layer.AvgAge  = stackdata.LayerAvgAges[z];
                        layer.MaxAge  = stackdata.LayerMaxAges[z];

                        for (int x = 0; x < _rowCount; x++)
                        {
                            for (int y = 0; y < _columnCount; y++)
                            {
                                Cell cell = layer.Cells[x, y];
                                cell.State = 0;

                                //set cell values
                                cell.Age   = stackdata.CellAges[x, y, z];
                                cell.State = stackdata.CellStates[x, y, z];
                            }
                        }
                    }
                }
            }
Esempio n. 3
0
 public FitnessDNA(CellStackData data)
 {
     fitness = data.Fitness;
     DNA     = DNAI.CreateFromGenes(data.DNAGENES);
 }