예제 #1
0
        // Добавление новой части змеи

        private void Add_new_Block()
        {
            S_Body_Block New_Body_Block = m_Snake.Tail;

            m_Snake.Tail = new S_Tail(m_Snake.Tail.Last_Position, m_Snake.Tail.Direction, New_Body_Block);
            m_Board.Set_Points_Value(false, m_Snake.Tail.Location);
        }
예제 #2
0
        public S_Snake(E_Direction a_start_direction, params S_Location[] a_start_locations)
        {
            // В начале игры змейка выстраивается в линию
            // На данный момент решено что число начальных блоков строго равно четырем, поэтому этот код не обрабатывается через цикл, а кол-во не вынесено константным значением
            m_head = new S_Head(a_start_locations[0], a_start_direction);
            S_Body_Block BB1 = new S_Body_Block(a_start_locations[1], a_start_direction, m_head);
            S_Body_Block BB2 = new S_Body_Block(a_start_locations[2], a_start_direction, BB1);

            m_tail = new S_Tail(a_start_locations[3], a_start_direction, BB2);
        }
예제 #3
0
 public S_Tail(S_Location a_Location, E_Direction a_Direction, S_Body_Block a_Next_Body_Block = null)
     : base(a_Location, a_Direction, a_Next_Body_Block)
 {
 }
예제 #4
0
 public S_Body_Block(S_Location a_Location, E_Direction a_Direction, S_Body_Block a_Next_Body_Block = null)
     : base(a_Location)
 {
     m_Direction  = a_Direction;
     m_Next_Block = a_Next_Body_Block;
 }
예제 #5
0
 public S_Tail(S_Location a_Location, E_Direction a_Direction, S_Body_Block a_Next_Body_Block = null)
     : base(a_Location, a_Direction, a_Next_Body_Block)
 {
 }
예제 #6
0
 public S_Snake(E_Direction a_start_direction, params S_Location[] a_start_locations)
 {
     // В начале игры змейка выстраивается в линию
         // На данный момент решено что число начальных блоков строго равно четырем, поэтому этот код не обрабатывается через цикл, а кол-во не вынесено константным значением
         m_head = new S_Head(a_start_locations[0], a_start_direction);
         S_Body_Block BB1 = new S_Body_Block(a_start_locations[1], a_start_direction, m_head);
         S_Body_Block BB2 = new S_Body_Block(a_start_locations[2], a_start_direction, BB1);
         m_tail = new S_Tail(a_start_locations[3], a_start_direction, BB2);
 }
예제 #7
0
 public S_Body_Block(S_Location a_Location, E_Direction a_Direction, S_Body_Block a_Next_Body_Block = null)
     : base(a_Location)
 {
     m_Direction = a_Direction;
     m_Next_Block = a_Next_Body_Block;
 }