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
Cevapla

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

Kapat
Şifremi Unuttum?