Bir önceki dersimizde kuraları çekmiştik. Bu dersimizde ise kura çekimiyle ilgili değişik bir algoritma düzenleyeceğiz. Öncelikle kura ile ilgili algoritmamızı anlatalım. 6 takımlık bir lig için kura çekimi yapacağız. Bir önceki dersimizde takım sayısına göre kaç hafta olduğunu, her hafta kaç maç olduğunun nasıl belirlendiğini göstermiştik. Burada direkt algoritmanın nasıl işlediğini anlatacağız.
Algoritma gayet basit arkadaşlar. İlk hafta maçları aşağıdaki gibi olsun.
1 2
3 4
5 6
Bu maçlar dikkate alınarak diğer haftaların maçları aşağıdaki gibi belirlenir.
|
1
|
2
|
3
|
4
|
5
|
1
|
1
|
2
|
1
|
4
|
1
|
6
|
1
|
5
|
1
|
3
|
2
|
3
|
4
|
2
|
6
|
4
|
5
|
6
|
3
|
5
|
2
|
3
|
5
|
6
|
3
|
5
|
2
|
3
|
4
|
2
|
6
|
4
|
Görüldüğü gibi, ilk takım sabit tutulmuştur. Örneğin ikinci hafta maçlarına bakalım. İlk hafta maçlarında kırmızı ile belirlenen takımlar saat yönünün tersine göre ikiden başlayarak yeniden yazılır. Böylece diğer haftaların maçları da belirlenir. Şimdi bu yapıya göre kodlarımızı yazalım.
int[,,] fikstur = new int[5, 3, 2];
int x = 1;
int hafta = 0;
int takim = 6;
for (int i = 0; i < fikstur.GetLength(1); i++)
{
for (int j = 0; j < fikstur.GetLength(2); j++)
{
fikstur[hafta, i, j] = x;
if (x >= takim)
{
x = 0;
}
else
x++;
}
}
int onceki, m;
do
{
onceki = hafta;
x = fikstur[onceki, 0, 1];
hafta++;
if (hafta >= fikstur.GetLength(0))
{
break;
}
fikstur[hafta, 0, 0] = fikstur[onceki, 0, 0];
for (m = 1; m < fikstur.GetLength(1); m++)
{
fikstur[hafta, m - 1, 1] = fikstur[onceki, m, 1];
}
fikstur[hafta, m - 1, 1] = fikstur[onceki, m - 1, 0];
for (m = fikstur.GetLength(1) - 1; m > 0; m--)
{
fikstur[hafta, m, 0] = fikstur[onceki, m - 1, 0];
}
fikstur[hafta, m + 1, 0] = x;
} while (true);
for (int k = 0; k < fikstur.GetLength(0); k++)
{
Console.WriteLine((k + 1) + ". hafta maçları");
for (int i = 0; i < fikstur.GetLength(1); i++)
{
for (int j = 0; j < fikstur.GetLength(2); j++)
{
Console.Write(fikstur[k, i, j] + " ");
}
Console.WriteLine();
}
}
Console.Read();
Peki takım sayısı tek sayı olursa fikstür nasıl belirlenecek. O zaman bir takımın bay olması gerekir. Yukarıda verilen kodlar 6 takıma göre ayarlanmıştır. Eğer takım sayısını 5 yaparsanız her hafta bir takımın bay olarak ayarlandığını görürsünüz.
Fikstür çekilişine bakarsanız takımlara ait kodların listelendiğini görürsünüz. Bir önceki dersimizde verilen takımları burada oluşturduğunuzda mini ligimize ait fikstürün oluştuğunu görürsünüz.
|