Kezdőoldal » Számítástechnika » Programozás » Van arra lehetoseg, hogy az...

BTzone509 kérdése:

Van arra lehetoseg, hogy az Enum altal tartott ertek minthogy a neve alapjan krealjak egy uj objectet?

Figyelt kérdés

Egy kartya paklit szeretnek csinalni (52db)kartya. Enumot hasznaltam a kartya ertekere/ es alakjara. Tehat Ace(1), Two(2)...King(13) stb illetve Enum az alakra. Club, Hearts stb. Nem szeretnem egyenkent instanalni a kartyakat pl:


theCards[0] = new Card(Rank.Ace, Suit.Clubs); es igy tovabb 52 lapig.


Ehelyett inkabb egy for loopot hasznalnak:


for (int rank = 1; rank <= 13; rank++){

theCards[count] = new Card(rank/*tehat ez a ciklusnal initializalt szam ami az erteke megfelel a kartyanak*/, Suit.CLUBS);

count++

}

Megoldhato ez valahogy?



2019. okt. 12. 18:38
 1/2 A kérdező kommentje:

public Deck ()

{

this.deck = new ArrayList();

for (int i=0; i<13; i++)

{

CardValue value = CardValue.values()[i];


for (int j=0; j<4; j++)

{

Card card = new Card(value, Suit.values()[j]);

this.deck.add(card);

}

}

Ugy nez ki megoldodott.

2019. okt. 12. 18:41
 2/2 anonim ***** válasza:
#1 Kicsit szépíthető, mivel úgyis le tudod kérni az enumok értékeit tömbalakban, ezért rakhatod rögtön azt a foreach-be, és nem kell magic number-öket használnod (13, 4). Ez különösen fontos akkor, ha pl az enumod a későbbiekben bővölhet (ez jelen esetben nem túl esélyes, de jobb az általános megoldás felé hajlani), és a te megoldásoddal mindig manuálisan hozzá kell igazítani a számokat.
2019. okt. 13. 16:38
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!