Ana SayfaYeni EklenenlerÜye OlŞifremi UnuttumYardımBize Yazın
Rumuz veya E-Mail :   Şife :    
Godoro


İlgili Maddeler
>Bilim ve Teknoloji >Uygulamalı Bilimler ve Teknoloji >Bilgisayar ve İletişim >Yazılım >Programlama >Algoritma  , 

İpucu/Nasıl Yapılır İçeriği

Lig Fikstürü Oluşturma

Lig tarzında her takımın her round'da bir kere karşılacağı şekilde bir lig veya turnuva fikstürü oluşturmak için aşağıdaki gibi bir algoritma kullanılabilir. 

Örneğin 8 takımlı bir turnuva-lig olur ise ilk round aşağıdaki gibi yapılır 

1.Round
1. 2. 3. 4.
8. 7. 6. 5.
2.Round
1. 8. 2. 3.
7. 6. 5. 4.
3.Round
1. 7. 8. 2.
6. 5. 4. 3.

Bu şekilde devam eder ve son round aşağıdaki gibi olur :

7.Round
1. 3. 4. 5.
2. 8. 7. 6.

Round'ların oluşturulması şu şekildedir : İlk round'da 1. takımdan 8. takıma kadar takım "saat yönüne" göre sıralanır. Saat yönüne göre sıralandığında alt-üst olarak gelen iki takım o round'da karşılaşacak demektir. Her yeni round'da 1. takım sabit tutulur ve diğer takımlar saat yönünde kaydırılır. Örneğin 2. raound'da 8. yukarı çıkar ve 1. yanına geçer. Kaydırma bu şekilde devam eder ve 1. takımın altında 2. takım olana kadar devam eder. Bu şekilde tüm takımlar sıra ile 1. takımın rakibi olmuş olur ve diğer karşılaşmalar ayarlanmış olur. 

Bu algoritma tüm çift sayı değerleri için uygulanabilir. Tek takım için ise tek sayı çift sayıya tamamlanır (son takım varmış gibi) sonra son takım ile oynayan takım o round'u pas geçer. 

Bu algoritma ile round'lar (Her hafta oynanan ligler için round hafta anlamına gelir) üretildikten sonra hangi takımın kaçıncı sıra olduğu kurası çekilir. Çekilen kura sonucu hangi takımın kiminle oynayacağı belirlenmiş olur.

Java ile istenilen sayıda takımdan oluşacak lig aşağıdaki gibi oluşturulabilir : 

 

private void generateFixture(int teamSize){
        
        // Kaç round sonrası lig tamamlanacak
        int roundCount=teamSize-1; 
        // Bir round'da ne kadar maç oynanır
        int matchCountPerRound=teamSize/2; 
        
        List<Integer> list=new ArrayList<Integer>();
        
        // Takim listesini oluşturuyoruz. 
	//0. takımdan (teamSize-1). takima kadar.
        for (int i = 0; i < teamSize; i++) {
                list.add(i);
        }
        
        for (int i = 0; i < roundCount; i++) {
                
                System.out.println(i+".nci Round:");
                
                for(int j=0;j<matchCountPerRound;j++){
                        
                        int firstIndex=j;
                        int secondIndex=(teamSize-1)-j;
                        
                        System.out.println(list.get(firstIndex)
+"-"+list.get(secondIndex));
                        
                }
                
                // İlk eleman sabit olacak şekilde elamanları kaydırıyoruz
                List<Integer> newList=new ArrayList<Integer>(); 
                
                // İlk eleman sabit
                newList.add(list.get(0)); 

                // Son eleman ikinci eleman yapıyoruz.
                newList.add(list.get(list.size()-1)); 
                
                for(int k=1;k<list.size()-1;k++){                            
                        newList.add(list.get(k));
                }
                
                // Keydırılan liste yeni liste oluyor.
                list=newList;                    
                 
        }
        
        System.out.println("Toplam Round Sayısı : "+roundCount);
        System.out.println("Bir Round'daki Maç Sayısı:  "+matchCountPerRound);
        
}

Yukarıda tanımlanmış generateFixture fonksiyonu verilen değer kadar round oluşturup , ekrana basmaktadır. Ekrana basmak yerine oluşan değerler bir listeye atanıp döndürülebilir. 

 

İpucunu Doğru Bulanlar:0 | İpucunu Yanlış Bulanlar:0 |



Üye Seçimleri/Yorumları
Herhangi bir seçim bulunmuyor

Seçim yapabilmeniz için giriş yapmanız gerekmektedir : Giriş


Facebook Üyelerinin Yorumları


Gündem
Eski ( 2011 | 2012 )  , 2013 ( Taksim Gezi Parkı Olayları | AKP-Cemaat Kavgası )  , fibiler.com
Bilim ve Teknoloji
Bilimsel Yöntem , Formel Bilimler ( Matematik | İstatistik | Mantık )  , Dünya ve Evren ( Jeoloji | Kimya | Fizik | Astronomi ve Uzay Bilimi )  , Uygulamalı Bilimler ve Teknoloji ( Bilgisayar ve İletişim | Enerji | Elektrik-Elektronik )
Canlılar - Sağlık - Tıp
Biyoloji ( Canlılar | Kalıtım - Genetik | Evrim | Kök Hücre | Kan Grupları | Göz | Deri | Biyologlar )  , Beyin , Dolaşım Sistemleri , Grip - Nezle , İç Hastalıkları - Dahiliye ( Böbrek Hastalıkları | Hıçkırık )  , Kanser , Bağışıklık Sistemi , Sindirim Sistemi ( Mide Yanması | Peptik Ülser | Gastrit | Endoskopi-Kolonoskopi )  , Üroloji ( Varikosel )  , Romatizma , Ağız ve Diş , Ben - Nevüs , Kalıtımsal Hastalıklar ( Albinizm )  , Mantar Enfeksiyonları , Beden Kitle İndeksi , İlaç ( Antibiyotik | Antihistaminik )
Toplum ve Kültür
Sosyal Bilimler ( Sosyoloji | Dil | Psikoloji | Antropoloji | Coğrafya )  , Toplumlar-Ülkeler ( Ülkeler | Türkler | Ortadoğu | Kafkas | Asya | Avrupa | Amerika | Eskimo-Aleut )  , Kitap ( Java Kitapları | Tarih Kitapları )  , İletişim ( İnternet )  , Ödüller ( Nobel Ödülleri )  , Yiyecek-İçecek ( Baklava )  , Aile , Eğitim-Öğretim ( Türkiye )  , Spor ( Basketbol | Voleybol )  , Zaman ve Takvim , Özel Günler ve Haftalar
Sanat - Eğlence
Müzik ( Türk Müziği | Hint Müziği | Batı Müziği | A Ram Zam Zam )  , Mizah ( Türk Mizahı )  , Gösteri Sanatları ( Dizi Film | Tiyatro | Sinema )  , Edebiyat ( Söz Sanatları | Şiir - Nazım | Nesir - Düzyazı | Mitoloji - Destan - Efsane | Türk Edebiyatı | Batı Edebiyatı | İskandinav Mitolojisi | Damoklesin Kılıcı )  , Mimarlık ( Türk Mimarisi | Eski Yunan ve Roma | Ayasofya )  , Eğlence-Etkinlik ( Seyahat-Gezi )
İnanç-Mitoloji-Felsefe
Din ( Tanrı | İslam | Zerdüştlük | Eski Türk Dinleri | Yahudilik - Musevilik | Hristiyanlık | Manicilik | Bahailik | Yezidilik | Budizm | Hinduizm | Putperestlik | Tufan )  , Felsefe ( Murphy Kanunları )  , Astroloji , Yecüc Mecüc , Ejderha
Ekonomi - Siyaset - Polika
Türkiye ( Cumhuriyet | Demokrasi | Kürt Sorunu | Belediye | Türban-Başörtüsü Sorunu | Gülen Cemaati - Hizmet Hareketi )  , Ekonomi ve İş Dünyası ( Ekonomik Sistemler | İş Dünyası | İnternet | Kıymetli Evrak | Faiz | Maliye - Muhasebe )  , Yönetim Sistemleri ( Laiklik | Demokrasi )  , Adalet - Hukuk ( Ölüm Cezası | Türkiye | Kıymetli Evrak )  , Kitle İletişim Araçları ve Medya ( TRT | Magazin | Gazeteci )  , Yasa Dışı Örgütler ( El-Kaide )  , Terör ( 11 Eylül )  , Gizli Örgütler ve Masonluk , Komplo Teorisi , Güvenlik-Savunma ( Türk Silahlı Kuvvetleri )
Tarih
Türk Tarihi ( Osmanlı Devleti | Türkiye | Eyyubiler | Selçuklu Devleti | Göktürk Devleti | Chou Devleti | Hunlar | Hükümdarlık ve İdari Sistem )  , İlkçağlar ( Mezopotamya-Yakın Doğu | Avrupa-Akdeniz | Avrasya | Anadolu )  , Uygarlık Tarihi ( Tüfek , Mikrop ve Çelik )  , Moğol Tarihi , Avrupa Tarihi ( Batı Uygarlığı | Rusya | Yugoslavya )  , Amerika , Uzakdoğu ( Chou Devleti )  , Karbon-14 Yöntemi , Çağlar , Takvim Sistemleri , Seyyahlar-Kaşifler , Tarih Kitapları ( Bey İle Büyücü | İran ve Turan )  , Tarihçiler ( Osman Karatay )

Kategoriler | Yardım | Bize Yazın | fibiler@fibiler.com | Facebook | Twitter | Google+ | fibiler@googlegroups.com
Her Hakkı Saklıdır
Bu sitede yayınlanan tüm maddelerin (kavram,veri,sav,manifesto,etiket,kişi,eser,soru,kaynak,anket,blog,olay,ipucu,öneri,materyal,hata) ve içeriklerinin hepsi başka kaynaklardan derlemedir ve site yönetimine ait değildir.
Bu sitede bulunan resim,ses,video ve sanat eserleri gibi materyaller internet üzerinden derlenmiştir ve telif hakkları sahiplerine aittir.
Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir
Üyenin girdiği tüm yazı ve içeriklerden üyenin kendisi sorumludur ve bu içerikler ile ilgili site yönetimi sorumluluk kabul etmez.
Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir.