Senaryo:
Tüm oyun kartlarını standart bir güvertede içeren bir numaraya sahip olmak istiyorum. Bu örnek için jokerleri göz ardı edin. YazmaDöngü numaralarını döngü ile numaralandır
enum Cards {
SPADE_1(0, 1),
SPADE_2(0, 2),
etc.
yanlış geliyor.
ben takım elbise ve yüz kendilerini çeteleler olan takım elbise ve yüz alanları içeren bir sınıf olarak kart tanımlayan kabul ettik bu
enum Card {
for (int suit=0; suit<4; suit++) {
for (int face=1; face<13; face++) {
new Card(suit, face);
}
}
}
gibi bir şey yapabilmek istiyorum. Ancak diğer senaryolarda (örneğin kırmızı ve siyah takım elbise sahip olan jokerlerde) bu, geçersiz kart nesnelerinin oluşturulmasına izin verir (örneğin, elmasların jokerleri veya kırmızı bir 10).
Kendini yanıtlayın:
Görünüşe göre kendi sorumu yanıtlamak için yeterli sayıda yanıtım yok.
I'm not sure if it's considered good form to answer my own question, but @Paul just gave me a brainwave. Declare Card to have a private constructor, and use a static Card getCard(suit, face) method to validate combinations before returning them.
Belki de bir 'enum' istediğin şey değildir. CLUBS_3 olarak 3 kulübe başvurmanız gerekiyor mu? – Paul
Evet, kesinlikle - özel kurucu, SUIT ve FACE için ayrı enumlar. –