Lig Fikstürü Oluşturma

Merhabalar
Aşağıdaki kod ile takımları birbirleriyle eşleştiriyorum. Fakat 1 takımın diğer takımla bir kere eşleşmesi durumunu döngüde çözemedim. Normal bir futbol ligindeki gibi ilk devre her takım diğeriyle sadece 1 kere karşılaşmalı. Bu koşul nasıl sağlanır.

ligin_ilk_yarisi = []

ligin_ikinci_yarisi = []

teams = [

     "Galatasaray", "Fenerbahçe",

     "Beşiktaş", "Trabzonspor",

     "Göztepe", "Karşıyaka"

 ]

 

for i in teams:

    for j in teams:

        if i != j:

            eslesme = [i, j]

            ligin_ilk_yarisi.append(eslesme)

                 

for k in enumerate(ligin_ilk_yarisi,1):

    print("Ligde İlk Devre Maçları : ", k[0], k[1])

sonuç:
Ligde İlk Devre Maçları : 1 [‘Galatasaray’, ‘Fenerbahçe’]
Ligde İlk Devre Maçları : 2 [‘Galatasaray’, ‘Beşiktaş’]
Ligde İlk Devre Maçları : 3 [‘Galatasaray’, ‘Trabzonspor’]
Ligde İlk Devre Maçları : 4 [‘Galatasaray’, ‘Göztepe’]
Ligde İlk Devre Maçları : 5 [‘Galatasaray’, ‘Karşıyaka’]
Ligde İlk Devre Maçları : 6 [‘Fenerbahçe’, ‘Galatasaray’]
Ligde İlk Devre Maçları : 7 [‘Fenerbahçe’, ‘Beşiktaş’]
Ligde İlk Devre Maçları : 8 [‘Fenerbahçe’, ‘Trabzonspor’]
Ligde İlk Devre Maçları : 9 [‘Fenerbahçe’, ‘Göztepe’]
Ligde İlk Devre Maçları : 10 [‘Fenerbahçe’, ‘Karşıyaka’]
Ligde İlk Devre Maçları : 11 [‘Beşiktaş’, ‘Galatasaray’]
Ligde İlk Devre Maçları : 12 [‘Beşiktaş’, ‘Fenerbahçe’]
Ligde İlk Devre Maçları : 13 [‘Beşiktaş’, ‘Trabzonspor’]
Ligde İlk Devre Maçları : 14 [‘Beşiktaş’, ‘Göztepe’]
Ligde İlk Devre Maçları : 15 [‘Beşiktaş’, ‘Karşıyaka’]
Ligde İlk Devre Maçları : 16 [‘Trabzonspor’, ‘Galatasaray’]
Ligde İlk Devre Maçları : 17 [‘Trabzonspor’, ‘Fenerbahçe’]
Ligde İlk Devre Maçları : 18 [‘Trabzonspor’, ‘Beşiktaş’]
Ligde İlk Devre Maçları : 19 [‘Trabzonspor’, ‘Göztepe’]
Ligde İlk Devre Maçları : 20 [‘Trabzonspor’, ‘Karşıyaka’]
Ligde İlk Devre Maçları : 21 [‘Göztepe’, ‘Galatasaray’]
Ligde İlk Devre Maçları : 22 [‘Göztepe’, ‘Fenerbahçe’]
Ligde İlk Devre Maçları : 23 [‘Göztepe’, ‘Beşiktaş’]
Ligde İlk Devre Maçları : 24 [‘Göztepe’, ‘Trabzonspor’]
Ligde İlk Devre Maçları : 25 [‘Göztepe’, ‘Karşıyaka’]
Ligde İlk Devre Maçları : 26 [‘Karşıyaka’, ‘Galatasaray’]
Ligde İlk Devre Maçları : 27 [‘Karşıyaka’, ‘Fenerbahçe’]
Ligde İlk Devre Maçları : 28 [‘Karşıyaka’, ‘Beşiktaş’]
Ligde İlk Devre Maçları : 29 [‘Karşıyaka’, ‘Trabzonspor’]
Ligde İlk Devre Maçları : 30 [‘Karşıyaka’, ‘Göztepe’]
PS D:\PythonVS_CodeProjeler>

Kod doğru sonuç verdi mi acaba? :slight_smile:

ligin_ilk_yarisi = []
ligin_ikinci_yarisi = []
teams = ["Galatasaray", "Fenerbahçe", "Beşiktaş", "Trabzonspor", "Göztepe", "Karşıyaka"]

for i in teams:
    for j in teams:
        if i != j:
            eslesme = [i, j]
            if [j, i] not in ligin_ilk_yarisi:
                ligin_ilk_yarisi.append(eslesme)


for k in enumerate(ligin_ilk_yarisi,1):
    print("Ligde İlk Devre Maçları : ", k[0], k[1])

Çıktı:

Ligde İlk Devre Maçları :  1 ['Galatasaray', 'Fenerbahçe']
Ligde İlk Devre Maçları :  2 ['Galatasaray', 'Beşiktaş']
Ligde İlk Devre Maçları :  3 ['Galatasaray', 'Trabzonspor']
Ligde İlk Devre Maçları :  4 ['Galatasaray', 'Göztepe']
Ligde İlk Devre Maçları :  5 ['Galatasaray', 'Karşıyaka']
Ligde İlk Devre Maçları :  6 ['Fenerbahçe', 'Beşiktaş']
Ligde İlk Devre Maçları :  7 ['Fenerbahçe', 'Trabzonspor']
Ligde İlk Devre Maçları :  8 ['Fenerbahçe', 'Göztepe']
Ligde İlk Devre Maçları :  9 ['Fenerbahçe', 'Karşıyaka']
Ligde İlk Devre Maçları :  10 ['Beşiktaş', 'Trabzonspor']
Ligde İlk Devre Maçları :  11 ['Beşiktaş', 'Göztepe']
Ligde İlk Devre Maçları :  12 ['Beşiktaş', 'Karşıyaka']
Ligde İlk Devre Maçları :  13 ['Trabzonspor', 'Göztepe']
Ligde İlk Devre Maçları :  14 ['Trabzonspor', 'Karşıyaka']
Ligde İlk Devre Maçları :  15 ['Göztepe', 'Karşıyaka']

Şöyle düşünmüştüm.

for i in range(6):
    for j in range(i+1, 6):
       eslesme=teams[i],teams[j]
       ligin_ilk_yarisi.append(eslesme)

Kodun tamamı.

ligin_ilk_yarisi = []

ligin_ikinci_yarisi = []

teams = [

     "Galatasaray", "Fenerbahçe",

     "Beşiktaş", "Trabzonspor",

     "Göztepe", "Karşıyaka"

 ]

 

for i in range(6):
    for j in range(i+1, 6):
       eslesme=teams[i],teams[j]
       ligin_ilk_yarisi.append(eslesme)
    
                 

for k in enumerate(ligin_ilk_yarisi,1):

    print("Ligde İlk Devre Maçları : ", k[0], k[1])

image

Basit bir kombinasyon.

Ne gerek var o kadar iflere miflere…

Sizin mesajın altına gelmiş, kusura bakmayın. İfler ve kodlar konusu sizin için değil üzerinize alınmayın.

Sizin mesajın altına gelmiş, kusura bakmayın. İfler ve kodlar konusu sizin için değil üzerinize alınmayın.

Estağfurullah, doğru söze ne denir :slight_smile:

Haklısın, ne kadar basit ve az kod ile doğru sonucu alırsan, o kadar doğru algoritma kurmuş ve hızlı sonuç almışsın demektir.

Kodunda tek gözüme çarpan kısım bu satır;

for i in range(6):

O satırı aşağıdaki gibi yazsan daha şık olur diye düşünüyorum.
Takım listesine yeni takımlar eklenirse, 6 değerini elle değiştirmene gerek kalmaz.

for i in range(len(teams)):

Söyledim ya sizin çözümün altına denk gelmiş ben karşılaştırma yapmadna basitçe çözülebileceğini göstermek istedim.

Tabi bu da zevk meselesi ama sadece o satırı değiştirirsek olmaz, madem şık duracak
bir altındaki;

for j in range(i+1, 6):

satırında da aynısını yapmak lazım.

1 Beğeni

Sn. @semtex ve @m.halil İlginiz için öncelikle teşekkürler. Bu fikstür çok dezavantajlı :slight_smile: Galatasaray tüm ilkyarı maçlarını kendi sahasında oynamak zorunda. Takım sayısını 7 yapsak ve tüm takımların 3 içerde 3 dışarda maç yapması nasıl sağlarız. Normal ligler gibi asıl sorun bu. Ben indexlere takla attırdım ama beceremedim. Konuyu yeterince kavrayamamışım demek ki.

Indexlere takla attirmaya gerek yok, iki geciste cozulur. Ilk geciste oynayacak takim ciftlerini bulup, ikinci geciste kimin kendi sahasinda oynayacagini belirlemen lazim.

Rica ederim.
Aşağıdaki kodlarda uygulamaya çalıştığım şey;

  • Toplam 7 takımdan her biri 3 kez kendi sahasında oynayacak
  • Rakipler rastgele (random modülü sayesinde) seçilecek.

derdinize derman olur mu bilemem ama kodlar aşağıda.

from random import randint

ligin_ilk_yarisi = []

takimlar = ["Galatasaray", "Fenerbahçe","Beşiktaş",  "Trabzonspor", "Göztepe", "Karşıyaka", "İstanbul Spor"]

def takim_sec():    # listeden rastgele takım seçer.
    takim = takimlar[randint(0,len(takimlar)-1)]
    return takim

def esle(takim):    # belirtilen takıma rakip yeni takım seçip eşler.
    rakip = takim_sec()
    if takim != rakip: 
        return (takim, rakip)
    else:
        return esle(takim)

def ucle(tk):       # her takım için, 3 rakip belirle ve eşle
    liste = []
    while len(liste) < 3:
        x = esle(tk) 
        if x not in liste:
            liste.append(x)
    return liste

for takim in takimlar:
    ligin_ilk_yarisi.append(ucle(takim))

sayac = 1
for takim_rakipler in ligin_ilk_yarisi:
    for takim_rakip in takim_rakipler:
        print("Ligde İlk Devre Maçları : ", str(sayac), takim_rakip[0], takim_rakip[1])
        sayac += 1

çıktılardan biri:

Ligde İlk Devre Maçları :  1 Galatasaray Trabzonspor
Ligde İlk Devre Maçları :  2 Galatasaray Beşiktaş
Ligde İlk Devre Maçları :  3 Galatasaray Fenerbahçe
Ligde İlk Devre Maçları :  4 Fenerbahçe Karşıyaka
Ligde İlk Devre Maçları :  5 Fenerbahçe İstanbul Spor
Ligde İlk Devre Maçları :  6 Fenerbahçe Trabzonspor
Ligde İlk Devre Maçları :  7 Beşiktaş Karşıyaka
Ligde İlk Devre Maçları :  8 Beşiktaş Galatasaray
Ligde İlk Devre Maçları :  9 Beşiktaş İstanbul Spor
Ligde İlk Devre Maçları :  10 Trabzonspor Göztepe
Ligde İlk Devre Maçları :  11 Trabzonspor Fenerbahçe
Ligde İlk Devre Maçları :  12 Trabzonspor İstanbul Spor
Ligde İlk Devre Maçları :  13 Göztepe Trabzonspor
Ligde İlk Devre Maçları :  14 Göztepe İstanbul Spor
Ligde İlk Devre Maçları :  15 Göztepe Karşıyaka
Ligde İlk Devre Maçları :  16 Karşıyaka Trabzonspor
Ligde İlk Devre Maçları :  17 Karşıyaka İstanbul Spor
Ligde İlk Devre Maçları :  18 Karşıyaka Galatasaray
Ligde İlk Devre Maçları :  19 İstanbul Spor Göztepe
Ligde İlk Devre Maçları :  20 İstanbul Spor Trabzonspor
Ligde İlk Devre Maçları :  21 İstanbul Spor Karşıyaka

Son olarak, Maç sıralamasını da random modülü yardımı ile gerçekleştirdim.
Daha doğru oldu sanıyorum.

from random import randint
import random

ligin_ilk_yarisi = []

takimlar = ["Galatasaray", "Fenerbahçe","Beşiktaş", "TrabzonSpor", "Göztepe", "Karşıyaka", "İstanbulSpor"]

def takim_sec(): # listeden rastgele takım seçer.
    takim = takimlar[randint(0,len(takimlar)-1)]
    return takim

def esle(takim): # belirtilen takıma rakip yeni takım seçip eşler.
    rakip = takim_sec()
    if takim != rakip: 
        return (takim, rakip)
    else:
        return esle(takim)

def ucle(tk): # her takım için, 3 rakip belirle ve eşle
    liste = []
    while len(liste) < 3:
        x = esle(tk) 
        if x not in liste:
            liste.append(x)
    return liste

for takim in takimlar:
    b = ucle(takim)
    for a in b:
        ligin_ilk_yarisi.append(a)

random.shuffle(ligin_ilk_yarisi)
#for x in ligin_ilk_yarisi:
   # print(x)
    
sayac = 1
for maclar in ligin_ilk_yarisi:
    print("Ligde İlk Devre Maçları : ", str(sayac), maclar)
    sayac += 1

Çıktılardan biri :

Ligde İlk Devre Maçları :  1 ('Galatasaray', 'Karşıyaka')
Ligde İlk Devre Maçları :  2 ('İstanbulSpor', 'Göztepe')
Ligde İlk Devre Maçları :  3 ('Göztepe', 'Karşıyaka')
Ligde İlk Devre Maçları :  4 ('Fenerbahçe', 'İstanbulSpor')
Ligde İlk Devre Maçları :  5 ('Karşıyaka', 'TrabzonSpor')
Ligde İlk Devre Maçları :  6 ('Beşiktaş', 'Fenerbahçe')
Ligde İlk Devre Maçları :  7 ('Beşiktaş', 'Göztepe')
Ligde İlk Devre Maçları :  8 ('TrabzonSpor', 'Göztepe')
Ligde İlk Devre Maçları :  9 ('Göztepe', 'Galatasaray')
Ligde İlk Devre Maçları :  10 ('TrabzonSpor', 'Karşıyaka')
Ligde İlk Devre Maçları :  11 ('İstanbulSpor', 'Beşiktaş')
Ligde İlk Devre Maçları :  12 ('Beşiktaş', 'TrabzonSpor')
Ligde İlk Devre Maçları :  13 ('Göztepe', 'İstanbulSpor')
Ligde İlk Devre Maçları :  14 ('Karşıyaka', 'Galatasaray')
Ligde İlk Devre Maçları :  15 ('İstanbulSpor', 'Karşıyaka')
Ligde İlk Devre Maçları :  16 ('Galatasaray', 'TrabzonSpor')
Ligde İlk Devre Maçları :  17 ('Fenerbahçe', 'Galatasaray')
Ligde İlk Devre Maçları :  18 ('TrabzonSpor', 'İstanbulSpor')
Ligde İlk Devre Maçları :  19 ('Galatasaray', 'Fenerbahçe')
Ligde İlk Devre Maçları :  20 ('Karşıyaka', 'Beşiktaş')
Ligde İlk Devre Maçları :  21 ('Fenerbahçe', 'Beşiktaş')

Fikstürede adalet istiyoruz demek :slight_smile:

Fikstürdeki takım sayısının bir eksiği kadar hafta maç yapmak gerekir.

Bu durumda tam isabet, 7 takım 6 hafta maç demek. Peki haftada 6 maçın 3 ü deplasman 3 ü ev sahibi olmak zoruda mı?

Evet yukarıda bir çözüm yapılmış bu durumda sizin işinizi görür.

Benim takıldığım adalet konusu.

Ah keşke zamanında futbolla ilgilenseymişim.

Konu index taklası mıdır bilemedim. Bir çok çözüm yolu var.

Ama şu varsayımları düzeltelim.

7 takım 6 hafta 42 maç yapsın, yani birinci yarı 21 ikinci yarı 21 Toplam 42 maç.

Ama ilk yarıyı tek sorarsan ve ikinci yarı hesaplanmazsa adalet bozulur.

O durumda birinci ve ikinci yarıyı komple yapalım.

Sen listeyi ikiye bölersin :wink:

Takımlara isim vermeyeceğim, 1’den 7 ye kadar alfa sayısal ifade vereceğim. Yani Tırnak içine istediğin takımları kendin yazarsın.

Hem böylece fikstürü ekrana sığmış görsel olarak da tek seferde gösterebilirim.

Tabi bu asıl çözümün yerini tutmaz.

7 takım karşılaşacaksa adil olan 1 hafta kendi evinde altı maç deplasman.

Ve herkes herkesle birer kez hem evinde hem deplasmanda karşılaşmalı. :slight_smile:

Bunca lakırdıdan sonra teklifim;

import itertools

teams = ["1","2","3","4","5","6","7"]

esle = list(itertools.permutations(teams,2))

for i in range(6):
    print(i+1,". Hafta :", list(esle[i]) , list(esle[i+6]) , list(esle[i+12]) , list(esle[i+18]) , list(esle[i+24]),  list(esle[i+30]), list(esle[i+36]) )

Kombinasyon adalette yalan söylemez.

Yapılmaz demiyorum, ama diğer türlü, ligin ilk yarısını hesapladıktan sonra, ikinci yarısını da dikkate almak gerekecek, karmaşayı sevemedim bir türlü.

Sn. @m.halil 17 ve 19.sıralarda da fener ve galatasaray 2 defa karşılaşıyorlar. Her takım diğerleriyle 1 defa karşılaşmalı. Bu durumda 2 defa karşılaşmış oluyorlar.

@semtex hocam adalet herkese lazım ama futbolla ilgili olmadığınız anlaşılıyor. :slight_smile: Galatasarayı ilk hafta tüm takımlarla karşılaştırmışsınız. Adamlar 9 saat aralıksız maç yapabilirler mi bilmiyorum ama bir maçı bitirip diğer stadyuma ışınlanmaları gerekecek bu fikstürle. :slight_smile:

1 . Hafta : [‘Galatasaray’, ‘Fenerbahçe’] [‘Fenerbahçe’, ‘Galatasaray’] [‘Beşiktaş’, ‘Galatasaray’] [‘Trabzonspor’, ‘Galatasaray’] [‘Göztepe’, ‘Galatasaray’] [‘Karşıyaka’, ‘Galatasaray’] [‘Altay’, ‘Galatasaray’]
2 . Hafta : [‘Galatasaray’, ‘Beşiktaş’] [‘Fenerbahçe’, ‘Beşiktaş’] [‘Beşiktaş’, ‘Fenerbahçe’] [‘Trabzonspor’, ‘Fenerbahçe’] [‘Göztepe’, ‘Fenerbahçe’] [‘Karşıyaka’, ‘Fenerbahçe’] [‘Altay’, ‘Fenerbahçe’]
3 . Hafta : [‘Galatasaray’, ‘Trabzonspor’] [‘Fenerbahçe’, ‘Trabzonspor’] [‘Beşiktaş’, ‘Trabzonspor’] [‘Trabzonspor’, ‘Beşiktaş’] [‘Göztepe’, ‘Beşiktaş’] [‘Karşıyaka’, ‘Beşiktaş’] [‘Altay’, ‘Beşiktaş’]
4 . Hafta : [‘Galatasaray’, ‘Göztepe’] [‘Fenerbahçe’, ‘Göztepe’] [‘Beşiktaş’, ‘Göztepe’] [‘Trabzonspor’, ‘Göztepe’] [‘Göztepe’, ‘Trabzonspor’] [‘Karşıyaka’, ‘Trabzonspor’] [‘Altay’, ‘Trabzonspor’]
5 . Hafta : [‘Galatasaray’, ‘Karşıyaka’] [‘Fenerbahçe’, ‘Karşıyaka’] [‘Beşiktaş’, ‘Karşıyaka’] [‘Trabzonspor’, ‘Karşıyaka’] [‘Göztepe’, ‘Karşıyaka’] [‘Karşıyaka’, ‘Göztepe’] [‘Altay’, ‘Göztepe’]
6 . Hafta : [‘Galatasaray’, ‘Altay’] [‘Fenerbahçe’, ‘Altay’] [‘Beşiktaş’, ‘Altay’] [‘Trabzonspor’, ‘Altay’] [‘Göztepe’, ‘Altay’] [‘Karşıyaka’, ‘Altay’] [‘Altay’, ‘Karşıyaka’]

Hayır öyle bir zorunluluk yok tabi ki 1+5 2+4 3+3 yada 5+1 4+2 3+3 gibi evsahibi deplasman takımı kombinasyonlarıda olabilr. Ama bunun önemi yok ben sadece for döngüsü ve ındexlerle bu yapılabilirmi öğrenmek istediğim buydu ben beceremedim çünkü. İtertools gibi kütüphaneleride henüz öğrenmedim. Bildiğim sadece random kütüphanesi.Sayenizde merak ettim işlevini bir araştıracağım.

Söyledim ya bilseydim, futbolla ilgilenirdim zamanında.

O kadar para alıyorlar çalışsınlar. Her hafta her gün müç alur fena mı? :slight_smile:

Evet sadece indekslerle yapılır. İtertools combination sadece bir kez eşleştirir mesela.

Aklımda olan şu;

Listelerde, pop() ile kura çektikten sonra listeyi azaltırsan kalanlar arasından eşleştirebilrsin.

Yine mesela permutations ile tam liste içinden, bir tuple, çekersen, tersini de listeden çıkarırsan iki kere eşleşme riski kalmaz.

Deplasman dengesine de bakmak lazım.

@m.halil hocam aynı sorun bu çıktıda da var bir takım ligin ilk yarısında rakibi ile 1 kez karşılaşmalı. Tüm takımlar rakipleriyle bir kez karşılaşmalı.

O zaman;

import random
ligin_ilk_yarisi = []
first_period = []

teams = ["1", "2", "3", "4", "5", "6","7"]

for i in range(len(teams)):
    for j in range(i+1, len(teams)):
        eslesme=teams[i],teams[j]
        ligin_ilk_yarisi.append(eslesme)

step =len(teams) 
count=0
match= 3 # Yapılacak mac sayısı

for i in range(len(ligin_ilk_yarisi)):
    if (step>4):
        if (i== count):
            step= step-1
            count= i+step
            for j in range(step-match):
                   ligin_ilk_yarisi[count-j-1]=ligin_ilk_yarisi[count-j-1][1],ligin_ilk_yarisi[count-j-1][0]
           

ligin_ilk_yarisi.sort()
                     
''' # Sıralı listeden maç sayılarını görmek istersen bu satırı aktive edebilirsin.
for k in enumerate(ligin_ilk_yarisi,1):
    print("Ligde İlk Devre Maçları : ", k[0], k[1])
'''
temp_list = ligin_ilk_yarisi

for i in range(len(ligin_ilk_yarisi)):
   turn = random.choice(temp_list)
   first_period.append(turn)
   temp_list.remove(turn)


for k in enumerate(first_period,1):
    print("Ligde İlk Devre Maçları : ", k[0], k[1])

image

Çok ilginç bir kod oldu.

Söylediğin koşullar;

  1. Her takım birer kez karşılaşacak.

  2. Herkes eşit deplasmana çıkacak.

Maç sırasını da rastgele kura ile çekecekler.

Zaten söylediğim sırada kodladım.

İlk takımların sırasını da en alttaki gibi random ilk liste haline getirebilirsin.

Sonuç, tüm takımlar eşleşti, 3 er deplasmana ayarlandı, haftalara da kura ile dağıtıldı.

Test et bakalım :slight_smile:

Futboldan anlamam, bu sefer umarım olmuştur.

@semtex hocam fikstür şu şekilde olmalı 6 takım olarak belirledik diyelim: ligin ilk devresi 5 hafta 2.devresi 5 hafta olarak düşüneceksek. Ligin ilk devresinin eşleşmeleri şu şekilde olabilir. 2.Devrede de ilk devredeki evsahipleri deplasman, deplasmandakilerde ev sahibi olacak şekilde ilk devrenin eşleşmelerinin tam tersi olacak. Yani indeksler de 0 lar 1, 1 ler 0 olacak haliyle. Sanırım sayemde liglerle ilgili bir nebze olsun fikir oluşmuştur sizde. Benim ki sadece merak ama bu kadar uğraştırabileceğini düşünmemiştim. Zamanınız yoksa hiç uğraşmayın lütfen.

ligin ilk devresi

1.Hafta 1_2, 3_4, 5_6
2.Hafta 2_3, 4_5, 6_1
3.Hafta 3_5, 1_4, 2_6
4.Hafta 5_2, 6_4, 3_1
5.Hafta 6_3, 4_2 , 5_1

ligin ikinci devresi

6.Hafta 2_1, 4_3, 6_5
7.Hafta 3_2, 5_4, 1_6
8.Hafta 5_3, 4_1, 6_2
9.Hafta 2_5, 4_6, 1_3
10.Hafta 3_6, 2_4 , 1_5

Son verdiğim listede sorun yoksa, sadece 3’er 3 'er yazdırman yeterli değil mi?

Uğraşmadım arada denk geldi yazıp denedim.

Yani liste oluştuktan sonra, yapılacak şey çıktı formatlama.

İkinci yarı için ise sadece listenin tersi yani deplasmanlar değişmiş.

İstersen onu da kodlayayım, ilk yarıyı kontrol et verdiğim ekran görüntüsünden sorun yoksa ikinci yarıyı da yazalım. Kod çok basit.

Uğraştıran kısım kodlama değil, benim konuyu bilmemem :slight_smile:

Bu gün fırsat bulursan istediğin formatta yazarım sorun değil.

1 Beğeni

Ben de Futboldan hiç anlamam, anlasam belki bu konuda daha kolay kod yazar, çözüm sunabilirdım. :slight_smile:
Akşam ben de biraz kurcalayacağım.

1 Beğeni

image

import random
pair = []
first_period = []
second_period = []

teams = ["1", "2", "3", "4", "5", "6","7"]

# random.shuffle(teams) # Takımların liste sırasını da karıştırmak istersen

for i in range(len(teams)):
    for j in range(i+1, len(teams)):
        eslesme=teams[i],teams[j]
        pair.append(eslesme)

step =len(teams) 
count=0
match= 3 # Yapılacak mac sayısı

for i in range(len(pair)):
    if (step>(match+1)):
        if (i== count):
            step= step-1
            count= i+step
            for j in range(step-match):
                   pair[count-j-1]=pair[count-j-1][1],pair[count-j-1][0]
           

pair.sort()
                     
temp_list = pair
# Create first Period
for i in range(len(pair)):
   turn = random.choice(temp_list)
   first_period.append(turn)
   temp_list.remove(turn)
   

# Print First Period
index_1 = 0
print("Ligin İlk Devresi")
for k in range(0,len(first_period),3):
    index_1=index_1+1
    print(index_1,". Hafta",first_period[k], first_period[k+1],first_period[k+2])

#Create Second Period
for m in range(len(first_period)):
     add_1 = first_period[m][1], first_period[m][0]
     second_period.append(add_1)


#Print Second Period

index_2 = 0
print("Ligin İkinci Devresi")
for l in range(0,len(second_period),3):
    index_2=index_2+1
    print(index_2,". Hafta",second_period[l], second_period[l+1],second_period[l+2])

Çok zaman almadı.

1 Beğeni