コード例 #1
0
    public void SwapWithNeighbor(GameNode swap_neighbor, NeighborDirection direction)
    {
        GameNode[] neighbor_neighbors = swap_neighbor.GetNeighbors();
        swap_neighbor.SetNeighbors(neighbors);
        this.neighbors = neighbor_neighbors;

        for (int i = 0; i < neighbors.Length; i++)
        {
            if (neighbor_neighbors[i] != null)
            {
                neighbor_neighbors[i].SetNeighbor(swap_neighbor, (NeighborDirection)i);
            }
            if (neighbors[i] != null)
            {
                neighbors[i].SetNeighbor(this, (NeighborDirection)i);
            }
        }
    }
コード例 #2
0
 public void SetNeighbor(GameNode new_neighbor, NeighborDirection direction)
 {
     neighbors[(int)direction] = new_neighbor;
     new_neighbor.GetNeighbors()[(int)AntiDirection(direction)] = this;
 }