Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Maj 2009

kortspel med LinkedList

Jag försöker skriva ett kortspel, det ska i princip kunna blanda kortleken, dra det översta kortet och skriva ut vilken färg och valör det har.

Jag försöker använda mig av LinkedList, men det går inget vidare.

Till att börja med har jag klassen Kort, som innehåller alla färger och valörer:

import java.util.*; import javax.swing.*; public class Kort { public enum KortSlag { TVÅ("2"), TRE("3"), FYRA("4"), FEM("5"), SEX("6"), SJU("7"), ÅTTA("8"), NIO("9"), TIO("10"), KNEKT("J"), DAM("Q"), KUNG("K"), ESS("A"); public final int valör = ordinal() + 2; public final String symbol; KortSlag(String sym) {symbol = sym;} } public enum KortFarg { KLÖVER('\u2663'), RUTER('\u2666'), HJÄRTER('\u2665'), SPADER('\u2660'); public final char symbol; KortFarg(char c) {symbol=c;} } private KortFarg f; private KortSlag s; public Kort(KortFarg färg, KortSlag ks) { f = färg; s = ks; } public KortFarg färg() { return f; } public KortSlag slag() { return s; } public String toString() { return f.toString() + "" + s.toString(); } public String toSymbol() { return f.symbol + s.symbol; } }

Detta går att köra (även om det inte händer särskilt mycket)

Och sedan klassen KortBunt, som ska blanda och dra det översta:

import java.util.*; public class KortBunt { private List<Kort> bunten = new LinkedList<Kort>(); public void läggÖverst(Kort k) { bunten.add(0, k); } public Kort taBortÖversta() { Kort k = bunten.get(0); bunten.remove(0); return k; } public int antalKort() { return bunten.size(); } public void slängKorten() { bunten.clear(); } public Kort tittaPå(int nr) { return bunten.get(nr); } public Kort taBort(int nr) { Kort k = bunten.get(nr); bunten.remove(nr); return k; } public int sök(KortFarg f, Kortslag s) { int i = 0; for (Kort k : bunten) if (k.färg()==f && k.slag()==s) return i; else i++; return -1; } public void nyKortlek() { bunten.clear(); for (KortFarg f : KortFarg.values()) for (KortSlag s : KortSlag.values()) bunten.add(new Kort(f, s)); } public void blanda() { Collections.shuffle(bunten); } }

På denna får jag felmedd: cannot find symbol: KortFarg, KortSlag. Det förstår jag, men det är ju därför jag vill (och försökt) länka ihop dessa.

Ganska ny på programmering så detta känns krångligt, men jag är väldigt tacksam för all hjälp!!

(Och jag vet att man inte skriver å,ä,ö. så fort prog. funkar ska jag ändra det!

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

Du måste importera dina enums. Vet inte om det kommer att gå iom att de ligger inslagna i en annan klass. Såg också att du har skrivit KortSlag med litet 's' i sök-metoden.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Sverige
Registrerad
Maj 2009

Okej, är rädd att jag inte blev så mycket klokare av det. Borde jag separera enum KortSlag och enum KortFarg från klassen Kort? Och hur importerar jag enum?