Tekrar - Spor Ligi
Coddy'nin Ruby Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 31 / 57.
Görev
ZorKüçük bir lig tablosu oluşturun. Team, Comparable içerir: bir takım daha fazla puana (galibiyet için 3, beraberlik için 1), ardından daha iyi averaja, ardından alfabetik olarak daha önce gelen bir isme sahipse daha üstündür. record(scored, conceded) takımı günceller ve to_s Reds 7 pts, +3 döndürür. League, Enumerable içerir: each takımları verir, play(line) Reds 2-1 Blues gibi bir sonucu her iki takım için kaydeder (adı ilk kez göründüğünde takımı oluşturur) ve table takımları sort kullanarak en iyiden en kötüye döndürür. leader ( max ile elde edilen en iyi takım) içeren Rankable modülü League içinde kullanılır.
Sağlanan kod, her girdi satırını play'e geçirir, ardından tabloyu sıralarıyla birlikte (1. Reds 7 pts, +3), lideri ve herhangi bir maçta galibiyet alamayan, select ile bulunan takımları yazdırır.
Kodunuz rankable.rb, team.rb ve league.rb dosyalarına gider. main.rb sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
require_relative 'rankable'
require_relative 'team'
require_relative 'league'
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input = []
while (line = gets)
input << line.chomp
end
league = League.new
input.each { |line| league.play(line) }
league.table.each_with_index { |t, i| puts "#{i + 1}. #{t}" }
puts "leader: #{league.leader&.name}"
winless = league.select { |t| t.wins.zero? }.map(&:name).sort
puts "no wins: #{winless.empty? ? "none" : winless.join(", ")}"
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Sınıflar ve Nesneler
Dosyalarla ÇalışmaSınıf TanımlamaÖrnek DeğişkenleriMetotlar ve selfto_s ve inspectÖzet - Kütüphane Kartı7Çok Biçimlilik ve Ördek Tiplemesi
Çok BiçimlilikÖrdek TiplemesiSoyut Metotlarcase ve SınıflarTekrar - Ödeme Yöntemleri2Erişimciler ve self
Okuyucular ve YazıcılarÖzel Setter'larMetotlarda selfKimlik ve EşitlikTekrar - Kişi Listesi5Kalıtım
Alt sınıflarMetotları geçersiz kılmasuper çağrısıis_a? ve üst sınıflarTekrar - Personel Maaşları8Özel Metotlar
Eşitlik ve hashOperatör Metotlarıİndeksleme ve EklemeÖzel KoleksiyonlarTekrar - Kesirler11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç Alma3Sınıf Metotları ve Değişkenleri
Sınıf MetotlarıSınıf Örnek DeğişkenleriSabitlerFabrika MetotlarıTekrar - Kupon Kodları6Modüller ve Mixin'ler
Modüller ve includeNesneleri GenişletmeComparable ModülüEnumerable ModülüTekrar - Spor LigiKendi başına pratik yap: Online Ruby derleyicisi