コード例 #1
0
        private void Flip(Cell c)
        {
            int diff = c.Living ? -1 : 1;

            if (c.Living)
                c.Living = false;
            else
                c.Living = true;

            foreach (int[] nbr in nbrs)
            {
                nrow = c.Row + nbr[0];
                ncol = c.Col + nbr[1];

                if(nrow >= 0 && nrow < rows && ncol >= 0 && ncol < cols)
                {
                    Cell nc = cells[nrow,ncol];
                    if (nc != null)
                    {
                        nc.Nbrs += diff;
                    }
                }
            }
        }
コード例 #2
0
        private void InitializeAppearance()
        {
            InitializeConfiguration();

            Width = width+padX;
            Height = height+padY;

            cols = width / size;
            rows = height / size;

            cells = new Cell[rows, cols];

            lblLifespan.Content = strLifespan;
            tbLifespan.Text = lifespan.ToString();

            lblSleep.Content = strSleep;
            tbSleep.Text = sleep.ToString();

            btnStartPause.Content = strStart;
            btnStop.Content = strStop;
            btnClear.Content = strClear;

            pbar.Foreground = alive;
            pbar.Background = dead;

            for (int row = 0; row < rows; row++)
            {
                StackPanel sp = new StackPanel() { Orientation = Orientation.Horizontal };
                for (int col = 0; col < cols; col++)
                {
                    Cell c = new Cell(size, thickness, row, col, alive, dead, border);
                    c.Click += c_Click;
                    cells[row,col] = c;
                    sp.Children.Add(c);
                }
                stackpanel.Children.Add(sp);
            }
        }