Düğümler ve işaretçiler nasıl?
Her zaman 6 yüz olduğunu varsayalım ve 1 düğüm 1 yüzde 1 kareyi temsil eder:
r , g , b
r , g , b
r , g , b
| | |
r , g , b - r , g , b
r , g , b - r , g , b
r , g , b - r , g , b
Bir düğümün yanındaki her düğüme bir işaretçi vardır. Bir daire dönüşü yalnızca işaretçiyi (düğüm sayısı / yüz sayısı) -1 düğümün üzerinden geçirir, bu durumda 2. Tüm dönüşler daire dönüşü olduğundan, yalnızca bir rotate
işlev oluşturun. Her bir düğümü bir boşluk hareket ettirmek ve onları yeterince hareket edip etmediğini kontrol etmek yinelemelidir, çünkü düğüm sayısı toplanacaktır ve her zaman dört yüz vardır. Değilse, taşınan değerin sayısını artırın ve tekrar arama döndürün.
İki kat bağlantılı olduğunu unutmayın, bu nedenle yeni sivri uçlu düğümleri de güncelleyin. Her zaman her düğümde bir işaretçi bulunan Yükseklik * Genişlik düğüm sayısı taşınacak, bu yüzden Yükseklik * Genişlik * 2 işaretçi sayısı güncellendi.
Tüm düğümler birbirlerine işaret ettiğinden, siz geldikçe her düğümü güncelleyerek dairenin etrafında dolaşın.
Bu, kenar kutusu veya karmaşık mantık olmadan, herhangi bir boyutta küp için çalışmalıdır. Bu sadece bir işaretçi yürüyüş / güncelleme.