Permalänk
Medlem

Kortlek i Java

Hej, jag håller på med en skoluppgift där man ska skapa en app som slumpar fram 5 kort.
Jag har lyckats få den att slumpa fram 1(!) kort, hur gör jag för att få fram fyra till?

Här är classerna för (Kortlek, Kort)

class Kortlek { private Kort[] bunt = new Kort[52]; private int antal = 0; public int geAntal () { return antal = 5; } public void laggOverst(Kort k) { bunt[antal] = k; antal++; } public Kort geOversta() { antal--; return bunt[antal]; } public void görKortlek() { for (int f=1; f<=4; f++) for (int v=1; v<=13; v++) laggOverst(new Kort(f, v)); } public void blanda() { for (int i=0; i<antal; i++) { int n = i + (int)(Math.random() * (antal - i)); Kort temp = bunt[n]; bunt[n] = bunt[i]; bunt[i] = temp; }} public static void main( String args[]){ Kortlek kortlek = new Kortlek(); kortlek.görKortlek(); kortlek.blanda(); Kort k = kortlek.geOversta(); System.out.println(k.toString()); } }

class Kort { private static String[] fargNamn ={"Hjarter", "Spader", "Ruter", "Klover"}; private static String[] valorNamn ={"Ess", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Knekt", "Dam", "Kung"}; private int f, v; public Kort(int farg, int valor) { if (farg < 1 || farg > 4 || valor <1 || valor > 13) { System.out.println("fel"); System.exit(1); } f = farg; v = valor; } public int geFarg() { return f; } public int geValor() { return v; } public String toString() { return fargNamn[f - 1] + " " + valorNamn[v - 1]; } }

Permalänk
Medlem

Det är bara att loopa kortlek.geOversta(), du ska ju köra den lika många gånger som antal kort du vill ha..

Men du, en fråga.. har du skrivit den där koden själv och förstår inte hur du ska få ut fler kort?

Visa signatur

EPoX 8RDA+, XP2500+, 2x256Mb PC3200 (DualCh), Club3D 9800PRO, Seagate 7200.7 160Gb 8Mb Limited edition

Permalänk
Medlem
Skrivet av _Alvin:

class Kortlek { bunt[antal] = k; antal++;

Sen blir de fett snygg om du gör om den koden till denna =D:

bunt[antal++] = k;

Permalänk
Medlem
Skrivet av Nordis:

Det är bara att loopa kortlek.geOversta(), du ska ju köra den lika många gånger som antal kort du vill ha..

Men du, en fråga.. har du skrivit den där koden själv och förstår inte hur du ska få ut fler kort?

Hehe nej jag har fått hjälp med koden hur loopar man då? *dum fråga?*

Permalänk
Medlem
Skrivet av Mattza:

Sen blir de fett snygg om du gör om den koden till denna =D:

bunt[antal++] = k;

TACK

Permalänk
Medlem
Skrivet av _Alvin:

Hehe nej jag har fått hjälp med koden hur loopar man då? *dum fråga?*

Men lite måste du ju lära dig själv, herregud!

Googla efter "for loop java".. eller läs boken/materialet ni har i kursen.

bunt[antal++] = k;

Förstår du ens vad ovanstående kod gör?

Visa signatur

EPoX 8RDA+, XP2500+, 2x256Mb PC3200 (DualCh), Club3D 9800PRO, Seagate 7200.7 160Gb 8Mb Limited edition