Bu uygulamamızda süper lig takımlarından 4 tanesinin kendi aralarında oynayacakları mini bir lig oluşturacağız. İleride ise, bu uygulama baz alınarak, tüm lig için uygulamayı yapmaya çalışacağız. En basit anlamda böyle bir lig oluşturmak için aşağıdaki adımlar takip edilmelidir.
a) Takımların belirlenmesi
b) Kuraların çekilmesi
c) Maçların oynanması ve skorların belirlenmesi
d) Her hafta oyanan maçlara göre puan durumunun belirlenmesi
Önceliikle bu işlemleri sabit değerler üzerinden yapacağız. Daha sonra yapılan işlemlerin algoritmasını anlayarak işlemleri dinamik hale getirmeye çalışacağız. Şimdi bu işlemleri sabit değerler üzerinden yapmaya çalışalım.
Mini lig için takımlarımız Göztepe, Altay, Karşıyaka ve Altınordu olsun. Tabi siz başka takımlarda belirleyebilirsiniz. Tercih sizin. Ben mini ligi bu takımlar arasında kuracağım.
Takımlar için kendi aralarında yapacakları maçları belirleyelim.
1. Hafta Maçları
Göztepe – Altınordu
Karşıyaka – Altay
2. Hafta Maçları
Altınordu – Karşıyaka
Altay – Göztepe
3. Hafta Maçları
Göztepe – Karşıyaka
Altınordu – Altay
Bu maçlardan sonra mini ligimizin ilk yarısı bitecek. İkinci yarı maçlarında ise, ev sahibi takım deplasmanda, deplasmandaki takım ise ev sahibi olarak yazılacaktır.
4. Hafta Maçları
Altınordu - Göztepe
Altay - Karşıyaka
5. Hafta Maçları
Karşıyaka - Altınordu
Göztepe - Altay
6. Hafta Maçları
Karşıyaka - Göztepe
Altay - Altınordu
Şimdi de maçları oynayıp puan durumlarını belirleyelim.
1. Hafta Maç Sonuçları
Göztepe 1 – 2 Altınordu
Karşıyaka 1 – 0 Altay
Oynanan bu maçlara göre puan durumunu yazaılım. Galip gelen takım 3 puan, mağlup olan takım 0 puan, beraberlik halinde her iki takım birer puan alacaktır. Buna göre puan durumunu belirleyelim.
#
|
Takımlar
|
O
|
G
|
B
|
M
|
A
|
Y
|
AV
|
P
|
1
|
Altınordu
|
1
|
1
|
0
|
0
|
2
|
1
|
1
|
3
|
2
|
Karşıyaka
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
3
|
3
|
Göztepe
|
1
|
0
|
0
|
1
|
1
|
2
|
-1
|
0
|
4
|
Altay
|
1
|
0
|
0
|
1
|
0
|
1
|
-1
|
0
|
2. Hafta Maç Sonuçları
Altınordu 0 – 0 Karşıyaka
Altay 1 – 0 Göztepe
Puan durumu şöyle olacaktır.
#
|
Takımlar
|
O
|
G
|
B
|
M
|
A
|
Y
|
AV
|
P
|
1
|
Altınordu
|
2
|
1
|
1
|
0
|
2
|
1
|
1
|
4
|
2
|
Karşıyaka
|
2
|
1
|
1
|
0
|
1
|
0
|
1
|
4
|
3
|
Altay
|
2
|
1
|
0
|
1
|
1
|
1
|
0
|
3
|
4
|
Göztepe
|
2
|
0
|
0
|
2
|
1
|
3
|
-2
|
0
|
3. Hafta Maç Sonuçları
Göztepe 2 – 0 Karşıyaka
Altınordu 0 – 1 Altay
Puan durumu şöyle olacaktır.
#
|
Takımlar
|
O
|
G
|
B
|
M
|
A
|
Y
|
AV
|
P
|
1
|
Altay
|
3
|
2
|
0
|
1
|
2
|
1
|
1
|
6
|
2
|
Altınordu
|
3
|
1
|
1
|
1
|
2
|
2
|
0
|
4
|
3
|
Karşıyaka
|
3
|
1
|
1
|
1
|
1
|
2
|
-1
|
4
|
4
|
Göztepe
|
3
|
1
|
0
|
2
|
3
|
3
|
0
|
3
|
Bu maçlardan sonra mini ligimizin ilk yarısı bitti. Görüldüğü gibi, ilk yarının lideri Altay olmuştur. İkinci yarı maç sonuçlarını ve puan durumlarını siz yazabiliriniz. Biz burada sabit yapılan işlemleri bitireceğiz. Yukarıda verilen bilgilere göre sistemin işleyişine ait algoritmayı umarım kavramışsınızdır.
Kuralar ve lig maçlarına ait sonuçlar bilgisayar tarafından rastgele belirlenecektir. Her hafta oynanan maçların skorları yazılacak ve skorlara göre puan durumu ekranda görüntülenecektir. Ligi şampiyon olarak tamamlayan takımın marşı altıncı haftanın sonunda çaldırılacaktır. Uygulamamızı yapmaya başlayalım.
Word programını açalım.
Yeni bir belge oluşturalım. Belgeyi masaüstüne CemilUstaLigi.docm olarak kaydedelim. Çünkü belgemizde makro ve VBA kodu kullanacağımız için uzantısını docm olarak belirledik. Belgemiz açıldığı an yazdığımız komutların çalışmasını istediğimiz için Document_Open() metodunu kullanacağız.
Uygulamanın başlığını belirlemek için aşağıdaki kodu yazalım.
Application.Caption = "Mini Süper Lig Turnuvası"
Uygulama içinde işimize yarayacak değişkenleri belirleyelim.
Set doc = ActiveDocument
Set yer = doc.Range
Set paragraf = doc.Paragraphs
Daha sonra belgemizde yer alan tüm yazı ve tabloları silelim.
doc.StoryRanges(wdMainTextStory).Delete
Şimdi de belgemizin başlığını belirleyelim.
ActiveDocument.Paragraphs.Add.Range.Text = "2019 Cemil Usta Mini Süper Lig Turnuvası"
Nasıl gidiyor kodlama işi. Şimdiden 3 komut yazdık bile. Projemizi kaydedip çalıştıralım. Aşağıdaki pencere ekrana gelir.

Şimdi belgemize maç sonuçlarını göstermek için bir adet tablo ekleyelim. Tablomuz 3 satır ve 3 sütundan oluşacaktır.
yer.Collapse Direction:=wdCollapseEnd
doc.Tables.Add yer, 3, 3
Devam edelim kodlama işlemine. 1. Haftaya ait başlığı belirlemek için tablonun ilk satırını birleştirelim. Ayrıca tablomuzun kenar çizgilerini görünür hale getirmeliyiz.
Set tablo = doc.Tables(1)
tablo.Borders.Enable = True
With tablo
Set mrgrng = .Cell(1, 1).Range
mrgrng.End = .Cell(1, 3).Range.End
mrgrng.Cells.Merge
End With
Tablonun ilk satırını başlığı yazabiliriz.
tablo.Rows(1).Cells(1).Range.Text = "1. Hafta Maç Sonuçları"
İlk maç sonucunun ekranda görüntülenmesi için gerekli kodu yazalım.
tablo.Rows(2).Cells(1).Range.Text = "Göztepe"
tablo.Rows(2).Cells(2).Range.Text = "1 – 2"
tablo.Rows(2).Cells(3).Range.Text = "Altınordu"
Yukarıdaki formatta maç sonucunu göstermek için gerekli kodu yazalım. Diğer maç için de maç sonucunu gösterelim.
tablo.Rows(3).Cells(1).Range.Text = "Karşıyaka"
tablo.Rows(3).Cells(2).Range.Text = "1 – 0"
tablo.Rows(3).Cells(3).Range.Text = "Altay"
Nasıl. 3 kodla ligin birinci haftasına ait maç sonuçlarını gösteriverdik. Bu maçların sonuçlarına göre puan durumunu yazalım.
#
|
Takımlar
|
O
|
G
|
B
|
M
|
A
|
Y
|
AV
|
P
|
1
|
Altınordu
|
1
|
1
|
0
|
0
|
2
|
1
|
1
|
3
|
2
|
Karşıyaka
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
3
|
3
|
Göztepe
|
1
|
0
|
0
|
1
|
1
|
2
|
-1
|
0
|
4
|
Altay
|
1
|
0
|
0
|
1
|
0
|
1
|
-1
|
0
|
Yukarıda verilen tabloya ait başlık satırını yazalım.
Console.WriteLine("1. Hafta Puan Durumu");
Tablonun alt başlıklarını oluşturalım.
Console.WriteLine("# Takımlar O G B M A Y AV P");
Console.WriteLine("1 Fenerbahçe 1 1 0 0 2 1 1 3");
Console.WriteLine("2 Trabzonspor 1 1 0 0 1 0 1 3");
Console.WriteLine("3 Galatasaray 1 0 0 1 1 2 -1 0");
Console.WriteLine("4 Beşiktaş 1 0 0 1 0 1 -1 0");
Şimdi ikinci hafta sonuçlarını verelim.
Console.WriteLine("2. Hafta Maç Sonuçları");
Console.WriteLine("Fenerbahçe 0 – 0 Trabzonspor");
Console.WriteLine("Beşiktaş 1 – 0 Galatasaray");
Yeni puan durumunu görüntüleyelim.
Console.WriteLine("2. Hafta Puan Durumu");
Console.WriteLine("# Takımlar O G B M A Y AV P");
Console.WriteLine("1 Fenerbahçe 2 1 1 0 2 1 1 4");
Console.WriteLine("2 Trabzonspor 2 1 1 0 1 0 1 4");
Console.WriteLine("3 Beşiktaş 2 1 0 1 1 1 0 3");
Console.WriteLine("4 Galatasaray 2 0 0 2 1 3 -2 0");
Şimdi de üçüncü hafta sonuçlarını verelim.
Console.WriteLine("3. Hafta Maç Sonuçları");
Console.WriteLine("Galatasaray 2 – 0 Trabzonspor");
Console.WriteLine("Fenerbahçe 0 – 1 Beşiktaş");
Mini ligimize ait ilk yarı puan durumunu görüntüleyelim.
Console.WriteLine("3. Hafta Puan Durumu");
Console.WriteLine("# Takımlar O G B M A Y AV P");
Console.WriteLine("1 Beşiktaş 3 2 0 1 2 1 1 6");
Console.WriteLine("2 Fenerbahçe 3 1 1 1 2 2 0 4");
Console.WriteLine("3 Trabzonspor 3 1 1 1 1 2 -1 4");
Console.WriteLine("4 Galatasaray 3 1 0 2 3 3 0 3");
Vakitte ne kadar çabuk geçiyor. Ligin ilk yarısı bitti. İlk yarı lideri Beşiktaş oldu. Programa ait son ekran görüntüsü aşağıdaki gibi olacaktır.
Verdiğimiz maç sonuçları örnek gösterimdi. Şimdi yukarıdaki sonuçlara bakarak hangi değişkenleri tanımlamamız gerektiğini bulmaya çalışalım. Fikri olan arkadaşlar yorumlar kısmından fikirlerini bizimle paylaşabilir.