Sadece 4 Renk Kullanarak Türkiye Siyasi Haritasını Boyama

Visual basic , Delphi , C , C++ - Sadece 4 Renk Kullanarak Türkiye Siyasi Haritasını Boyama ...

Cevapla
Sadece 4 Renk Kullanarak Türkiye Siyasi Haritasını Boyama
Dram-Like isimli Üye şimdilik offline konumundadır

Dram-Like

Webmaster

Standart

Sadece 4 Renk Kullanarak Türkiye Siyasi Haritasını Boyama

Alt 24-02-2009 #1
Sponsorlu Bağlantılar

Bildiğiniz gibi dünya üzerindeki siyasi haritalar, sadece 4 renk kullanılarak boyanabilmektedir. Hadi bu işlemi Türkiye haritasında deneyelim.
Kodu çalıştırmak için, öncelikle elimizde aşağıdaki değişkenlerin olduğunu varsayıyorum.

// i. şehir j. şehre komşu mu?
bool komsu[SEHIR_SAYISI][SEHIR_SAYISI] = {true veya false}

// boyamada kullanılacak renkler
char renkler[5] = {SARI, TURUNCU, KIRMIZI, YEŞİL, MAVİ}

// şehirlerin boyanma sırası
vector<int> sira; // {3,24,12,...} gibi atanacaklar

// boyama işleminin bitmesine kolay karar verebilmek için bir sayaç
int siradaki = 0; // 0 --> SEHIR_SAYISI

Bu durumda aşağıdaki özyinelemeli olarak çalışan fonksiyon yardımıyla boyama sırasını ve şehirlerin renklerini belirleyebiliriz:


bool Boya(int k = 0)
{
bool bos[] = {true, true, true, true, true}; // kullanabileceğim renkler
int ekleme = 0;

for(int i=0; i<SEHIR_SAYISI; ++i)
if(komsu[k][i] && renkler[i] > 0)
bos[renkler[i]-1] = false;
else if(komsu[k][i] && renkler[i] == 0)
{
renkler[i] = -1;
sira.push_back(i);
++ekleme;
}

for(int i=0; i<5; ++i)
if(bos[i])
{
if(i == 4) // anneye dön
{
for(int j=0; j<ekleme; ++j)
{
renkler[sira[sira.size()-1]] = 0;
sira.pop_back();
}
--siradaki;
return false;
}

renkler[k] = i+1;
if(siradaki == SEHIR_SAYISI-1)
return true;

if(Boya(sira[++siradaki]))
break;
}

return true;
}
Bu mesajdan alıntı yap
Sponsor Links

Matbuu.com Reklamları

Cevapla

Benzer Konular
Konu Konu Bilgileri Forum Cevaplar Son Mesaj
Her türlü Türkiye haritası lazım. İlgilenenlr varmı acaba. (Siyasi, Fiziki, Beşeri vb adta45 Vektörel 5 12-01-2015 10:44:39
İlk Defa Türkiye Fırçaları, Türkiye Brush set Boyutu 3 mb jokermen Brush 41 10-12-2012 00:30:24
siyasi parti logoları graphicturk Vektörel 11 07-04-2010 08:50:48
dünya siyasi haritası hakkayy Vektörel 0 27-01-2009 23:15:15
Sadece 3 renk kullandığım basit bir etiket... Neoturko Ambalaj Tasarımı 4 03-10-2008 09:49:43

Kapat
Şifremi Unuttum?