Menu
Coddy logo textTech

Özet - Özel Koleksiyon

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 75 / 110.

challenge icon

Görev

Kolay

Oyuncu skorlarını takip eden ve özel metotların birlikte nasıl çalışarak düzenli, profesyonel bir sınıf oluşturduğunu gösteren bir ScoreBoard sistemi oluşturalım!

Kodunuzu iki dosyada düzenleyeceksiniz:

  • score_board.dart: Oyun skorlarını birlikte yönetmek için bir Player sınıfı ve bir ScoreBoard sınıfı oluşturun.

    Player sınıfınızda bir name (String) ve bir score (int) bulunmalıdır. Şunları yapması gerekir:

    • Oyuncuların skora göre azalan düzende (en yüksek skor önce) sıralanabilmesi için Comparable<Player> uygulamak
    • Aynı ada sahip iki oyuncunun (skorları ne olursa olsun) eşit kabul edilmesi için == ve hashCode metotlarını geçersiz kılmak
    • toString() döndürmesi için [name]: [score] points metodunu geçersiz kılmak

    ScoreBoard sınıfınız bir oyuncu listesi saklamalı ve şunları sağlamalıdır:

    • Bir oyuncuyu yalnızca daha önce mevcut değilse ekleyen (eşitlik uygulamanızı kullanın!) bir addPlayer(Player player) metodu
    • Hiçbir bağımsız değişken almayan ve oyuncu listesinin skorlarına göre sıralanmış bir kopyasını döndüren (en yüksek skor önce) bir call() metodu
    • Tüm oyuncuları (sıralanmamış şekilde), her satırda bir oyuncu olacak biçimde ve ilk satırda toString() başlığıyla görüntülemek için ScoreBoard: metodunu geçersiz kılmak
  • main.dart: Skor tablosu dosyanızı içe aktarın ve tüm bu özel metotların birlikte nasıl çalıştığını gösterin:
    • Bir ScoreBoard oluşturun
    • Şu oyuncuları ekleyin: Alice için 150, Bob için 200, Charlie için 175
    • Alice oyuncusunu 999 skoruyla tekrar eklemeyi deneyin (yinelenen kayıt olduğu için reddedilmelidir)
    • toString() metodunu kullanarak skor tablosunu yazdırın
    • Boş bir satır yazdırın
    • Rankings: yazdırın
    • Sıralanmış derecelendirmeleri almak için skor tablosunu bir işlev gibi çağırın, ardından her oyuncuyu yazdırın

Bu görev; görüntüleme için toString(), yinelenen kayıtları tespit etmek için == ve hashCode, sıralama için compareTo() ve temiz bir çağrılabilir arayüz için call() metotlarını bir araya getirir!

Beklenen çıktı:

ScoreBoard:
Alice: 150 points
Bob: 200 points
Charlie: 175 points

Rankings:
Bob: 200 points
Charlie: 175 points
Alice: 150 points

Kendin dene

import 'score_board.dart';

void main() {
  // YAPILACAK: Bir ScoreBoard oluşturun

  // YAPILACAK: Oyuncuları ekleyin: Alice (150), Bob (200), Charlie (175)

  // YAPILACAK: Alice'i 999 puanla tekrar eklemeyi deneyin (kopya olduğu için reddedilmelidir)

  // YAPILACAK: toString() metodunu kullanarak skor tablosunu yazdırın

  // YAPILACAK: Boş bir satır yazdırın

  // YAPILACAK: "Rankings:" yazdırın

  // YAPILACAK: Sıralanmış sıralamaları almak için skor tablosunu bir fonksiyon gibi çağırın, ardından her oyuncuyu yazdırın
}

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Dart derleyicisi