Permalänk
Medlem

@elBenko: Sjysst av dig tack! Jag har inte testat ditt förslag men löste det genom hjälp från en i min klass. Grejen med programmering är ju också, vilket är coolt i sig är att det finns många lösningar på ett problem.

Nu är det bara nästa inlämning som också ska göras där deadlinen var för en vecka sen. Men har ganska omgående lagt ner tanken på att få mer än G. För att få VG så måste deadlinen hållas, i varje fall att det mesta av programmet som lämnas in är funktionellt.

Permalänk
Medlem

@bikerrog: Ok, skönt du fick löst uppgiften iaf. Bara hojta till om du behöver hjälp med något mer.

Tycker inte du ska hänga läpp över _enbart_ ett G, huvudsaken är egentligen att du förstår grejerna.

Ja programmering är kul på så vis att det finns massa olika lösningar på samma problem, där man kan utmana sig själv att förbättra sina tidigare lösningar allt eftersom man lär sig nya tricks.

Permalänk
Medlem

@elBenko: Tack det ska jag ha i åtanke...
Nä är nöjd om jag blir godkänd, bara det att det blir överväldigande när man samtidigt ligger efter, känns inte så kul då, men hoppas det släpper.

Permalänk

Hej på er!
Nu skulle jag behöva er expert hjälp igen, jag har en uppgift som går ut på: en klass som ska kunna skapa en kortlek (52 olika kort)
Blanda kortleken och dra det översta kortet i leken.
Skriv sedan ett program som utnyttjar klassen Kortlek
Skapa ett objekt av klassen,
blanda kortleken och skriva ut vad det översta kortet har för färg
(spader, hjärter, ruter, klöver) och valör (1-13).
Jag tror att jag löst det mesta men reagerade på att jag fick null istället för klöver? Kan någon hjälpa mig att fatta vad som gått fel?

public class deckOfCards2test { public static void main(String[] args) { deckOfCards2 deck=new deckOfCards2(); deck.makeCardDeck(); deck.shuffle(); Card give=deck.getCard(); System.out.println(give); } } class Card { /*Klassvariabler(med static). Jag har delat upp korten i suits(färg) och * ranks(siffra)*/ static String[] suits={"\u2663", "\u2666", "\u2665", "\u2660"}; static String[] ranks={"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"}; //Instansvariabler int c; int v; public Card(int color, int value) { if (color>=0 && color <=3 && value >=1 && value <=13) { /*Kontrollerar så att parametrarna har tillåtna värden annars så * genereras en felsignal. Ändrar färgen * och valören på kortet*/ c=color; v=value; } else throw new IllegalArgumentException("Wrong"); } @Override public String toString() { return suits[c]+ " " + ranks[v-1]; /*Returnerar värdet av suits/colors och ranks/worth*/ } } import java.util.Random; public class deckOfCards2 { private Card[] cards;//Här är korten private int current;//Index för nästa kort private static Random rand=new Random(); public void makeCardDeck() {//Skapar en oblandad kortlek cards=new Card[52]; for(int faces=1; faces<=3; faces++) { for(int values=1; values<=12; values++) { cards[current]=new Card(faces,values); current++; } } current=0; } public void shuffle() {//Blandar kortleken for(int i=51; i>=0; i--) {//i=51,50 osv int shuffed=rand.nextInt(i+1);//Slumpar ett tal Card temp=cards[shuffed]; cards[shuffed]=cards[i]; cards[i]=temp;//Byter plats på korten med i och shuffed } } public boolean moreCards() { return current<52;//Kollar om det finns mer kort i korthögen } public Card getCard() {//Om moreCards är true så dras det översta kortet if(current<52) {//Ifall det finns mer kort Card topCard=cards[current]; current++; return topCard;//returnerar det översta kortet } else { return null; } } }

Tacksam om någon kan sparka mig på rätt spår!

Permalänk
Medlem
Skrivet av Svettig finnepinne:

Jag tror att jag löst det mesta men reagerade på att jag fick null istället för klöver? Kan någon hjälpa mig att fatta vad som gått fel?

Använd debuggern och kolla vad kortleken innehåller efter makeCardDeck så inser du säkert vad som gått fel.

Permalänk

@perost: Japp, jag hade faces på =1 fast den borde vara =0 tack för hjälpen!

Permalänk

@perost: Haha, plus att jag hade values<=12 fast den skall vara values<=13 :). Man blir såsig i huvudet efter några timmar framför skärmen