コード例 #1
0
ファイル: Grid.cs プロジェクト: calberto66/.NET
        //calculate the cell value by looking at the neighbouring cells
        private Cell calculateCell(Cell current, Cell left, Cell right)
        {
            Cell c = new Cell();
            //rule 1:   if both of the neighbouring cells have a state equal to the
            //          next state, then the cell is changed to the previous state.
            if (left.getState == current.getNextState && right.getState == current.getNextState)
            {
                c.setState(c.getPreviousState);
            }
            //rule 2:   if only one of the neighbouring cells has a state equal to
            //          the next state, then the cell is changed to the next state.
            else if (left.getState == current.getNextState || right.getState == current.getNextState)
            {
                c.setState(current.getNextState);
            }

            //rule 3:   if both neighbours have the same state as the current cell, then 
            //          the current cell is changed to the next state.
            else if (current.getState == left.getState && current.getState == right.getState)
            {
                c.setState(current.getNextState);
            }
            //rule 4:   if none of the above rules apply, leave the cell unchanged.
            else
            {
                return c;
            }            
            return c;
        }
コード例 #2
0
ファイル: Grid.cs プロジェクト: calberto66/.NET
 //scramble every cell in the cells array using a random integer
 public void scrambleCells(int number) 
 {
     generation++;
     Random r = new Random(number);
     int move;
     for (int i = 0; i < GRIDSIZE; i++)
     {
         move = r.Next(3);
         cells[i] = new Cell(move);
     }
 }
コード例 #3
0
ファイル: Grid.cs プロジェクト: calberto66/.NET
 public String name(Cell c) // return the value of the cell
 {
     return c.name();
 }